optee开源项目的学习

optee开源项目的学习

因为研究生阶段选的是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的安装方式。

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

$ sudo apt-get install uuid-dev

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

之后要下载一个安装脚本,并运行:
$ wget https://raw.githubusercontent.com/OP-TEE/optee_os/master/scripts/setup_fvp_optee.sh$ chmod 711 setup_fvp_optee.sh$ ./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里有比较详细的描述,就不在这个重复了。之后运行如下命令

$ ./build_secure.sh$ ./build_normal.sh

就可以编译这个项目了。

最后,通过

$ ./run_foundation.sh

启动模拟器,成功启动后,加载模块并启动tee-supplicant
root@FVP:/ modprobe optee_armtzroot@FVP:/ tee-supplicant &

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

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

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

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部