初识optee 在QEMU平台上的编译、运行

来源:互联网 发布:如何在ktv唱歌好听知乎 编辑:程序博客网 时间:2024/06/06 03:13
1.安装依赖的工具
先安装repo。
然后在Ubuntu中启动一个Terminal,执行如下命令,安装依赖的其他工具。
$ sudo apt-get install android-tools-fastboot autoconf bison cscope curl \               flex gdisk libc6:i386 libfdt-dev libglib2.0-dev \               libpixman-1-dev libstdc++6:i386 libz1:i386 netcat \               python-crypto python-serial uuid-dev xz-utils zlib1g-dev


2.下载OP-TEE源代码
执行如下命令即可。
$ mkdir -p $HOME/optee$ cd $HOME/optee$ repo init -u https://github.com/OP-TEE/manifest.git -m default_stable.xml -b master$ repo sync

3.获取工具链,即交叉编译器
进入build目录
$ make -f toolchain.mk toolchains

4.编译源码
$ make -f qemu.mk all

我是在ubuntu 16.04 系统上编译的,编译提示如下错误:
提示toolchain编译链找不到,这边作了如下修改:
diff --git a/toolchain.mk b/toolchain.mkindex 33c6dfb..6d20d9e 100644--- a/toolchain.mk+++ b/toolchain.mk@@ -6,20 +6,20 @@ TOOLCHAIN_ROOT ?= $(ROOT)/toolchains  AARCH32_PATH ?= $(TOOLCHAIN_ROOT)/aarch32 AARCH32_CROSS_COMPILE ?= $(AARCH32_PATH)/bin/arm-linux-gnueabihf--AARCH32_GCC_VERSION ?= gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf-SRC_AARCH32_GCC ?= http://releases.linaro.org/components/toolchain/binaries/6.2-2016.11/arm-linux-gnueabihf/${AARCH32_GCC_VERSION}.tar.xz+AARCH32_GCC_VERSION ?= gcc-linaro-6.3.1-2017.05-i686_arm-linux-gnueabihf+SRC_AARCH32_GCC ?= http://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/arm-linux-gnueabihf/gcc-linaro-6.3.1-2017.05-i686_arm-linux-gnueabihf.tar.xz  AARCH64_PATH ?= $(TOOLCHAIN_ROOT)/aarch64 AARCH64_CROSS_COMPILE ?= $(AARCH64_PATH)/bin/aarch64-linux-gnu--AARCH64_GCC_VERSION ?= gcc-linaro-6.2.1-2016.11-x86_64_aarch64-linux-gnu-SRC_AARCH64_GCC ?= http://releases.linaro.org/components/toolchain/binaries/6.2-2016.11/aarch64-linux-gnu/${AARCH64_GCC_VERSION}.tar.xz+AARCH64_GCC_VERSION ?= gcc-linaro-6.3.1-2017.05-i686_aarch64-linux-gnu+SRC_AARCH64_GCC ?= http://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/aarch64-linux-gnu/gcc-linaro-6.3.1-2017.05-i686_aarch64-linux-gnu.tar.xz  # Due to relocation error on the 96board edk forest, let's keep the old # toolchain for a while. LEGACY_AARCH64_PATH             ?= $(TOOLCHAIN_ROOT)/aarch64-legacy LEGACY_AARCH64_CROSS_COMPILE    ?= $(LEGACY_AARCH64_PATH)/bin/aarch64-linux-gnu--LEGACY_AARCH64_GCC_VERSION      ?= gcc-linaro-aarch64-linux-gnu-4.9-2014.08_linux-LEGACY_SRC_AARCH64_GCC          ?= http://releases.linaro.org/archive/14.08/components/toolchain/binaries/${LEGACY_AARCH64_GCC_VERSION}.tar.xz+LEGACY_AARCH64_GCC_VERSION      ?= gcc-linaro-4.9.4-2017.01-i686_aarch64-linux-gnu+LEGACY_SRC_AARCH64_GCC          ?= http://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/aarch64-linux-gnu/gcc-linaro-4.9.4-2017.01-i686_aarch64-linux-gnu.tar.xz  # Download toolchain macro for saving some repetition # $(1) is $AARCH.._PATH: i.e., path to the destination
然后在build目录继续执行:
$ make -f toolchain.mk toolchains

等待下载完成,然后进行编译
make -f qemu.mk all

4.启动QEMU模拟器运行OP-TEE
make -f qemu.mk run-only

跳出如下界面,然后输入 c ,启动相关服务:

然后在REE的终端回车,输入:
$optee_hello_world


可以看到TEE的log输出。

阅读全文
0 0