3. 开发环境准备:Ubuntu系统安装、必要软件包安装、Git配置、Repo工具安装、磁盘空间规划

说实话,很多人在Yocto项目上栽跟头,不是因为技术多难,而是开发环境没搭好就开始干。我见过太多同事,装到一半发现磁盘不够,或者Git没配好导致拉代码失败,折腾半天心态就崩了。这一章,咱们就把地基打牢。

3.1 Ubuntu系统安装

Yocto对宿主机的操作系统有要求。我个人习惯用 Ubuntu 20.04 LTS 或 22.04 LTS,这两个版本社区支持最好,遇到问题也容易搜到解决方案。

推荐版本:Ubuntu 22.04 LTS (Jammy Jellyfish)

原因:Python 3.10 原生支持,GCC 11 兼容性好,glibc 版本够新。

安装时注意几点:

  • 分区方案:建议手动分区。根分区(/)给 50GB 足够,重点是把 /home 或专门的数据分区留大,因为Yocto构建产物会吃掉大量空间。
  • 交换分区:如果你的内存小于 16GB,建议给 8GB 交换空间。Yocto编译时内存吃紧,交换分区能救命。
  • 不要装虚拟机:如果你用VMware或VirtualBox,记得给虚拟机分配至少 4 核 CPU 和 8GB 内存。我曾在虚拟机里编译,结果跑了 6 个小时还没完——后来发现是磁盘IO瓶颈。

避坑:我曾经在 WSL2 上尝试构建Rockchip镜像,结果文件系统权限和符号链接问题搞得我焦头烂额。建议直接用原生Linux或完整虚拟机,别在WSL上折腾。

3.2 必要软件包安装

Yocto官方文档列了一堆依赖包,但实际项目中,我总结了一个精简版清单。你直接复制下面这条命令就行:

sudo apt update
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

装完之后,记得检查一下Python版本:

python3 --version
# 输出应该是 Python 3.8 以上

小技巧:如果你用的是Ubuntu 20.04,默认Python是3.8,够用。但22.04自带3.10,体验更好。我建议直接上22.04,省得后面折腾Python版本问题。

3.3 Git配置

Git是Yocto的命脉。拉取代码、管理补丁、提交修改,全得靠它。我每次搭新环境,第一件事就是配Git。

先设置全局用户信息:

git config --global user.name "你的名字"
git config --global user.email "你的邮箱@example.com"

然后配置一些实用参数:

git config --global core.editor vim
git config --global pull.rebase false
git config --global init.defaultBranch main

为什么要配这些?

  • pull.rebase false:默认用merge方式拉取,避免新手搞乱历史。
  • init.defaultBranch main:现在GitHub默认分支都改main了,保持一致。

重点:如果你在公司内网,记得配代理。Yocto的源码仓库在国外,不配代理拉取速度会让你怀疑人生。

git config --global http.proxy http://你的代理地址:端口
git config --global https.proxy http://你的代理地址:端口

3.4 Repo工具安装

Repo是Google开发的工具,专门用来管理多Git仓库的项目。Yocto的Rockchip BSP就是典型的多仓库结构——kernel、u-boot、build配置、硬件驱动各占一个仓库。

安装Repo很简单:

mkdir -p ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

然后把 ~/bin 加到PATH里:

echo 'export PATH=$PATH:~/bin' >> ~/.bashrc
source ~/.bashrc

验证安装:

repo --version
# 正常会显示repo版本号和Python版本

注意:Repo依赖Python 3。如果你系统里同时有Python 2和Python 3,确保 python 命令指向Python 3。我遇到过因为默认Python是2.7,Repo直接报错的情况。

3.5 磁盘空间规划

这是最容易忽略的一环。Yocto构建一次Rockchip镜像,少说吃掉 50GB,多则 100GB+。我见过有人把项目放根目录,编译到一半磁盘满了,进退两难。

我的建议是:

  • 单独挂载一个分区给Yocto项目用,比如 /data/yocto,至少 200GB。
  • 构建目录和下载目录分开。Yocto默认把下载的源码包放 downloads/,构建产物放 build/。这两个目录可以软链接到不同磁盘。

具体做法:

# 假设你的大磁盘挂载在 /data
mkdir -p /data/yocto/downloads
mkdir -p /data/yocto/build

# 在项目目录里创建软链接
cd ~/rockchip-yocto
ln -s /data/yocto/downloads downloads
ln -s /data/yocto/build build

这样做的好处是:

  • 下载的源码包可以复用,多个项目共享同一份 downloads。
  • 构建产物单独放,方便清理。

经验之谈:我习惯把 downloads 目录放在SSD上,build 目录放HDD。因为下载包主要是读操作,SSD快;构建产物写操作多,HDD容量大。这样搭配性价比最高。

3.6 环境验证清单

在正式开始之前,我建议你跑一遍这个检查清单,确保环境没问题:

检查项 命令 预期结果
Ubuntu版本 lsb_release -a 20.04 或 22.04
Python版本 python3 --version ≥ 3.8
Git版本 git --version ≥ 2.25
Repo版本 repo --version 显示版本号
磁盘空间 df -h /data/yocto 可用 ≥ 100GB
必要软件包 dpkg -l | grep gawk 显示已安装

嗯,到这里,你的开发环境就准备好了。别急着往下走,先确认每一项都通过。我当年第一次搭环境时,漏了 chrpath 这个包,结果编译到一半报错,排查了半天才发现。这种坑,踩一次就够了。

一句话总结:环境准备花 1 小时,后面省 10 小时。别图快,慢慢来。

开发环境准备流程 Ubuntu 22.04 LTS 必要软件包安装 Git 全局配置 Repo 工具安装 磁盘空间规划 关键要点 • 手动分区,/home 留大 • 内存≥8GB,交换≥8GB • 用 apt 批量安装依赖 • Git 配好 user.name/email • 内网记得配代理 • Repo 放 ~/bin 并加 PATH • 单独分区 ≥200GB • downloads 和 build 分开 • SSD 放 downloads • HDD 放 build • 最后跑一遍检查清单