3. 开发环境准备:Ubuntu 20.04/22.04 LTS 安装与必要工具链安装
搭建 TrustZone 与 OP-TEE 开发环境的第一步是选择一个稳定、长期支持(LTS)的 Linux 发行版作为宿主机。Ubuntu 20.04 LTS(Focal Fossa)与 22.04 LTS(Jammy Jellyfish)是目前嵌入式安全开发社区广泛验证的两个版本,两者均提供完整的 ARM 交叉编译工具链与 OP-TEE 构建依赖。
3.1 宿主机操作系统选择与安装
推荐使用 Ubuntu 22.04 LTS 作为首选版本,其软件包仓库中的 GCC 版本(11.x)、Python 3.10 及 CMake 版本与 OP-TEE 4.x / 5.x 系列兼容性最佳。若团队已有 Ubuntu 20.04 基础设施,亦可沿用,但需注意手动升级部分工具链版本。
| 对比项 | Ubuntu 20.04 LTS | Ubuntu 22.04 LTS |
|---|---|---|
| 默认 GCC | 9.4.0 | 11.4.0 |
| 默认 Python | 3.8.10 | 3.10.12 |
| 默认 CMake | 3.16.3 | 3.22.1 |
| OP-TEE 官方支持 | 需额外 PPA 或源码编译部分工具 | 原生支持 OP-TEE 4.2+ |
| 长期维护截止 | 2025 年 4 月 | 2027 年 4 月 |
建议:若使用虚拟机,分配至少 4 个 vCPU、8 GB 内存、80 GB 磁盘空间。OP-TEE 完整构建(包括 Linux 内核、ATF、U-Boot 及 OP-TEE OS)需要约 30–50 GB 磁盘空间。
3.2 必要工具链安装清单
以下工具链是编译 OP-TEE 及其依赖组件的核心要求。请按顺序执行安装,避免版本冲突。
- Git & Repo:用于同步 OP-TEE 多仓库源码。
- GCC & G++:宿主机本地编译工具,用于构建部分主机端工具。
- ARM 交叉编译工具链:目标平台为 ARMv7-A(32位)或 AArch64(64位)。
- Make & CMake:构建系统核心工具。
- Python 3 & Pip3:用于运行 OP-TEE 的构建脚本与测试框架。
- Device Tree Compiler (dtc):编译设备树文件,用于 QEMU 或真实硬件启动。
关键依赖关系:OP-TEE 的构建流程依赖
repo 工具进行多仓库初始化,repo 本身是一个 Python 脚本,因此 Python 3 与 Git 必须最先安装。
3.3 工具链安装步骤(Ubuntu 22.04 LTS)
以下命令在全新安装的 Ubuntu 22.04 LTS 终端中逐条执行。建议使用 sudo 提权,并确保网络连接稳定。
# 1. 更新软件包索引
sudo apt update && sudo apt upgrade -y
# 2. 安装 Git 与 Repo
sudo apt install -y git
mkdir -p ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
# 3. 安装本地编译工具
sudo apt install -y build-essential gcc g++ make cmake
# 4. 安装 ARM64 交叉编译工具链(AArch64)
sudo apt install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
# 5. 安装 ARM 32位交叉编译工具链(可选,用于 32位 TrustZone)
sudo apt install -y gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
# 6. 安装 Python 3 与 Pip3
sudo apt install -y python3 python3-pip python3-venv
# 7. 安装 Device Tree Compiler
sudo apt install -y device-tree-compiler
# 8. 验证安装
git --version
repo --version
aarch64-linux-gnu-gcc --version
python3 --version
dtc --version
注意:若使用 Ubuntu 20.04 LTS,请额外执行
sudo apt install -y python3.8-venv 并确保 pip3 版本 ≥ 21.0。OP-TEE 4.0+ 要求 Python 3.8 以上。
3.4 工具链版本验证与架构关系
安装完成后,建议通过以下表格核对各工具的预期版本范围,确保环境一致性。
| 工具名称 | 最低版本要求 | 验证命令 | 用途 |
|---|---|---|---|
| Git | 2.25+ | git --version |
源码版本管理 |
| Repo | 2.30+ | repo --version |
多仓库同步管理 |
| GCC (host) | 9.0+ | gcc --version |
主机端工具编译 |
| aarch64-linux-gnu-gcc | 10.0+ | aarch64-linux-gnu-gcc --version |
ARM64 目标交叉编译 |
| CMake | 3.16+ | cmake --version |
构建系统生成 |
| Python 3 | 3.8+ | python3 --version |
构建脚本与测试 |
| dtc | 1.6+ | dtc --version |
设备树编译 |
3.5 开发环境架构总览
下图展示了宿主机开发环境与 OP-TEE 目标平台之间的工具链映射关系。左侧为 Ubuntu 宿主机上安装的本地工具与交叉编译工具,右侧为最终运行 OP-TEE 的 ARM 目标硬件(QEMU 或真实开发板)。
3.6 常见问题与避坑指南
- Repo 初始化失败:若
repo init提示 Python 版本不兼容,请确保python3指向 Python 3.8+,并使用python3 -m pip install --upgrade repo更新。 - 交叉编译工具链缺失:部分 OP-TEE 目标(如 i.MX8QM)需要指定
CROSS_COMPILE环境变量。安装后请执行export CROSS_COMPILE=aarch64-linux-gnu-并确认路径。 - dtc 版本过低:若编译设备树时出现语法错误,请从 dtc 官方仓库 源码安装 1.7+ 版本。
- 磁盘空间不足:OP-TEE 完整构建目录约 8–12 GB,加上 Linux 内核与 ATF 源码,建议预留 50 GB 以上。
快速验证:安装完成后,创建一个空目录并执行
aarch64-linux-gnu-gcc -v,若输出包含 "Target: aarch64-linux-gnu" 且无错误,则交叉编译环境就绪。