xilinx petalinux离线编译

原文地址:https://www.cnblogs.com/hankfu/p/14074595.html

介绍

PetaLinux基于Yocto,编译Linux内核、文件系统等,非常庞大,需要的软件很多。如果从网络下载,可能消耗比较长的时间。
本文基于Xilinx PetaLinux 2020.2.

下载sstate文件

进入Xilinx 网站嵌入式下载专区, 在页面内搜索“sstate”,找到和下载对应的文件。2020.1下,每个架构是一个独立的sstate文件。以前的版本,所有架构是一个sstate文件。2020.1下有下列四个文件。

  1. aarch64 sstate-cache (TAR/GZIP - 25.88 GB)

  2. arm sstate-cache (TAR/GZIP - 9.09 GB)

  3. mbfull sstate-cache (TAR/GZIP - 3.12 GB)

  4. mblite sstate-cache (TAR/GZIP - 3.12 GB)

点击对应的文件后,登录Xilinx账号,开始下载。在下载管理器里可以看到下载地址,比如https://xilinx-ax-dl.entitlenow.com/dl/ul/2020/11/20/R210411015/sstate_aarch64_2020.2.tar.gz/30e9814fd75c278b9222afab52258f2b/5FC29FDF?akdm=0&filename=sstate_aarch64_2020.2.tar.gz。这个下载地址会随着时间变化,在大约一天内可以重复使用。推荐使用Free Download Manager等下载管理软件下载。
下载后,在本地Linux机器上解压。比如解压到/opt/Xilinx/peta/2020.2/sstate,从而在其中看到下列目录。

:/opt/Xilinx/peta/2020.2/sstate/aarch64$ ls 
00  06  0c  12  18  1e  24  2a  30  36  3c  42  48  4e  54  5a  60  66  6c  72  78  7e  84  8a  90  96  9c  a2  a8  ae  b4  ba  c0  c6  cc  d2  d8  de  e4  ea  f0  f6  fc
01  07  0d  13  19  1f  25  2b  31  37  3d  43  49  4f  55  5b  61  67  6d  73  79  7f  85  8b  91  97  9d  a3  a9  af  b5  bb  c1  c7  cd  d3  d9  df  e5  eb  f1  f7  fd
02  08  0e  14  1a  20  26  2c  32  38  3e  44  4a  50  56  5c  62  68  6e  74  7a  80  86  8c  92  98  9e  a4  aa  b0  b6  bc  c2  c8  ce  d4  da  e0  e6  ec  f2  f8  fe
03  09  0f  15  1b  21  27  2d  33  39  3f  45  4b  51  57  5d  63  69  6f  75  7b  81  87  8d  93  99  9f  a5  ab  b1  b7  bd  c3  c9  cf  d5  db  e1  e7  ed  f3  f9  ff
04  0a  10  16  1c  22  28  2e  34  3a  40  46  4c  52  58  5e  64  6a  70  76  7c  82  88  8e  94  9a  a0  a6  ac  b2  b8  be  c4  ca  d0  d6  dc  e2  e8  ee  f4  fa  universal
05  0b  11  17  1d  23  29  2f  35  3b  41  47  4d  53  59  5f  65  6b  71  77  7d  83  89  8f  95  9b  a1  a7  ad  b3  b9  bf  c5  cb  d1  d7  dd  e3  e9  ef  f5  fb  universal-4.8

下载download文件

同样,Xilinx 网站嵌入式下载专区, 在页面内搜索“ downloads”,找到和下载对应的文件。 2020.2下,downloads的大小是36.01 GB。

下载后,在本地Linux机器上解压。比如解压到/opt/Xilinx/peta/2020.2/downloads,从而在其中看到下列文件。

:/opt/Xilinx/peta/2020.2/downloads$ ls *linux*.tar.gz
git2_github.com.linux-can.can-utils.git.tar.gz     git2_github.com.Xilinx.linux-xlnx.git.tar.gz                                     git2_git.linuxfoundation.org.diamon.babeltrace.git.tar.gz
git2_github.com.linux-test-project.ltp.git.tar.gz  git2_git.kernel.org.pub.scm.linux.kernel.git.kdave.btrfs-progs.git.tar.gz
git2_github.com.Xilinx.linux-examples.git.tar.gz   git2_git.kernel.org.pub.scm.linux.kernel.git.shemminger.bridge-utils.git.tar.gz

设置本地sstate

运行petalinux-config,进入菜单“Yocto Settings ->Local sstate feeds settings ->local sstate feeds url” ,按Enter键,提供上述sstate目录。对于arm64,目录是/opt/Xilinx/peta/2020.2/sstate/aarch64。每个CPU架构使用不同的sstate目录。
具体步骤也可以参考sstate_rel_2020.2_README.tar.gz里解压出来的Readme.

设置后,文件project-spec/configs/config里有下列内容。

#
# Local sstate feeds settings
#
CONFIG_YOCTO_LOCAL_SSTATE_FEEDS_URL="/opt/Xilinx/peta/2020.2/sstate/aarch64"
CONFIG_YOCTO_NETWORK_SSTATE_FEEDS=y

设置本地download

运行petalinux-config,进入菜单“Yocto Settings ->Add pre-mirror url” 里,按Enter键,以格式“file://”提供上述download目录,比如“file:///opt/Xilinx/peta/2020.2/downloads”。不同CPU架构可以使用相同的download目录。
sstate_rel_2020.2_README.tar.gz里解压出来的Readme也描述了这个步骤。

设置后,文件project-spec/configs/config里有下列内容。

#
# Add pre-mirror url 
#
CONFIG_PRE_MIRROR_URL="file:///opt/Xilinx/peta/2020.2/downloads"

设置离线编译

运行petalinux-config,进入菜单“Yocto Settings -> [] BB NO NETWORK”,按Enter键,选择“BB NO NETWORK”。

设置后,文件project-spec/configs/config里有下列内容。

#
# Network sstate feeds URL
#
CONFIG_YOCTO_NETWORK_SSTATE_FEEDS_URL="http://petalinux.xilinx.com/sswreleases/rel-v${PETALINUX_VER%%.*}/aarch64/sstate-cache"
CONFIG_YOCTO_BB_NO_NETWORK=y

编译

设置本地sstate、本地download、离线编译后,进行编译,就不从网络下载文件了。

其它

PREMIRRORS_prepend

本地download也可以通过在文件project-spec/meta-user/conf/petalinuxbsp.conf里添加下列行设置。

# ===============================================
# AR 71798
# https://www.xilinx.com/support/answers/71198.html
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 fails to build gstreamer using sstate cache

相关文档

使用petalinux2020.1进行离线编译

使用petalinux进行离线编译

整合Xilinx PetaLinux工程编译和Open Source U- Boot/Linux编译

### PetaLinux 2020.1 的下载、安装与使用 #### 下载 PetaLinux 2020.1 工具链 为了获取 PetaLinux 2020.1,需访问 Xilinx 官方网站并登录账户。通过产品页面找到对应版本的工具链进行下载。 #### 安装 PetaLinux 2020.1 假设已成功下载 `petalinux-v2020.1-final-installer.run` 文件至本地机器上,在终端执行如下命令完成安装过程: ```bash chmod +x ./petalinux-v2020.1-final-installer.run sudo ./petalinux-v2020.1-final-installer.run -d /opt/pkg/petalinux2020.1/ ``` 上述指令赋予脚本可执行权限,并指定目标路径 `/opt/pkg/petalinux2020.1/` 来存储解压后的文件[^1]。 #### 配置离线编译环境 对于希望加速构建流程或处于无网络连接场景下的开发者来说,可以利用预缓存机制减少重复下载依赖项的时间开销。具体操作是在启动配置界面时设置镜像源地址以及共享状态缓存位置: ```bash petalinux-config \ --get-hw-description=<project_path> \ --silentconfig # 进入菜单选项 "Yocto Settings" # 添加自定义前缀 URL 至 Pre-Mirrors 列表中 # 清除默认值后输入本地 SSTATE 缓存路径 file://<path_to_sstate_cache>/sstate-cache for all projects ``` 此步骤有助于提高后续多次编译效率,特别是在处理大型项目时尤为明显[^3]。 #### 创建新工程实例 初始化一个新的 PetaLinux 项目可以通过下面这条简单的命令实现: ```bash petalinux-create -t project -n myproj --template zynq cd myproj ``` 这会依据模板创建名为 `myproj` 的工作空间结构,其中包含了必要的硬件描述文件和其他资源文件夹。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值