petalinux20220.2离线编译环境配置
背景介绍
最近在学习上海芯驿科技公司的FPGA开发板AXU2CG-E,按照教程在学习petalinux这一块实验内容。但是petalinux编译时默认是通过网络下载依赖包,使得整个编译过程特别的漫长且很容易报错。针对自己的实验环境,把petalinux2022.2离线编译环境配置记录下来。
实验环境
- 虚拟机:VMware® Workstation 16 Pro/V16.2.2
- Ubunut:Ubuntu 18.04.4 LTS
- 软件:vivado 2020.1
- petalinux:petalinux 2020.2
- QT Creator:qt-opensource-linux-x64-5.7.1
- MobaXterm_Persona:MobaXterm_Personal_20.3
编译环境配置
- 从官网下载包/库离线资源。数据包特别大,请先预留足够大的磁盘空间,否则提示磁盘空间已满,从而带来其他不必要的问题。此处:下载地址。我使用的是petalinux20202.2版本,所以只需要下载如下图两个包:
下载完成后,解压到自定义路径中,加压后的样子是这样的:
-
在自己的(petalinux)路径中,输入命令
petalinux-config
,选择“Yocto Settings ->Local sstate feeds settings ->local sstate feeds url” ,填入自定义路径:
-
在自己的(petalinux)路径中,输入命令
petalinux-config
,选择“Yocto Settings ->Add pre-mirror url” ,以格式“file://”填入自定义download路径:
-
我看到网上很多人说勾选“Yocto Settings -> [] BB NO NETWORK”和不勾选“Enable Network sstate feeds”,在具体的过程中,我发现如果打开了这两个选项,还是会报错,因为还有一些依赖包必须从外网下载得到,所以我个人不建议关闭网络。
-
在本地配置文件project-spec/meta-user/conf/petalinuxbsp.conf里添加如下设置:
PREMIRRORS_prepend = " \
git://.*/.* file:///opt/Xilinx/peta/2020.2/downloads/ \
ftp://.*/.* file:///opt/Xilinx/peta/2020.2/downloads/ \
http://.*/.* file:///opt/Xilinx/peta/2020.2/downloads/ \
https://.*/.* file:///opt/Xilinx/peta/2020.2/downloads/ \
"
- 配置好相关选项后,就可以使用
petalinux-build
,petalinux-build --sdk
进行编译了。在实际的编译过程中,还是有点非常慢(与配置选项有关,即编译时需要的文件数量),需要耐心等待,千万不能操之过急。直接Ctrl+C杀死线程。
祝编译顺利!
补充:“Yocto Settings ->Enable Network sstate feeds”中输入网址:http://petalinux.xilinx.com/sswreleases/rel-v2020/aarch64/sstate-cache
,这样效果好一点。