optee开源项目的学习
来源:互联网 发布:十大网络剧排行榜2017 编辑:程序博客网 时间:2024/05/21 12:51
因为研究生阶段选的是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程序后台执行。
- optee开源项目的学习
- optee的generic_boot_init_primary 分析
- optee thread的初始化
- optee 的helloworld ta
- optee的同步机制总结
- optee中的fiq的执行
- optee os 的启动和初始化
- optee 中静态memory的管理
- linaro optee os官网的几张架构图
- 初识optee 在QEMU平台上的编译、运行
- optee fvp
- 值得学习的Android开源项目
- GitHub 优秀的开源项目学习
- 值得学习的开源项目
- BezierDemo开源项目的学习
- jeewx开源项目的学习1
- 可以学习的go开源项目
- 需要深入学习的开源项目
- IOS -- 利用URL Scheme启动第三方应用
- 剑指offer--调整数组顺序使奇数位于偶数前面
- 最短路 HDU2544(练习模板的好题)
- 验证验生成的原始方法
- [部署篇1]VMWare搭建Openstack——控制节点的基础环境和RabbitMQ消息服务器安装
- optee开源项目的学习
- 汇编学习——整理思路
- 用c语言实现 my_strchr() 和 my_strrchr()
- 跟鸟哥学Linux之——从磁盘分区到文件系统
- Get your Advanced Java Programming Degree with these Tutorials and Courses
- 社群你真的懂吗?
- [刷题]First Bad Version
- XMPP协议笔记
- 安卓问题报告小记(七)