Petalinux工程如何离线编译
目录
一.下载离线包
1.1 共享状态缓存包:sstate-cache
1.1.1 进入官网打开Petalinux工具网页
1.1.2 找到相应的Petalinux版本
1.1.3 根据平台下载
1.2 下载downloads源码包
1.3 open_components源码包
二.解压
2.1 sstate-cache
2.2 downloads源码包
2.3 解压open_components
三.Petalinux离线工程配置
3.1 u-boot和linux源码路径配置
3.2 downloads离线包路径配置
3.3 sstate-cache路径配置
3.4 禁止联网编译
四.编译
我们常常出于各种原因,需要离线编译Petalinux工程。例如:办公电脑不允许联网,或者在线编译需要访问国外网站而又苦于不能翻墙,或者折腾了好一阵子终于可以顺利下载了,但又出现了各种编译错误,搜遍全网都没有找到解决方法......
此时,你需要离线编译来拯救你临近崩溃边缘的心!
一.下载离线包
离线编译需要三个基础包,都可以从xilinx的中国官网下载:
Xilinx中国官网
1.1 共享状态缓存包:sstate-cache
1.1.1 进入官网打开Petalinux工具网页
1.1.2 找到相应的Petalinux版本
1.1.3 根据平台下载
若是64位ARM平台,则下载aarch64版本;若是32位ARM平台,则下载arm版本。
1.2 下载downloads源码包
这是在线编译时会自动下载的源码包。我们要离线编译,所以,要提前下载。
下载地址与sstate-cache在同一栏目下。这个包比较大,需耐心等待。
1.3 open_components源码包
此源码包中包含了u-boot、linux、RootFS和arm-trusted-firmware等核心系统组件。
二.解压
准备好离线包后,可以解压到任意目录。
例如:
2.1 sstate-cache
解压到如下目录:
/mnt/petalinux202101_offline/
解压后,是一个sstate_arm_2021.1文件夹(此处下载的是202101版本)。
则工程配置时,需要用到以下目录路径:
/mnt/petalinux202101_offline/arm
2.2 downloads源码包
解压到如下目录:
/mnt/petalinux202101_offline/
解压后,是一个downloads文件夹。
则工程配置时,需要用到以下目录路径:
/mnt/petalinux202101_offline/downloads
2.3 解压open_components
解压到如下目录:
mnt/petalinux202101_offline
解压后,将得到一个petalinux-v2021.1-open_components文件夹(此处下载的是202101版本)。
此文件夹下包含了以下组件:
则工程配置时,需要用到以下目录路径:
/mnt/petalinux202101_offline/petalinux-v2021.1-open_components/components/u-boot-plnx
/mnt/petalinux202101_offline/petalinux-v2021.1-open_components/components/xlnx-5.10
三.Petalinux离线工程配置
执行如下命令,进入Petalinux工程配置界面:
petalinux-config --get-hw-description=../xsa/
3.1 u-boot和linux源码路径配置
在Linux Components Selection选项中,u-boot和linux-kernel均选择“ext-local-src”,然后在对应路径设置中填写u-boot和linux-kernel的本地路径:
/mnt/petalinux202101_offline/petalinux-v2021.1-open_components/components/u-boot-plnx
/mnt/petalinux202101_offline/petalinux-v2021.1-open_components/components/xlnx-5.10
3.2 downloads离线包路径配置
进入以下选项中:
-> Yocto Settings-> Add pre-mirror url-> (press Enter)Clear default value
填入如下路径:
file:///mnt/petalinux202101_offline/downloads
3.3 sstate-cache路径配置
进入如下选项:
-> Yocto Settings->Local sstate feeds settings->local sstate feeds url(press Enter)
填入如下路径:
/mnt/petalinux202101_offline/sstate_arm_2021.1/arm
3.4 禁止联网编译
1.取消“Enable Network sstate feeds”选项。
2.选择“Enable BB NO NETWORK”选项。
四.编译
至此,离线编译配置已大功告成,放心去编译吧,开始实现你的项目........