PetaLinux基于Yocto,每次创建或者编译工程下载都需要联网下载工程所需文件,且下载的文件非常庞大,这就导致编译速度还受网络影响导致耗时较长。但是如果改成使用本地缓存文件进行离线编译则可大大缩短时间。
1、下载sstate-cache和downloads
在官网PetaLinux找到对应版本下载页面,PetaLinux Tools sstate-cache Artifacts - 2021.1 ,
如ZYNQMP就下载aarch64 sstate-cache,downloads是必须下载的。
下载完成后,解压sstate-cache和downloads到一个文件夹内
另一种方法:下载的文件确实有点大,还有一种办法。(根据实际操作,在线编译的成功率不大)
就是把你已经可以编译完成的工程里面的sstate-cache和downloads复制到某一文件夹。
路径在:../build/sstate-cache和../build/downloads
2、设置本地sstate-cache和downloads路径
在petalinux工程路径下输入命令:
petalinux-config
选择Yocto Settings ---> Add pre-mirror url 添加路径downloads信息
file:///home/user/workspace/petalinux/share_petalinux_file/downloads
选择Yocto Settings ---> Local sstate feeds settings 添加路径sstate-cache信息
/home/user/workspace/petalinux/share_petalinux_file/sstate-cache/aarch64
选中 Enable Network sstate feeds 不选 Enable BB NO NETWORK (允许访问网络,在离线包未包含时可以在线下载相应包)
检查一下Network sstate feeds URL内容(一般默认都是下面链接)
http://petalinux.xilinx.com/sswreleases/rel-v${PETALINUX_VER%%.*}/aarch64/sstate-cache
保存退出
附:yocto设置选项说明如下表:
另外:本地download也可以通过在文件project-spec/meta-user/conf/petalinuxbsp.conf里添加下列行设置,文件末尾添加6行,注意替换自己的实际目录(不建议,比较麻烦,知道即可)
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/ \
"
参考:ZynqMP Petalinux2021.1设置工程离线编译_petalinux离线编译-CSDN博客
使用petalinux进行离线编译_petalinux离线编译_风往北风的博客-CSDN博客