PetaLinux 2023.2 离线缓存与加速编译配置
前言
本文目标:为 PetaLinux 开发者提供一个标准化的流程,通过使用 AMD 官方提供的离线缓存包,彻底解决因网络问题导致的编译失败,并极大地加速后续项目的构建速度。我们将配置两种核心缓存:
sstate-cache (编译状态缓存): 存储已编译好的软件组件,避免重复编译
downloads (下载镜像): 存储所有需要的源代码压缩包,避免重复下载
前提条件
你已经从 AMD 官网下载了以下两个针对你目标架构的缓存文件,下载链接为https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/embedded-design-tools/archive.html
- arm sstate-cache: 用于 Zynq-7000 系列 (32位 ARM)
- 文件名示例:
sstate_arm_2023.2_10121051.tar.gz
- 文件名示例:
- Downloads: 包含所有架构通用的源代码
- 文件名示例:
downloads_2023.2_10121051.tar.gz
- 文件名示例:
第一步:创建并准备缓存目录
为了让缓存能够被所有 PetaLinux 项目共享,我们将其存放在一个全局的、统一的系统路径下(例如 /opt/petalinux/
)。
创建顶层及子目录
1 | sudo mkdir -p /opt/petalinux/2023.2/sstate-cache |
将新创建目录的所有权赋予当前用户
1 | sudo chown -R $USER:$USER /opt/petalinux/ |
注意:
$USER
是一个系统变量,会自动替换为你的用户名(例如: kuang)
第二步:解压缓存文件到指定目录
接下来,我们将下载好的缓存压缩包解压到刚刚创建好的对应目录中。
1 | # 假设你的下载文件存放在 ~/workspace/ 目录 |


完成这一步后,你的全局缓存已经准备就绪。
第三步:配置 PetaLinux 项目以使用本地缓存
这是最关键的一步。你需要在你的每一个 PetaLinux 项目中修改配置文件,让构建系统(Yocto)明确地知道去哪里寻找和使用这些本地缓存。
配置步骤
修改项目配置
1
petalinux-config
在配置界面中:
- 取消勾选
Yocto Settings → Enable Network sstate feeds
- 勾选
Yocto Settings → Enable BB No Network
- 配置Add pre-mirror url为
file:///opt/petalinux/2023.2/downloads/downloads/
- 配置Local sstate feeds settings为
/opt/petalinux/2023.2/sstate-cache/arm
- 取消勾选
使用
cd
命令进入你的 PetaLinux 项目根目录打开
project-spec/meta-user/conf/petalinuxbsp.conf
文件,在文件的最上方,添加以下内容:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15User Configuration
OE_TERMINAL = "tmux"
设置下载和缓存目录
DL_DIR = "/opt/petalinux/2023.2/downloads/downloads"
SSTATE_DIR = "/opt/petalinux/2023.2/sstate-cache/arm"
使用新语法的 PREMIRRORS 配置
PREMIRRORS:prepend = " \
git://.*/.* file:///opt/petalinux/2023.2/downloads/downloads/ \n \
gitsm://.*/.* file:///opt/petalinux/2023.2/downloads/downloads/ \n \
ftp://.*/.* file:///opt/petalinux/2023.2/downloads/downloads/ \n \
http://.*/.* file:///opt/petalinux/2023.2/downloads/downloads/ \n \
https://.*/.* file:///opt/petalinux/2023.2/downloads/downloads/ \n \
"对于2023.2版本,还需要在downloads/downloads文件夹下补充两个文件
git2_github.com.Xilinx.linux-xlnx.git.tar.gz
,git2_git.yoctoproject.org.yocto-kernel-cache.tar.gz
,git2_github.com.Xilinx.device-tree-xlnx.git.tar.gz
和git2_github.com.Xilinx.u-boot-xlnx.git.tar.gz
第四步:验证配置
保存 petalinuxbsp.conf
文件后,即可开始构建项目来验证配置是否生效。
1 | # 执行构建命令 |