基于QEMU的OPTEE/ATF学习
OPTEE/ATF
# 环境安装问题
# Ubuntu 20.04, 19.10 or 19.04 出现 libqtgui4 : Depends: libpng12-0 (>= 1.2.13-4) but it is not installed
E: Unmet dependencies. Try ‘apt --fix-broken install’ with no packages (or specify a solution). 问题的解决方法:
Ubuntu 20.04, 19.10 或者 19.04 中,可以通过 PPA 安装 libpng,安装 PPA 及 libpng12-0 的命令如下。
# 解决方法
1 | sudo add-apt-repository ppa:linuxuprising/libpng12 |
# OPTEE/ATF 环境安装
我的虚拟机是 Ubuntu18.04
# (一)常规流程(比较考验网速)
- 安装必要依赖
1 | sudo apt-get install android-tools-adb android-tools-fastboot autoconf \ |
- 创建 opentee 目录
1 | mkdir open-tee //创建目录 |
- 打开.repo/manifest.xml,在 revision 后添加 clone-depth=“1”,因为一些 linux project,qemu project 太大,只克隆一层
1 | time repo sync -j8 -f |
- 获取 toolchain
1 | cd build //切换到build目录 |
-
开始编译使用 qemu 运行 OP-TEE 的工程
准备好 toolchain 和 source code 之后,下一步就是编译工程,具体操作如下:
1 | cd build //切换到build目录 |
- 启动 qemu
1 | cd build |
-
运行 OP-TEE 和 linux
在 qemu 界面中输入字母 “c” 回车之后,就会启动两个 terminal,一个是 OP-TEE 的 terminal, 另外一个是 linux 的 terminal。
# (二)使用搭建好的的 optee
https://blog.csdn.net/chelseablue1905/article/details/85344941
注意在 build_qemu.sh 时会报错,
1 | builddir/build/BUILD/qemu-2.11.0-rc1/util/memfd.c:40:12: error: static declaration of memfd_create follows non-static declaration |
按照发布的补丁:https://git.qemu.org/?p=qemu.git;a=commit;h=75e5b70e6b5dcc4f2219992d7cffa462aa406af0
删除 qemu/util/memfd.c 中报错部分的 static 函数以及引用头文件重新编译即可
# 参考文章
基于QEMU的OPTEE/ATF学习