电脑打印键盘快捷键 | 电脑键盘的
771 2023-04-02 15:40:59
因为研究生阶段选的是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
$ 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
中间,安装脚本会提示你去下载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 &
tee-supplicant 是host端的一个守护程序,用于向optee加载或卸载ta。
tee-supplicant & 是让tee-supplicant程序后台执行。