在Qemu上运行TF-A和OP-TEE

本文档详细介绍了如何在Qemu上配置和运行TF-A及OP-TEE,包括环境设置、组件编译、制作启动环境、测试TA程序等步骤。涉及的主要软件版本、交叉编译器的准备以及u-boot、optee_os、optee_client的构建过程。最终实现了从TF-A到u-boot再到Linux系统的启动,并成功测试了TA程序的交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 环境说明

1.1 主要软件版本列表

软件名称 软件版本 下载链接
qemu 5.0.0 https://www.qemu.org/download/
linux 5.5.8 https://www.kernel.org
trusted-firmware-a 2.3 https://www.trustedfirmware.org/
uboot 2020.04-rc3
optee_os master https://github.com/OP-TEE
optee_client master https://github.com/OP-TEE
optee_examples master https://github.com/OP-TEE

其中如何在qemu下运行linux内核请参加我的上一篇文档《编译、运行linux kernel@qemu-based ARM》。这里需要注意的是:

  • 由于optee_client需要访问tee设备驱动,所以需要在/etc/fstab文件中添加对dev和sys路径的mount。
  • 需要也提前准备arm32的交叉编译器,同样可以在Arm Developer网站下载,并设置ARCH和CROSS_COMPILE环境变量。
$ export ARCH=arm64
$ export CROSS_COMPILE=aarch64-none-linux-gnu-

2. 编译构建

2.1 构建optee_os组件

首先需要完成optee_os和optee_client的构建,因为后面在构建trusted firmware-A时需要用到,详细过程可以参考OP-TEE的官方文档

直接编译可能会出现如下错误提示:
ModuleNotFoundError: No module named ‘Crypto’
ModuleNotFoundError: No module named ‘Cryptodome’
需要在make前安装pycryptodome和pycryptodomex两个python包,命令如下,其中考虑到网速问题,使用了清华pip源:
pip3 install pycryptodome -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip3 install pycryptodomex -i https://pypi.tuna.tsinghua.edu.cn/simple/

# 注意无论是编译64位还是32位ARM,都是设置为arm,不能设置为arm64。
$ make \
ARCH=arm \
CFG_ARM64_core=y \
CFG_TEE_BENCHMARK=n \
CFG_TEE_CORE_LOG_LEVEL=3 \
CROSS_COMPILE=aarch64-none-linux-gnu- \
CROSS_COMPILE_core=aarch64-none-linux-gnu- \
CROSS_COMPILE_ta_arm32=arm-none-linux-gnueabihf- \
CROSS_COMPILE_ta_arm64=aarch64-none-linux-gnu- \
DEBUG=1 \
O=out/arm \
PLATFORM=vexpress-qemu_armv8a

# 编译完成后会生成下面三个重要的bin文件,在后面trusted-firmware-a的编译过程中会用到。
#  GEN     out/arm/core/tee-header_v2.bin
#  GEN     out/arm/core/tee-pager_v2.bin
#  GEN     out/arm/core/tee-pageable_v2.bin

注意这里编译的目标平台是qemu,其他的平台可以参见OP-TEE官方文档中Platforms supported by build.git的说明。

2.2 构建optee_client组件

optee_client的编译就比较简单了,进入相应目录后,执行如下操作。

$ make CROSS_COMPILE=aarch64-none-linux-gnu-

2.3 构建optee的样例

以hello world为例,需要分别编译运行在TEE和REE上的程序,其中:

Trusted application

$ cd optee_examples/hello_world/ta
$ make \
ARCH
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值