news 2026/8/23 10:22:39

OPTEE 3.15运行在QEMU ARMv8上

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
OPTEE 3.15运行在QEMU ARMv8上

系统信息

uname -a Linux rtos 5.11.0-37-generic #41-Ubuntu SMP Mon Sep 20 16:39:20 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Git配置

~/.bashrc中开启git的调试模式

export GIT_TRACE_PACKET=1 export GIT_TRACE=1 export GIT_CURL_VERBOSE=1 git config --global user.email "yourmail@xx.com" git config --global user.name "yourname"

编译依赖

sudo apt install automake bc bison build-essential cscope curl device-tree-compiler expect flex autoconf ftp-upload gdisk acpica-tools 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 ninja-build zlib1g:i386 make mtools netcat unzip uuid-dev xdg-utils xterm xz-utils zlib1g-dev adb fastboot meson libgnutls28-dev autoconf -f sudo apt install -y python3-pyelftools sudo apt install -y python3-pip sudo apt install -y python3-pwntools python3-pycryptodome python3 -m pip install --user --break-system-packages \ pwntools pycryptodome pycryptodomex

下载代码

mkdir tee3.15 cd tee3.15 repo init -u https://github.com/OP-TEE/manifest.git --depth 1 -m qemu_v8.xml --repo-url=https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -b 3.15.0 repo sync -j4 --no-clone-bundle

如果没有意外,下载成功截图如下:

获取交叉编译工具

cd build/ make -f toolchain.mk toolchains -j4

编译OP-TEE

cd build/ make -f qemu_v8.mk -j4

需要做的就是耐心等待编译完成,如图所示给虚拟机分配了4颗CPU,编译过程可以看到CPU占用率比较高。

还可以运行make check测试编译是否成功,会运行xtest用例。

运行

观察soc_term.py源码,可以看到支持端口入参。

可以开启两个shell命令行,分别使用python3 soc_term.py 54320和python3 sco_term.py 54321分别监听Normal World和Secure World两个世界的端口。

然后进入到build目录,运行make run-only即可进入到交互状态,然后按照提示输入c字母,回车确认:

接着Normal World以root用户登录:

并运行xtest进行测试:

如果顺利,你将会看到:

参考资料

OP-TEE Documentation — OP-TEE documentation documentation (optee.readthedocs.io)

FAQ

RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexpected length was received

sudo apt-get purge git sudo apt-get install git

ModuleNotFoundError: No module named 'Cryptodome'

#pycrypto、pycrytodome和crypto是一个东西,crypto在python上面的名字是pycrypto,

pip3 uninstall pycryptodome pip3 install pycryptodome

edk2相关错误

编译edk2 提示莫名奇怪错误,可能是编译过程中没能正常下载相关依赖导致。

进edk2, 执行下载相即可。

git submodule update --init --recursive

edk2 boringssl下载失败

tianocore/edk2.git/CryptoPkg/Library/OpensslLib/openssl/boringssl: fatal: unable to access 'https://hub.fastgit.org/google/boringssl.git/': gnutls_handshake() failed: Error in the pull function. error: Cannot fetch tianocore/edk2.git/CryptoPkg/Library/OpensslLib/openssl/boringssl from https://boringssl.googlesource.com/boringssl Fetching: 100% (1/1), done in 4.610s 解决思路是使用git config --global url.A.insteadOf B 命令将boringssl.googlesource.com替换为谷歌的github镜像库 https://github.com/google/boringssl.git,方法如下: git config --global url."https://github.com/google/boringssl.git".insteadOf "https://boringssl.googlesource.com/boringssl"
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/23 10:21:56

MiniMax H3前瞻:技术评估、部署准备与效果验证全指南

这次我们来看一个即将在GMI夏季峰会亮相的AI模型——MiniMax H3。从项目名称来看,这很可能是MiniMax公司继其MoE架构模型之后,推出的新一代高性能模型。对于关注大模型前沿动态和本地化部署可能性的开发者来说,这类新模型的发布总是值得关注的…

作者头像 李华
网站建设 2026/8/23 10:19:54

机器学习十大经典算法实战指南:从原理到数学建模应用

1. 项目概述:从“十大经典”到实战建模的桥梁 刚接触机器学习或数学建模的朋友,可能都听过“十大经典算法”这个说法。它像一份流传已久的“武功秘籍”,被无数教材、课程和论坛反复提及。但当你真正拿到这份名单,准备在数据挖掘项…

作者头像 李华
网站建设 2026/8/23 10:14:43

工业机器人Socket通信:3D视觉引导路径传输的完整协议设计与实现

如果你正在开发一个工业机器人应用,特别是涉及视觉引导的场景,那么“机器人通过Socket接收3D相机路径点位工艺文件并运行”这个需求,很可能就是你当前项目中最核心、也最容易出错的环节。这听起来像是一个简单的数据收发任务:相机…

作者头像 李华
网站建设 2026/8/23 10:14:28

Vue.js面经应用开发实战与核心技巧解析

1. 项目概述 这个Vue多文件学习项目是一个面经(面试经验分享)基础版应用,适合Vue初学者通过实际案例掌握核心开发技能。项目采用了Vue.js 2.x版本,实现了文章列表展示、详情查看、底部导航等基础功能,涵盖了路由管理、…

作者头像 李华