ZYNQ:Petalinunx构建工程

news2024/10/11 11:03:05

资料准备

1、xsa 文件:top_020.xsa(使用vivado 2024.1制作)
在这里插入图片描述

2、设置 Petalinux (2024.1)环境变量:sptl
在这里插入图片描述

创建 petalinux 工程

构建工程

petalinux-create -t project --template zynq -n project

在这里插入图片描述

配置 petalinux 工程

cd project
petalinux-config --get-hw-description ../

问题:

INFO] Getting hardware description
[INFO] Renaming top_020.xsa to system.xsa
[INFO] Extracting yocto SDK to components/yocto. This may take time!
[INFO] Getting Platform info from HW file
[INFO] Generating Kconfig for project
[ERROR]

package require xsdb FAILED: error loading hsi package: couldn’t load
file “libxv_commontasks.so”: libtinfo.so.5: cannot open shared object
file: No such file or directory
while executing “error “error loading hsi package: $msg””
(file “/opt/pkg/petalinux/2024.1/components/xsct/scripts/xsct/xsdb/xsdb.tcl”
line 11)
invoked from within “source /opt/pkg/petalinux/2024.1/components/xsct/scripts/xsct/xsdb/xsdb.tcl”
(“package ifneeded xsdb 0.1” script)

[ERROR] Command gen-machineconf --soc-family zynq --hw-description
/home/aa/workspace/pro/pro_pe_hw/project/project-spec/hw-description/system.xsa
–xsct-tool /opt/pkg/petalinux/2024.1/components/xsct --output /home/aa/workspace/pro/pro_pe_hw/project/project-spec/configs
–add-rootfsconfig /home/aa/workspace/pro/pro_pe_hw/project/project-
spec/meta-user/conf/user-rootfsc

onfig --petalinux --menuconfig project failed

解决

sudo apt-get install libtinfo5

弹出 petalinux 工程配置窗口
在这里插入图片描述
重新生成 xsa 文件后,可以重新执行“petalinux-config --get-hw-description < xsa 文件所在的位置>”以重新配置 Petalinux 工程。
只需输入“petalinux-config”命令即可重新配置
在这里插入图片描述

配置 Linux 内核

petalinux-config -c kernel

在这里插入图片描述
需要等待一段时间
在这里插入图片描述
保存配置并退出

在这里插入图片描述

配置 Linux 根文件系统

petalinux-config -c rootfs

在这里插入图片描述

保存配置并退出
在这里插入图片描述

配置设备树文件

vi project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi

内容编辑完成之后保存退出即可。

在这里插入图片描述
在这里插入图片描述

/include/ "system-conf.dtsi"
/ {
    dma_proxy {
        compatible ="xlnx,dma_proxy";
        dmas = <&axi_dma_0 0  &axi_dma_0 1>;
        dma-names = "dma_proxy_tx", "dma_proxy_rx";  
    } ;
};

内容编辑完成之后保存退出即可。

编译 Petalinux 工程

在这里插入图片描述

petalinux-build

WARNING: XSCT has been deprecated. It will still be available for several releases. In the future, it’s recommended to start new projects with SDT workflow.

XSCT已弃用:这条警告告诉你,XSCT工具已经被标记为弃用(deprecated),意味着它虽然在当前和未来的几个版本中仍然可用,但不再被推荐用于新项目的开发。
推荐使用SDT工作流:警告还建议你,在未来开始新项目时,应该使用SDT(Software Development Tool)工作流。SDT工作流可能是一个更新或替代XSCT的更为现代和集成的开发方法。

WARNING: Logfile for failed setscene task is /home/aa/workspace/pro/pro_pe_hw/project/build/tmp/work/cortexa9t2hf-neon-xilinx-linux-gnueabi/bzip2/1.0.8-r0/temp/log.do_populate_lic_setscene.21605
WARNING: Setscene task (/home/aa/workspace/pro/pro_pe_hw/project/components/yocto/layers/poky/meta/recipes-extended/bzip2/bzip2_1.0.8.bb:do_populate_lic_setscene) failed with exit code ‘1’ - real task will be run instead

WARNING: Logfile for failed setscene task is /home/aa/workspace/pro/pro_pe_hw/project/build/tmp/work/cortexa9t2hf-neon-xilinx-linux-gnueabi/libx11/1_1.8.1-r0/temp/log.do_package_write_rpm_setscene.24362
WARNING: Setscene task (/home/aa/workspace/pro/pro_pe_hw/project/components/yocto/layers/poky/meta/recipes-graphics/xorg-lib/libx11_1.8.1.bb:do_package_write_rpm_setscene) failed with exit code ‘1’ - real task will be run instead

WARNING: Logfile for failed setscene task is /home/aa/workspace/pro/pro_pe_hw/project/build/tmp/work/cortexa9t2hf-neon-xilinx-linux-gnueabi/libx11/1_1.8.1-r0/temp/log.do_package_write_rpm_setscene.24362
WARNING: Setscene task (/home/aa/workspace/pro/pro_pe_hw/project/components/yocto/layers/poky/meta/recipes-graphics/xorg-lib/libx11_1.8.1.bb:do_package_write_rpm_setscene) failed with exit code ‘1’ - real task will be run instead
WARNING: xilinx-bootbin-1.0-r0 do_configure: Empty file /home/aa/workspace/pro/pro_pe_hw/project/build/tmp/work/zynq_generic_7z020-xilinx-linux-gnueabi/xilinx-bootbin/1.0-r0/recipe-sysroot/boot/bitstream/download-zynq-generic-7z020.bit, excluding from bif file
NOTE: Tasks Summary: Attempted 4435 tasks of which 3774 didn’t need to be rerun and all succeeded.

在这里插入图片描述
补充安装上面的编译包后,得到上面的结果

Failed to copy built images to tftp dir: /tftpboot

解决

去掉tftpboot的设置: petalinux-config ->  Image Packaging Configuration -> Copy final images to tftpboot

在这里插入图片描述

再次重新编译

petalinux-build

还是存在的警告

WARNING: XSCT has been deprecated. It will still be available for several releases. In the future, it’s recommended to start new projects with SDT workflow.

WARNING: xilinx-bootbin-1.0-r0 do_configure: Empty file /home/aa/workspace/pro/pro_pe_hw/project/build/tmp/work/zynq_generic_7z020-xilinx-linux-gnueabi/xilinx-bootbin/1.0-r0/recipe-sysroot/boot/bitstream/download-zynq-generic-7z020.bit, excluding from

在这里插入图片描述

在这里插入图片描述

该命令将生成设备树 DTB 文件、fsbl 文件、U-Boot 文件、boot.scr 文件、Linux 内核和根文件系统文件。
编译完成后,生成的镜像文件将位于工程的 images 目录下

https://docs.amd.com/r/en-US/ug1144-petalinux-tools-reference-guide/Configuring-and-Building

制作 BOOT.BIN 启动文件

petalinux-package boot --fsbl --fpga ./bitstream/top.bit --u-boot --force

[INFO] File in BOOT BIN: "/home/aa/workspace/pro/pe_hw/images/linux/zynq_fsbl.elf"
[INFO] File in BOOT BIN: "/home/aa/workspace/pro/pe_hw/bitstream/top.bit"
[INFO] File in BOOT BIN: "/home/aa/workspace/pro/pe_hw/images/linux/u-boot.elf"
[INFO] File in BOOT BIN: "/home/aa/workspace/pro/pe_hw/images/linux/system.dtb"
[INFO] Generating zynq binary package BOOT.BIN...
[INFO] 

****** Bootgen v2024.1
  **** Build date : Apr 29 2024-12:18:25
    ** Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
    ** Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.


[INFO]   : Bootimage generated successfully


[INFO] Binary is ready.
[INFO] Successfully Generated BIN File

petalinux-package boot --fsbl --fpga --u-boot --force
petalinux-package --boot --fsbl ./ images/linux/zynq_fsbl.elf ./images/linux/u-boot.elf --fpga ./images/linux/system.bit  --u-boot --force

参数–boot表明我们要通过petalinux-package命令生成BOOT.BIN启动镜像文件
参数–fsbl用于指定 fsbl 镜像文件的位置zynqmp_fsb
l.elf
参数–fpga用于指定 bitstream文件的位置system.bit
参数–u-boot用于指定 U-BOOT文件的位置u-boot.elf
参数–force表示强制覆盖当前目录下的BOOT.BIN文件

选项“–fsbl”用于指定 fsbl 文件所在位置,后面接文件对应的路径信息,如果不指定文件位置,默认
对应的是 images/linux/zynq_fsbl.elf;

选项“–fpga”用于指定 bitstream文件所在位置,后面接该文件对应的
路径信息,默认对应的是 images/linux/system.bit,实际可能有区别;
选项“–u-boot”用于指定 U-Boot文件
所在位置,后面接该文件所在路径信息,默认为 images/linux/u-boot.elf。

问题

[NOTE] Argument: “–boot” has been deprecated. It is recommended to start using new python command line Argument.
[NOTE] Use: petalinux-package boot [OPTIONS]
[INFO] Getting Default bit file
[ERROR] Default bitsream() is not found,please specify a bitstream file path with --fpga

在这里插入图片描述

到这里得到制作SDK 需要的四个文件
在这里插入图片描述
但是不能确保所有的文件正确

制作 SD 启动卡

将该工程 image/linux 目录下的 BOOT.BIN、boot.scr 和 image.ub 文件拷贝到名为 boot 的分区也即/dev/sdb1 分区
将rootfs.ext4放到

sudo umount /dev/sdX2
sudo dd if=images/linux/rootfs.ext4 of=/dev/sdX2
sync

以下命令还将拉伸文件系统,以便您可以使用 SD 卡的额外空间。请务必像上面一样替换块设备节点:

sudo resize2fs /dev/sdX2
sync

开发板启动模式设置

1、插入SDK
2、启动模式设置为SDK
3、连接串口
4、上电查看
5、使用 root 用户登录,登录密码为“root”

错误

INFO: Sourcing build tools
[INFO] Silentconfig project
[INFO] Sourcing build environment
[INFO] Generating kconfig for Rootfs
[INFO] Silentconfig rootfs
[INFO] Generating plnxtool conf
ERROR: Failed to generate plnxtool.conf
ERROR: Failed to config kernel.

build/config.log

Add Extra Users (ADD_EXTRA_USERS) [] 
#
# configuration written to /home/aa/workspace/pro/pataliunx_pro/ALIENTEK-ZYNQ/project-spec/configs/rootfs_config
#
[INFO] Generating plnxtool conf
Traceback (most recent call last):
  File "rootfs_config.py", line 351, in <module>
    parse_args(sys.argv[1:])
  File "rootfs_config.py", line 333, in parse_args
    update_cfg(cfg_file,xilinx_arch,proot)
  File "rootfs_config.py", line 117, in update_cfg
    write_list(cfg_file,packages['image_packages'])
KeyError: 'image_packages'
ERROR: Failed to generate plnxtool.conf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2195061.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux--IO模型与高级IO重要概念

什么是IO&#xff1f; IO是指计算机系统与外部世界进行数据交换的过程。在计算机中&#xff0c;IO通常用于与外部设备通信&#xff0c;这些设备包括键盘、鼠标、打印机、显示器、网络等。通过IO操作&#xff0c;计算机系统可以接收来自外部设备的输入数据&#xff0c;也可以将…

黑马JavaWeb开发跟学(九)MyBatis基础操作

黑马JavaWeb开发跟学九.MyBatis基础操作 1. Mybatis基础操作1.1 需求1.2 准备1.3 删除1.3.1 功能实现1.3.2 日志输入1.3.3 预编译SQL1.3.3.1 介绍1.3.3.2 SQL注入1.3.3.3 参数占位符 1.4 新增1.4.1 基本新增1.4.2 主键返回 1.5 更新1.6 查询1.6.1 根据ID查询1.6.2 数据封装1.6.…

LeetCode刷题日记之二叉树(六)

目录 前言二叉搜索树中的众数二叉树的最近公共祖先二叉搜索树的最近公共祖先总结 前言 又是学习LeetCode二叉树的新一天&#xff0c;今天还是接着学习一下二叉搜索树的内容&#xff0c;希望博主记录的内容能够对大家有所帮助 &#xff0c;一起加油吧朋友们&#xff01;&#x…

【ubuntu】ubuntu20.04安装conda

1.下载 安装参考&#xff1a;https://blog.csdn.net/weixin_44119391/article/details/128577681 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 2.安装 sudo chmod 777 -R ./Anaconda3-5.3.1-Linux-x86_64.sh ./Anaconda3-5.3.1-Linux-x86_64.sh Enter键确认安装…

图的基本概念 - 离散数学系列(五)

目录 1. 图的定义 节点与边 2. 度与路径 节点的度 路径与圈 3. 图的连通性 连通图与非连通图 强连通与弱连通 连通分量 4. 实际应用场景 1. 社交网络 2. 城市交通系统 3. 网络结构 5. 例题与练习 例题1&#xff1a;节点的度 例题2&#xff1a;判断连通性 练习题…

计算机视觉中的3D变换:让虚拟与现实无缝对接

嘿&#xff0c;小伙伴们&#xff01;今天咱们聊聊计算机视觉中的3D变换&#xff0c;这是连接虚拟世界与现实世界的桥梁&#xff01;无论你是想为游戏开发增添真实感&#xff0c;还是希望在增强现实中实现精准定位&#xff0c;这篇教程都会让你受益匪浅。准备好了吗&#xff1f;…

python数据分析与可视化工具介绍-matplotlib库

众所周知&#xff0c;python的数据分析库主要是numpy&#xff0c;pandas&#xff0c;和matplotlib&#xff0c;而前面两个主要是数据处理工具库&#xff0c;最后一个才是真正的作图展示工具库。本节来学习一下matploatlib工具库的使用。 Matplotlib常用绘图函数 pyplot简介 m…

Kubernetes: kube-proxy 和 CNI 是如何协作的?

在 Kubernetes 中&#xff0c;kube-proxy 和 CNI 插件协同工作&#xff0c;确保集群内 Pod 之间的互联互通。 Kube-proxy & CNI 如上图所示&#xff0c;假设我们有一个类型为 ClusterIP 的 Service&#xff0c;它对应两个位于不同节点的 Pod。 当我们从 Pod A 对该 Servi…

C语言的柔性数组

目录 柔性数组1.柔性数组的特点&#xff1a;2.柔性数组的使用3.柔性数组的优势 柔性数组 也许你从来没有听说过柔性数组&#xff08;flexible array&#xff09;这个概念&#xff0c;但是它确实是存在的。 C99 中&#xff0c;结构体中的最后⼀个元素允许是未知⼤⼩的数组&…

MFC工控项目实例二十三模拟量输入设置界面

承接专栏《MFC工控项目实例二十二主界面计数背景颜色改变》 1、在SenSet.h文件中添加代码 #include "BtnST.h" #include "ShadeButtonST.h"/ // SenSet dialogclass SenSet : public CDialog { // Construction public:SenSet(CWnd* pParent NULL); //…

aws(学习笔记第三课) AWS CloudFormation

aws(学习笔记第三课) 使用AWS CloudFormation 学习内容&#xff1a; AWS CloudFormation的模板解析使用AWS CloudFormation启动ec2 server 1. AWS CloudFormation 的模版解析 CloudFormation模板结构 CloudFormation是AWS的配置管理工具&#xff0c;属于Infrastructure as Co…

黑马javaWeb笔记重点备份2:mybatis基础(注解方式)、数据库连接池概念、lombok使用

以下均来自&#xff1a;【黑马程序员JavaWeb开发教程&#xff0c;实现javaweb企业开发全流程&#xff08;涵盖SpringMyBatisSpringMVCSpringBoot等&#xff09;】 https://www.bilibili.com/video/BV1m84y1w7Tb/?p75&share_sourcecopy_web&vd_source9332b8fc5ea8d349a…

AI 激活新势能,中小企业全媒体营销绽放无限可能

什么是全媒体营销&#xff1a; 全媒体营销是一种利用多种媒介渠道进行品牌、产品或服务推广的营销策略。它结合了传统媒体&#xff08;如电视、广播、报纸、杂志&#xff09;和新媒体&#xff08;如互联网、社交媒体、移动应用等&#xff09;的优势&#xff0c;以实现信息的广…

vivado 使用 UltraFast 设计方法系统级设计流程图

下图展示了 Vivado Design Suite 中包含的各种设计步骤以及特性。您可以通过赛灵思 Documentation Navigator“Design Hub View” 访问该图的互动版&#xff0c;单击每个步骤将链接至相关资源。 理解 UltraFast 设计方法概念 在设计开始初期就采取正确方法非常重要&#xf…

数据结构与算法笔记:概念与leetcode练习题

1、数组Array 时间复杂度 数组访问&#xff1a;O(1) 数组搜索&#xff1a;O(N) 数组插入&#xff1a;O(N) 数组删除&#xff1a;O(N) 特点 适合读&#xff0c;不适合写 数组常用操作 # 1、创建数组 a [] # 2、尾部添加元素 a.append(1) a.append(2) a.append(3) # 3、…

《Linux从小白到高手》理论篇:Linux的系统环境管理

List item 值此国庆佳节&#xff0c;深宅家中&#xff0c;闲来无事&#xff0c;就多写几篇博文。本篇详细深入介绍Linux的系统环境管理。 环境变量 linux系统下&#xff0c;如果你下载并安装了应用程序&#xff0c;很有可能在键入它的名称时出现“command not found”的提示…

大语言模型(LLM)综述

大语言模型&#xff08;LLM&#xff09;综述 正如缩放定律&#xff08;Scaling Laws &#xff09;所预测的那样, LLM 的通用语言理解和生成能力是通过在大量文本数据上训练数十亿个模型参数获得的。基于 Transformer 的大型语言模型 (LLM) 的最新进展&#xff08;在 Web 规模的…

系统架构设计师⑧:软件工程-软件开发方法与模型

系统架构设计师⑧&#xff1a;软件工程-软件开发方法与模型 软件开发方法 常用的软件开发方法主要分为3类&#xff1a; 结构化法&#xff08;比如C语言开发-面向过程&#xff09;&#xff0c; 面向对象法&#xff08;比如C或者JAVA开发-面向对象&#xff09;&#xff0c; 面向…

永洪科技第八届全国用户大会,释放数据价值!

永洪科技&#xff0c;作为“致力于打造全球领先的数据技术厂商”&#xff0c;将于【2024年11月1日】&#xff0c;在【北京东方君悦大酒店】盛大召开“第八届永洪科技全国用户大会”。旨在通过AIBI的深入融合&#xff0c;更加智能且精准的展现及预测未来的数据走向&#xff0c;展…

10.7学习

1.安全认证 ●Session 认证中最常用的一种方式&#xff0c;也是最简单的。存在多节点session丢失的情况&#xff0c;可通过nginx粘性Cookie和Redis集中式Session存储解决 ●HTTP Basic Authentication 服务端针对请求头中base64加密的Authorization 和用户名和密码进行校验。…