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 及其依赖组件的核心要求。请按顺序执行安装,避免版本冲突。

  1. Git & Repo:用于同步 OP-TEE 多仓库源码。
  2. GCC & G++:宿主机本地编译工具,用于构建部分主机端工具。
  3. ARM 交叉编译工具链:目标平台为 ARMv7-A(32位)或 AArch64(64位)。
  4. Make & CMake:构建系统核心工具。
  5. Python 3 & Pip3:用于运行 OP-TEE 的构建脚本与测试框架。
  6. 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 或真实开发板)。

开发环境工具链架构图 开发环境工具链架构 Ubuntu 宿主机 (x86_64) Git + Repo (源码管理) GCC / G++ (本地编译) aarch64-linux-gnu-gcc (交叉编译) Python 3 + Pip3 (脚本/测试) CMake + Make (构建系统) dtc (设备树编译) ARM 目标平台 (AArch64) OP-TEE OS (安全内核) Linux 内核 (非安全侧) ARM TrustZone 硬件 QEMU 模拟器 / 开发板 设备树 (DTB) 交叉编译产物 设备树二进制 宿主机交叉编译生成的 .bin / .img 文件通过 TFTP/SCP 部署到目标平台

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" 且无错误,则交叉编译环境就绪。