姓名:胡晨

# 一、 本段时间的学习内容:

# A. 学习的详细内容 1:成功搭建 optee 环境。

学习成果 1:进度安排(各工作是否达到预期等):达到。

# B. 学习的内容 2:实践 TA,CA 的简单套路,了解了执行的流程,看了一些相关的视频(https://www.bilibili.com/video/BV1L4411N7gZ?p=1)和博客(https://icyshuai.blog.csdn.net/article/details/73716352)

学习成果 2:进度安排(各工作是否达到预期等):达到。

# 二、困难和解决方案:

以下给出我总结的 optee 环境搭建方法(经过多次尝试,该方法可将时间缩短到两小时内,且必成功):

1. 首先,unbuntu 选择 18.04 版本,这是一切的基础,想必大家都知道版本的重要。(其他版本可能或多或少有难以解决的问题)。给出下载网址:http://mirrors.163.com/ubuntu-releases/18.04/

2. 使用如下指令安装搭建时需要的工具和库(此时使用 Ubuntu18.04 不会有任何报错,但是其他版本会有包安装不了,从而会导致后面一些莫名其妙的错误。):

1
2
3
4
5
6
7
sudo apt-get install android-tools-adb android-tools-fastboot autoconf \
automake bc bison build-essential cscope curl device-tree-compiler \
expect flex ftp-upload gdisk iasl libattr1-dev libc6:i386 libcap-dev \
libfdt-dev libftdi-dev libglib2.0-dev libhidapi-dev libncurses5-dev \
libpixman-1-dev libssl-dev libstdc++6:i386 libtool libz1:i386 make \
mtools netcat python-crypto python-serial python-wand unzip uuid-dev \
xdg-utils xterm xz-utils zlib1g-dev

3. 下载 OP-TEE 的源代码

此时直接从网盘中下载就可以了,千万不要自己同步,可能出现 python 版本不对等问题网盘链接如下:

https://pan.baidu.com/s/1T9tsOnQ3Ebz9wm7ibzBLpw

提取码: cd94

把压缩包复制到 ubuntu 中再解压就可以了(解压出来的文件层数过多,例如 /op-tee/OP-TEE/… , 可以只留一个大文件目录方便操作)

5. 获取 toolchain

1
2
$ cd build
$ make -f qemu.mk all

6. 启动 qemu(仍然在 build 目录下)

如果你不信邪,直接执行下面命令:

1
$ make -f qemu.mk run-only

此时必然会出现一个问题:

*** [/home/rhj0/open-tee/qemu/rules.mak:69:util/memfd.o] 错误 1

此时就需要修改文件里的代码。(可以直接在文件里搜索关键代码,方便寻找)

1
2
3
4
5
6
7
8
9
// qemu/util/memfd.c文件中的: 
#ifdef CONFIG_MEMFD
#include <sys/memfd.h>
#elif defined CONFIG_LINUX
// 改为: #if defined CONFIG_LINUX && !defined CONFIG_MEMFD

// qemu/configure文件中的:
#include <sys/memfd.h>
// 改为: #include <sys/mman.h>

附上官方的更改链接(更改和上面一样):https://git.qemu.org/?p=qemu.git;a=commitdiff;h=75e5b70e6b5dcc4f2219992d7cffa462aa406af0;hp=200780a3a3ed067dfb2e0d2210b0ed09e748ba26

再次执行:

1
$ make -f qemu.mk run-only

就大功告成了。总耗时应该不超过两个小时,甚至网速快的话十几分钟就可以了。

(以上全是踩坑踩出来的经验和各个评论区大佬的解决方案,本人只是汇总找了条最简单的路)

对比别的教程把下载和同步源码改成了网盘下载,大大减少了不必要的麻烦。

最后感谢:https://www.bilibili.com/video/BV1L4411N7gZ?from=search&seid=3256181449257213811(推荐观看

和 https://icyshuai.blog.csdn.net/article/details/71499619

三、 下周预期安排

  1. 下期进度安排:

尽快熟悉 TA 和 CA 的用法