关键词:OP-TEE、ATF、xtest、Linux等等。
下面记录通过ARMv8-A QEMU运行OP-TEE、ARM Trusted Firmware、Linux环境搭建过程。
1. 编译环境准备
sudo apt-get install android-tools-adb android-tools-fastboot autoconf automake bc bison build-essential ccache cscope curl device-tree-compiler \ expect flex ftp-upload gdisk iasl libattr1-dev libcap-dev libfdt-dev libftdi-dev libglib2.0-dev libhidapi-dev libncurses5-dev \ libpixman-1-dev libssl-dev libtool make mtools netcat python-crypto python3-crypto python-pyelftools \ python3-pyelftools python-serial python3-serial rsync unzip uuid-dev xdg-utils xterm xz-utils zlib1g-dev
安装pycryptodome:
pip install pycryptodome
2. 代码下载
由于访问github.com速度非常慢,并且连接不稳定。
所已经github.com相关仓库,镜像到gitee.com;并且手动下载toolchains;手动下载linaro-swg/linux.git。
2.1 镜像github.com相库到gitee.com
repo init -u https://gitee.com/arnoldlu/manifest.git -m qemu_v8.xml --repo-url=git://codeaurora.org/tools/repo.git -b 3.6.0
repo sync -j4
修改manifest.xml:
sed -i "s/\.git//g" .repo/manifest.xml
2.2 下载linaro-swg/linux.git
https://hub.fastgit.org/linaro-swg/linux
2.3 创建Makefile软链接
ln -s build/qemu_v8.xml build/Makefile
2.4 下载toolchains
通过下载工具可以加速工具链下载:
https://developer.arm.com/-/media/Files/downloads/gnu-a/8.3-2019.03/binrel/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz https://developer.arm.com/-/media/Files/downloads/gnu-a/8.3-2019.03/binrel/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz
修改build/toolchains.mk,执行make toolchains。
diff --git a/toolchain.mk b/toolchain.mk index 8bc4b16..fc36394 100644 --- a/toolchain.mk +++ b/toolchain.mk @@ -21,8 +21,6 @@ SRC_AARCH64_GCC ?= https://developer.arm.com/-/media/Files/downloads/gnu-a/8.3 define dltc @if [ ! -d "$(1)" ]; then \ mkdir -p $(1); \ - echo "Downloading $(3) ..."; \ - curl -s -L $(2) -o $(TOOLCHAIN_ROOT)/$(3).tar.xz; \ tar xf $(TOOLCHAIN_ROOT)/$(3).tar.xz -C $(1) --strip-components=1; \ fi endef
3. 编译运行
在build目录下编译:
make -j8 或者 make -f qemu_v8.mk -j8
在build目录下运行:
make run-only make -f qemu_v8.mk run-only
在shell中输入“c”,可以看到弹出两个shell,分别是安全的OP-TEE和非安全的Linux。
在Linux终端中输入root登录,然后执行xtest进行OP-TEE测试。