zoukankan      html  css  js  c++  java
  • 【分享】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编译

  • 相关阅读:
    预编译
    AndroidRuntime: android.app.RemoteServiceException: Bad notification posted from package
    RadioButton和RadioGroup一点使用心得
    POJ 2774 Long Long Message 后缀数组
    POJ 2406 Power String 后缀数组
    URAL 1297 Palindrome 后缀数组+RMQ
    SPOJ 694 705 后缀数组
    POJ 3261 Milk Patterns 后缀数组
    POJ 1743 Musical Theme 后缀数组
    HDU 5040 Instrusive BFS
  • 原文地址:https://www.cnblogs.com/hankfu/p/14074595.html
Copyright © 2011-2022 走看看