2. Yocto开发环境搭建
构建Yocto项目的第一步是准备一个干净、稳定的宿主系统。本章以Ubuntu 22.04 LTS(64位)为基准,指导你完成从系统更新、依赖安装到版本控制工具配置的全过程。一个正确的宿主环境能避免90%以上的构建失败。
2.1 宿主系统要求与检查
Yocto项目对宿主系统有明确的硬件和软件要求。在开始安装前,请先确认你的环境满足以下最低配置:
| 项目 | 最低要求 | 推荐配置 |
|---|---|---|
| CPU | 双核 x86-64 | 4核及以上 |
| 内存 | 4 GB | 8 GB 或更高 |
| 磁盘空间 | 50 GB 空闲 | 120 GB+ SSD |
| 操作系统 | Ubuntu 20.04 / 22.04 | Ubuntu 22.04 LTS |
| 文件系统 | ext4 | ext4(不推荐NTFS/FAT) |
⚠ 磁盘空间警告:Yocto构建过程会下载大量源码包并生成中间产物。一个完整的Poky构建可能消耗80-100 GB空间。请确保你的构建目录所在分区有足够的剩余空间,且文件系统支持符号链接(ext4/btrfs/xfs均可)。
2.2 更新系统与安装核心依赖包
首先,更新APT包索引并升级现有软件包,然后安装Yocto项目所需的编译工具链和系统库。
# 更新系统
sudo apt update
sudo apt upgrade -y
# 安装Yocto核心依赖包
sudo apt install -y \
gawk wget git diffstat unzip texinfo gcc build-essential \
chrpath socat cpio python3 python3-pip python3-pexpect \
xz-utils debianutils iputils-ping python3-git python3-jinja2 \
libegl1-mesa libsdl1.2-dev pylint3 xterm python3-subunit \
mesa-common-dev zstd liblz4-tool file locales libacl1
💡 版本验证:安装完成后,建议使用
gcc --version、python3 --version、git --version 确认工具版本。Yocto 4.0 (Kirkstone) 及以上版本要求 Python 3.8+ 和 Git 1.8.3+。
2.3 配置Git与Repo工具
Git是Yocto项目获取源码的核心工具,而Repo(Google开发的仓库管理工具)用于管理多Git仓库的Yocto元层。正确配置这两者是高效开发的基础。
2.3.1 Git全局配置
设置你的用户名和邮箱,这些信息会嵌入到每次提交中。同时建议开启颜色输出和缓存凭证以提升体验。
# 设置用户信息(替换为你的实际信息)
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
# 推荐配置
git config --global color.ui auto
git config --global credential.helper cache
git config --global core.preloadindex true
git config --global core.fscache true
2.3.2 安装Repo工具
Repo是一个Python脚本,通常通过直接下载可执行文件的方式安装。
# 创建本地bin目录(如果不存在)
mkdir -p ~/.local/bin
# 下载Repo脚本
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.local/bin/repo
# 赋予执行权限
chmod a+x ~/.local/bin/repo
# 将~/.local/bin加入PATH(建议写入~/.bashrc)
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
# 验证安装
repo --version
🔑 网络注意事项:如果无法访问
storage.googleapis.com,可以使用国内镜像源。将下载URL替换为 https://mirrors.tuna.tsinghua.edu.cn/git/git-repo 或 https://gerrit-googlesource.proxy.ustclug.org/git-repo。
2.4 开发环境结构总览
下图展示了搭建完成后宿主系统的核心组件及其关系。理解这个架构有助于后续章节中定位问题和规划构建流程。
2.5 验证环境完整性
安装完成后,建议运行一个快速验证脚本,确保所有关键组件就绪。这能避免在后续构建中遇到“缺少依赖”的尴尬。
#!/bin/bash
# 环境验证脚本:check_env.sh
echo "=== Yocto 开发环境检查 ==="
# 检查关键命令
for cmd in gcc python3 git repo make tar wget; do
if command -v $cmd >/dev/null 2>&1; then
echo "[OK] $cmd 已安装"
else
echo "[FAIL] $cmd 未找到"
fi
done
# 检查Python版本
python3 --version 2>&1 | grep -qE "3\.[8-9]|3\.1[0-9]"
if [ $? -eq 0 ]; then
echo "[OK] Python3 版本满足要求"
else
echo "[WARN] Python3 版本可能过低"
fi
# 检查磁盘空间
available=$(df / | tail -1 | awk '{print $4}')
if [ $available -gt 52428800 ]; then
echo "[OK] 磁盘空间充足 ($((available/1024/1024)) GB)"
else
echo "[WARN] 磁盘空间不足,建议释放空间"
fi
echo "=== 检查完成 ==="
📋 保存检查结果:将上述脚本保存为
check_env.sh,运行 bash check_env.sh。如果所有项都显示 [OK] 或 [WARN](非 [FAIL]),则环境已准备就绪,可以进入下一章。
2.6 常见问题与解决方案
以下是初学者在搭建环境时最常遇到的三个问题,提前了解可以节省大量排错时间。
| 问题现象 | 根本原因 | 解决方案 |
|---|---|---|
/usr/bin/env: python3: No such file or directory |
系统未安装Python3或符号链接缺失 | 运行 sudo apt install python3 并检查 /usr/bin/python3 是否存在 |
repo: command not found |
Repo未加入PATH或未安装 | 确认 ~/.local/bin/repo 存在且已执行 source ~/.bashrc |
fatal: unable to access 'https://...' |
网络代理或防火墙限制 | 配置Git代理:git config --global http.proxy http://proxy:port |
✅ 环境就绪标志:当你能够成功运行
git clone、python3 --version 输出 3.8+、repo --version 显示版本号时,你的Yocto开发环境已经搭建完成,可以开始构建自定义Linux发行版了。