离线编译petalinux

本文是基于Alinx FPGA开发板(AXU2CGA)学习过程中踩过的坑,以做记录。

1.创建工程目录 :路径中“~”表示用户 home 路径

mkdir -p ~/peta_prj/linxPsBase

2.导入.xsa文件 :.xsa文件是由vitis vivado导出的,在工作目录下创建一个文件夹hardware ,拷贝.xsa文件至该文件夹下。需要要注意该.xsa文件对应的vivado工程需要包含ZYNQ的ARM硬核(已配置好各个外设),并以include bitstream形式导出.xsa。

mkdir -p ~/peta_prj/linxPsBase/hardware
cd ~/peta_prj/linxPsBase/hardware
cp <.xsa的文件夹路径>/design_1_wrapper.xsa ./

3.进入工作环境 :返回工程目录linxPsBase,设置 petalinux 环境变量,环境变量叧在当前终端中有效,所有与petalinux 相关的命令都要在当前终端中输入,关闭后需要重新运行。

cd ~/peta_prj/linxPsBase/
source /opt/pkg/petalinux/settings.sh     #设置 petalinux 环境变量,需要提前搭好相关环境,这里便不细说了

4.创建 petalinux 工程:名称为“petalinux”,类型为“project”,使用 zynqMP 模板,将自动在linxPsBase目录下创建petalinux目录。

petalinux-create -t project -n petalinux --template zynqMP

5.配置 硬件信息 :进入petalinux下,配置Petalinux工程的硬件信息,上述hardware目录里只能有一个.xsa文件。

petalinux-config --get-hw-description ../hardware/

6.工程配置 :每完成一层目录的配置需要save再exit至上一层目录。

  • 选上kernel autoconfig和u-boot autoconfig,按“y”为选中,“n”为取消。

  • 此处默认INITRD模式即可,若选用EXT4模式,后续SD卡的镜像需手动刻录,且应设置SD卡的根文件目录(Device node of SD device)为/dev/mmcblk0p2(该路径与FPGA板卡型号有关),具体教程需参考SD卡根文件系统配置说明。

  • 取消线上编译(Enable Network sstate feeds),选中离线编译(Enable BB NO NETWORK)。

  • 在Xilinx官网下载downloads_2020.1.tar.gz文件,根据版本要求自行选择下载,该文件是petalinux的镜像文件,放在自定义位置并解压,然后按照文件链接配置以下路径,要十分注意格式。

  • 在Xilinx官网下载sstate_aarch64_2020.1.tar.gz文件,同样解压到自定义位置,该文件是编译用的,上述两个文件都十分重要,而且数据很大,所以线上下载编译十分费时。解压后,在以下配置中填入解压路径。

  • 至此配置完成,全部保存并退出,等待配置完成。


7.修改设备树:将petalinux/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi 文件的内容修改为如下:

/include/ "system-conf.dtsi"
/ {};
/* SD */
&sdhci1 {disable-wp;no-1-8-v;
};
/* USB */
&dwc3_0 {status = "okay";dr_mode = "host";
}

8.编译:输入命令petalinux-build,等待编译完成。

9.生成boot文件:进入文件目录/images/linux打包文件,“–u-boot”参数为要打包合成的内容,会把 u-boot 依赖项全部合成,“–fpga”指带 bit 文件,“–force”为强制合成,覆盖以前合成的 BOOT.BIN,注意命令里是 2 个短横线。

cd ~/peta_prj/linxPsBase/petalinux/images/linux
petalinux-package --boot --u-boot --fpga --force


10.配置SD卡:在上一步骤目录下将会生成包含有三个文件分别为: boot.bin、boot.scr 和image.ub。如果SD卡应该原先带有出厂镜像,若无需要先回复出厂镜像或者按照上述中的SD卡根文件系统配置教程搭建根文件系统,必须保证SD卡中应有一个完整的文件系统,该系统会分为FAT和EXT两个分区,若是出厂镜像,在EXT分区中会有上述三个文件,只需将编译打包生成的三个文件复制粘贴覆盖原有的文件即可使用。
11.启动Linux:将SD 卡插入板卡,板卡设置为SD卡启动模式,打开串口终端并将板卡上电,在串口上会打印一系列开机信息,使用用户 root,密码 root 登录,进入系统,因为根文件系统为默认的 ram 类型,文件系统不能保存文件和配置。

整个例程到此结束!!!

使用 Petalinux 定制 Linux 系统相关推荐

  1. 问题解决 | 黑金AX7020使用Petalinux定制Linux系统遇到的坑

    黑金AX7020使用Petalinux定制Linux系统遇到的坑 坑1:使用putty通过串口查看系统信息显示乱码 坑2:Petalinux定制Linux系统未出现账号登陆界面 参考相关 软硬件平台: ...

  2. 使用petalinux定制linux系统

    使用petalinux定制linux系统 1.安装petalinux工具 1.1安装环境准备 1.2 正式安装petalinux工具 1.3可能会遇到的问题 2.petalinux设计流程 3.创建p ...

  3. 使用petalinux定制Linux系统(基于xsa文件)

    使用petalinux定制Linux内核(基于xsa文件) 一.Vivado工程 使用 Petalinux 可以非常方便地定制嵌入式Linux 系统,只需要 Vivado 软件把硬件信息导出.会产生一 ...

  4. 5、赛灵思-Zynq UltraScale+ MPSoC学习笔记:Petalinux 的设计流程及定制Linux系统

    5.赛灵思-Zynq UltraScale+ MPSoC学习笔记:Petalinux 的设计流程及定制Linux系统 声明:本文是学习赛灵思 Zynq UltraScale+ MPSoC 5EV过程中 ...

  5. 【ZYNQ】简单几步,教你使用 Petalinux 定制 Linux

    测试平台:黑金 Zynq7035 开发板 芯片型号:XC7Z035-2FFG676I 开发环境:Ubuntu 16.04 开发工具:Petalinux 2017.4 Step1 创建 Petalinu ...

  6. Petalinux制作linux系统(续)image.ub文件来龙去脉

    Petalinux制作linux系统可以启动,但并不仅限于此. 比如如下疑问: 1.image.ub哪里来?这个文件名称必须是这个吗? 2.自己采用原始方法移植u-boot,kernel后怎么做? 对 ...

  7. linux 生成ub格式镜像,Petalinux制作linux系统(续)image.ub文件来龙去脉

    Petalinux制作linux系统可以启动,但并不仅限于此. 比如如下疑问: 1.image.ub哪里来?这个文件名称必须是这个吗? 2.自己采用原始方法移植u-boot,kernel后怎么做? 对 ...

  8. 手工定制Linux系统

    引子 陆续研究LFS(Linux from Scratch) 有一段时了,发现一些问题,比如无论是官网教程,还是一些第三方的分析文章,都有一个共同点,描述过于的形而下,也就是太过于注重细节.过于实际和 ...

  9. g++ linux 编译开栈_使用 linux kernel +busybox 定制linux系统

    写在开头: 本来是想使用linux kernel +busybox 制作一个教程的,后来快要结束的时候,死活找不到硬盘,我了解很多文章都有类似的,但是没有谈到硬盘找不到问题,最后历经艰辛,终于把问题解 ...

最新文章

  1. 第十五届全国大学生智能车全国总决赛获奖信息-华北赛区
  2. C++ 中的类型限定符 类型限定符提供了变量的额外信息。
  3. RabbitMQ headers Exchange
  4. VS.Net 2005 Beta2连接Team Foundation Server的问题
  5. 吴恩达 coursera AI 第二课总结+作业答案
  6. 一文了解JDK12 13 14 GC调优秘籍-附PDF下载
  7. vbs的任务提醒程序
  8. Cache替换算法:LRU与LFU的区别
  9. 谷歌浏览器添加插件时显示程序包无效:CRX_HEADER_INVALID 解决办法
  10. 工厂模式理解_工厂模式
  11. python时间差怎么转换为数字_pandas进行时间数据的转换和计算时间差并提取年月日...
  12. Linux 进程概念
  13. 音乐搜索器 多站合一_分享一堆可以免费听音乐的良心网站!赶紧码住哦
  14. beautifulsoup解析动态页面div未展开_Python爬虫 | 0xb 数据解析:PyQuery库
  15. SAX EntityResolver 的作用
  16. Java中的GC(垃圾回收)log
  17. matplotlib 可视化 —— 定制画布风格 Customizing plots with style sheets(plt.style)
  18. 信号与系统 实验三 傅里叶变换、系统的频域分析
  19. 为什么手机上传图片这么慢 前端_为什么手机上传速度那么慢?
  20. DSP 基础学习 1:搭建环境与CCS6创建工程模板

热门文章

  1. 如何解决caffe和video-caffe不能使用cudnn8编译的问题
  2. 1994年,电影的颠峰,永远无法被超越[转载]
  3. Maven精选系列(一):Maven私库搭建及使用
  4. 表单开发工具都有哪些吸引人的特点?
  5. 苹果开发或者上架证书钥匙串显示不信任问题解决方案
  6. Mina网络通信框架开发 之 导入mina jar包(IDEA)
  7. 关于CentOS下Linux的bash 漏洞,查看和解决的方法
  8. 增强学习(一)——马尔科夫决策过程(MDP)
  9. ConvFormer: Closing the Gap Between CNN and Vision Transformers
  10. 接口和和抽象的区别总结