optee fvp

因为研究生阶段选的是trustzone的研究方向,所以最近在一直看这方面的东西。前不久在github上找到这个optee的开源项目,于是fork来学习一下。

地址:https://github.com/OP-TEE

发现optee有4个项目:

optee_os:包含了TEE操作系统本身的源代码,提供了TEE的内部接口。

optee_client:包含了TEE客户端库的源代码,提供了TEE的客户端接口。

optee_linuxdriver:包含了TEE驱动的源代码,提供了TEE的通用驱动程序。


在这张图上可以清楚地看出各部分的关系。

在optee_os中,作者很详细的介绍了这个项目的配置方法。你可以根据自己的需要,选择简易安装,使用某些硬件或者FVP,QEMU等平台来运行这个项目。因为没钱买硬件,我用了fast model作为平台来使用optee,所以我只介绍一下基于FVP的安装方式。

首先要确定一些依赖关系是否满足:

  1. $ sudo apt-get install uuid-dev  

如果你的是64位的linux系统还需要安装下面几个包:
  1. $ sudo apt-get install libc6:i386 libstdc++6:i386 libz1:i386  

之后要下载一个安装脚本,并运行:
  1. $ wget https://raw.githubusercontent.com/OP-TEE/optee_os/master/scripts/setup_fvp_optee.sh  
  2. $ chmod 711 setup_fvp_optee.sh  
  3. $ ./setup_fvp_optee.sh  

这个脚本的功能主要是克隆一些文件,比如linux内核,optee_os,optee_client,optee_driver以及一些工具链。因为其中几个文件比较大,所以可能需要比较长的时间。

中间,安装脚本会提示你去下载FVP。因为版权问题,你需要自己去http://www.arm.com/products/tools/models/fast-models/foundation-model.php下载foundation-model并放到指定的目录,并且把setup_fvp_optee.sh脚本中的SRC_FVP置为1。之后重新运行setup_fvp_optee.sh,等待大概一个小时就可以完成安装。看到 OP-TEE and FVP setup completed. 说明安装成功。

安装成功之后,会在你的home目录下生成一个devel文件,进入目录之后会看到一些脚本文件,其作用在github里有比较详细的描述,就不在这个重复了。之后运行如下命令:

  1. $ ./build_secure.sh  
  2. $ ./build_normal.sh  

就可以编译这个项目了。

最后,通过

  1. $ ./run_foundation.sh  
启动模拟器,成功启动后,加载模块并启动tee-supplicant
  1. root@FVP:/ modprobe optee_armtz  
  2. root@FVP:/ tee-supplicant &  

现在optee就可以正常使用了。

tee-supplicant 是host端的一个守护程序,用于向optee加载或卸载ta。

tee-supplicant & 是让tee-supplicant程序后台执行。

猜你喜欢

转载自blog.csdn.net/darling757267/article/details/51941713