Petalinux的使用——定制Linux系统

文章目录

  • 配置petalinux运行环境
  • petalinux设计流程

配置petalinux运行环境

Petalinux的安装在文章Ubuntu镜像源的更改及其Petalinux的安装中已经介绍,下面介绍petalinux运行环境的配置过程。
进入到petalinux的安装路径下,使用下面的命令对petalinux的运行环境进行配置。

source settings.sh

需要注意的是,这条命令只对当前终端有效,重新开一个终端后需要再执行该命令才可以,执行结果如下图所示。
在这里插入图片描述
如果每次打开终端都要使用petalinux,可以把source petalinux的绝对路径添加到家目录下的.bashrc脚本文件中,.bashrc脚本文件是每次打开终端自动执行的。比如,按照我的安装路径在.bashrc文件中添加下面的代码。

source /opt/pkg/petalinux/settings.sh

添加成功以后保存退出。
在这里插入图片描述
重新打开一个终端窗口,对petalinux的运行环境进行配置的语句一开始就执行了,不过每次启动终端都会花时间执行。
在这里插入图片描述


petalinux设计流程

petalinux设计流程大致为:搭建Vivado工程,导出硬件描述文件(.hdf文件);创建petalinux工程;将.hdf文件导入到petalinux工程;配置petalinux工程(包括内核、u-boot和根文件系统的配置);编译petalinux工程(得到u-boot镜像、内核镜像、rootfs、bitstream、fsbl镜像文件);启动开发板进行验证。
进入到petalinux的安装路径下,在命令行输入petalinux-,按下两次Tab键,就显示了下面6个petalinux命令。
在这里插入图片描述
可以通过–help的命令查看该命令的帮助信息,如下图所示。
在这里插入图片描述
下面提供了创建zynq工程的命令样例。
在这里插入图片描述

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

根据样例输入命令创建工程,如果不使用-p指定工程路径,工程默认创建在当前路径下,如下如所示。
在这里插入图片描述
准备好.hdf文件,该文件需要在Vivado软件中先生成比特流文件,然后导出到硬件,导出的时候需要勾选包括比特流选项。在这里插入图片描述
先进入到刚创建的工程文件夹下,然后使用下面的命令将.hdf文件导入到petalinux工程中。

petalinux-config --get-hw-description .hdf文件所在文件夹的绝对路径
petalinux-config --get-hw-description /home/ubuntu16/zynq/hdf #例子

其运行一会之后就打开了下面配置的图形化界面。
在这里插入图片描述
这里暂时使用默认配置,退出当前窗口,等待其配置完成,完成后打印的信息如下图所示。
在这里插入图片描述
如果关闭该窗口后还想打开该窗口进行补充设置,使用petalinux-config命令即可。
使用下面的命令就可以依次配置u-boot、kernel和rootfs,这里都暂时保持默认设置,不进行配置。

petalinux-config -c u-boot
petalinux-config -c kernel
petalinux-config -c rootfs

u-boot配置成功如下图所示。
在这里插入图片描述
内核配置成功如下图所示。
在这里插入图片描述
根文件系统配置成功。
在这里插入图片描述
以上配置完成后就可以进行编译了,编译的时候可以选择编译整个petalinux工程,也可以单独编译u-boot、kernel、rootfs。编译整个petalinux工程包括u-boot、kernel、rootfs、fsbl、bitstream、设备树等,编译使用的命令如下。

petalinux-build #编译整个petalinux工程
petalinux-build -c u-boot
petalinux-build -c kernel
petalinux-build -c rootfs

可以在虚拟机设置这里根据自己电脑的配置将处理器的数量调大,这样在编译的时候速度会快一些。
在这里插入图片描述
编译成功后打印的信息如下。
在这里插入图片描述
依次打开该工程下的/images/linux文件夹,里面就存放了刚才编译工程所生成的镜像文件,如下图所示。
在这里插入图片描述
在启动开发板之前要制作一个启动镜像文件BOOT.BIN,该文件是fsbl镜像文件、FPGA镜像文件和用户程序镜像文件整合而成的,其使用的命令如下。

petalinux-package --boot --fsbl fsbl_path --fpga fpga_path --u-boot uboot_path --force

其中,–boot表示要生成BOOT.BIN文件,–fsbl用于指定fsbl文件(上图中的zynq_fsbl.elf文件)的路径,–fpga用于指定fpga文件(上图中的system.bit文件)的路径,–u-boot用于指定u-boot文件(上图中的u-boot.elf文件)的路径。
如果进到上面所在的文件夹/images/linux下,使用下面的程序就可以打包。

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

命令执行成功后就在当前目录下生成了BOOT.BIN镜像文件。
在这里插入图片描述
不同于SDK实验中只拷贝BOOT.BIN文件就可以启动开发板,如下图所示,终端打印信息提示无法读取image.ub文件。
在这里插入图片描述
image.ub文件是kernel、设备树和rootfs整合而成的文件,该文件在编译之后也生成了,开发板启动也需要image.ub文件,将两个文件拷贝到SD卡,然后再启动开发板。
在这里插入图片描述
有了这两个文件,开发板就成功启动了,启动成功后的用户名和密码都是root。
在这里插入图片描述
需要说明的是,有些Vivado工程定制的镜像文件无法启动开发板,我使用helloworld的SDK工程创建的就无法启动,后面改用呼吸灯breath_led的工程定制的就可以启动,但是自己定制的这个Linux系统网络接口有点问题,和Ubuntu互相ping不通,所以直接使用了厂家提供的镜像文件。
在这里插入图片描述


下面是使用厂家提供的Vivado工程定制Linux系统的过程,该工程中的框图如下。
在这里插入图片描述
使用该工程SDK文件夹下的.hdf文件,将其先拷贝到Ubuntu中。
在这里插入图片描述
先设置petalinux环境变量,在该目录下创建工程。

source settings.sh
petalinux-create -t project -n zynq7020 --template zynq

创建成功后进到创建的工程目录下。
在这里插入图片描述
执行下面的命令从存放hdf的文件夹中获取文件进行相关配置。

petalinux-config --get-hw-description /home/ubuntu16/zynq/hdf

执行过程中弹出的图形配置窗口保持默认设置即可,执行过程如下图所示。
在这里插入图片描述
依次执行下面三条命令分别对u-boot、kernel和rootfs进行配置,配置过程中弹出的图形窗口仍然使用默认配置。

petalinux-config -c u-boot
petalinux-config -c kernel
petalinux-config -c rootfs

u-boot配置成功后接着配置kernel。
在这里插入图片描述
kernel配置成功之后再配置rootfs。
在这里插入图片描述rootfs配置成功后的结果如下图所示。
在这里插入图片描述
以上配置完成后执行下面的命令进行编译。

petalinux-build

编译成功之后打印的信息如下。
在这里插入图片描述
然后进到/images/linux目录下,执行下面的命令将三个文件合成一个BOOT.BIN文件。

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

然后就在该目录下生成了BOOT.BIN文件,如下图所示。
在这里插入图片描述
将BOOT.BIN文件和image.ub文件拷贝到SD卡中,成功启动了开发板,如下图所示。
在这里插入图片描述
开发板中的网口直接连接路由器,启动会快一些,但是如果和电脑相连,也能够启动成功,这样启动后也方便我们自己设置IP地址。
在这里插入图片描述
设置eth0的IP,使其和Ubuntu中的IP在同一网段内,这样就能够互相ping通了。
在这里插入图片描述
网络通了之后就可以通过nfs挂载或者使用网络传输文件到开发板进行测试了。
在这里插入图片描述
这里的elf文件在SDK中新建工程的时候,需要将操作系统的平台选择为linux,如下图所示。
在这里插入图片描述
否则在执行文件的时候会显示这是非法指令。
在这里插入图片描述


参考文章:
ZYNQ学习之路13.创建PetaLinux工程

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么把多个视频合成一个视频?6个软件教你轻松合成视频

怎么把多个视频合成一个视频?6个软件教你轻松合成视频 合成多个视频成为一个视频可以通过专业的视频编辑软件或在线工具来实现。以下是六个方便使用的软件,它们可以帮助你轻松合成视频: 迅捷视频剪辑软件:这是专业的视频编辑软…

【数据结构】详解栈

今天我们主要来了解栈!如果对知识点有模糊,可翻阅以往文章哦! 个人主页:小八哥向前冲~-CSDN博客 所属专栏:数据结构【c语言版】_小八哥向前冲~的博客-CSDN博客 c语言专栏:c语言_小八哥向前冲~的博客-CSDN博…

python实现txt文件内容对比功能

欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一.前言 二.代码 三.演示 四.代码分析 一.前言 内容对比是一种常见的信息分析和研究方法,主要涉及对不同来源、类型或版本的内容进行比

深度解析:数据结构二叉树(1)

✅作者简介:大家好,我是再无B~U~G,一个想要与大家共同进步的男人😉😉 🍎个人主页: 再无B~U~G-CSDN博客 目标 1. 掌握树的基本概念 2. 掌握二叉…

[NSSRound#1 Basic]basic_check

[NSSRound#1 Basic]basic_check 开题什么都没有,常规信息搜集也无效 发现题目允许PUT的两种做法: 1、 CURL的OPTIONS请求方法查看允许的请求方式 curl -v -X OPTIONS http://node4.anna.nssctf.cn:28545/index.php2、 kali自带的nikto工具扫描网址 Nik…

盘点十款企业电脑监控软件的功能及优势

企业电脑监控软件是专为企业环境设计的工具,用于监视员工的电脑使用情况,以确保安全性、生产力和合规性。以下是一些常见的企业电脑监控软件,以及它们的功能和优势: 1、Ping32: 功能:网站访问监控、即时通…

1-3ARM_GD32点亮LED灯

简介: 最多可支持 112 个通用 I/O 引脚(GPIO),分别为 PA0 ~ PA15,PB0 ~ PB15,PC0 ~ PC15,PD0 ~ PD15,PE0 ~ PE15,PF0 ~ PF15 和 PG0 ~ PG15,各片上设备用其来实现逻辑输入/输出功能。…

在类设计器中使用 C++ 代码其中模板类、结构、Enum、宏、Typedef

类设计器支持以下 C 代码元素 &#xff1a; 模板类 结构 Enum 宏&#xff08;显示宏的处理后视图&#xff09; Typedef 模板类 类设计器支持直观显示模板类 。 支持嵌套声明。 下表列出了一些典型声明。 展开表 Code 元素类设计器视图template <class T>class A {};…

vue+element的表格(el-table)排班情况表(2024-05-09)

vueelement的表格&#xff08;el-table&#xff09;排班情况&#xff0c;增删查改等简单功能 代码&#xff1a; <template><!-- 表格 --><div class"sedules"><el-header><el-date-pickerv-model"monthValue2"type"month…

亚马逊是如何铺设多个IP账号实现销量大卖的?

一、针对亚马逊平台机制&#xff0c;如何转变思路&#xff1f; 众所周知&#xff0c;一个亚马逊卖家只能够开一个账号&#xff0c;一家店铺&#xff0c;这是亚马逊平台明确规定的。平台如此严格限定&#xff0c;为的就是保护卖家&#xff0c;防止卖家重复铺货销售相同的产品&a…

即将开幕,邀您共赴创新之旅“2024上海国际消费者科技及创新展览会”

备受期待的2024上海国际消费者科技及创新展览会&#xff08;以下简称“CTIS”&#xff09;即将于6月13日至15日亮相上海新国际博览中心N1-N3馆。 2024上海国际消费者科技及创新展览会总面积达40,000平方米&#xff0c;涵盖600余家展商&#xff0c;预计吸引40,000多位观众莅临现…

漫威争锋Marvel Rivals怎么搜索 锁区怎么搜 游戏搜不到怎么办

即将问世的《漫威争锋》&#xff08;Marvel Rivals&#xff09;作为一款万众期待的PvP射击游戏新星&#xff0c;荣耀携手漫威官方网站共同推出。定档5月11日清晨9时&#xff0c;封闭Alpha测试阶段将正式揭开序幕&#xff0c;持续时间长达十天之久。在此首轮测试窗口&#xff0c…