专栏首页hank【分享】PetaLinux 工程的离线编译

【分享】PetaLinux 工程的离线编译

介绍

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编译

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【分享】Xilinx全新开发工具Vitis里,如何配置BSP?

    Xilinx的SoC在业界应用非常广泛。对应的开发工具SDK也很成熟。在SDK里,每一个baremetal工程,对应一个BSP工程,它包含一些Xilinx提供的...

    hankfu
  • Xilinx VCU-TRD 2019.2 编译文件分享

    本文也发布到了 https://www.cnblogs.com/hankfu/p/12719917.html 和 https://www.jianshu.com...

    hankfu
  • [分享] Zynq-7000 XIP 2018.3,在QSPI Flash中运行程序

    有些应用中,单板没有DDR,OCM又不够存储所有数据和指令。这种情况下,Xilinx提供了参考设计Zynq-7000 AP SoC Boot - Booting...

    hankfu
  • ios中iframe的scroll滚动事件替代方法

    deepcc
  • Laravel 简单实现Ajax滚动加载示例

    开发H5项目的时候我们总是需要用到下拉滚动刷新的方式加载页面。这里用 Laravel 实现一下,直接上代码:

    砸漏
  • ios中iframe的scroll滚动事件替代方法

    deepcc
  • Windows 窗口样式 什么是 WS_EX_NOREDIRECTIONBITMAP 样式

    简单说这个 WS_EX_NOREDIRECTIONBITMAP 样式是 Win8 提供的,用来做画面图层混合的功能。什么是画面图层混合功能?详细请看为何使用 D...

    林德熙
  • git与github在ubuntu下的使用

    最近开始使用git对kohana3的文档做一些补充的工作,使用了git 和 github ,从了解到使用,还是有一点距离,下面是总结的一些方法。

    大江小浪
  • 宏基因组学习笔记2

    metagenomics, 在希腊语中meta意思是超越的。宏基因组研究的目的是通过对菌种(株)的鉴定,获得真实的多样性数据,功能,协作和进化。宏基因组分析的三...

    用户1075469
  • 讨论一下秒杀系统的技术难点与解决方案

    通过之前的文章我们了解到,引入MQ后主要可以解决三个问题:异步、解耦、削峰,小伙伴们可以回顾一下这篇文章什么是消息中间件?主要作用是什么?

    HUC思梦

扫码关注云+社区

领取腾讯云代金券