Xilinx Petalinux2019.1开发—开发流程(二)

目录

1、Petalinux整体编译流程

2、创建工程

3、构建 

3.1配置工程

3.1.1 直接保存退出-新手 

3.1.2 配置-玩家

3.2配置 uboot 和 Linux 内核的来源

3.2.1直接保存退出-新手

3.2.2配置-玩家

3.3配置根文件系统

3.3.1配置-玩家

3.4​​​​​​​配置设备树文件

3.5​​​​​配置app(新手可忽略)

​​​​​​​3.6编译工程

 3.7制作BOOT.BIN镜像


1、Petalinux整体编译流程

        使用 Vivado 搭建好硬件平台后,通过几个命令就完成了 Linux 系统的
定制,极其方便。搭建流程请参考上一个博客:开发环境搭建https://blog.csdn.net/R347187595/article/details/125851593

        需要说明的是以下设计流程不是按部就班的每一步都执行一遍,可以根据使用场景有选择的执行。一般的设计流程如下:

  1. 通过 Vivado 创建硬件平台,得到 hdf 硬件描述文件;
  2. 运行 source <petalinux 安装路径>/settings.sh,设置 Petalinux 运行环境
  3. 通过 petalinux-create -t project 创建 petalinux 工程;
  4. 使用 petalinux-config --get-hw-description,将 hdf 文件导入到 petalinux 工程当中并配置 petalinux 工程;
  5. 使用 petalinux-config -c kernel 配置 Linux 内核;
  6. 使用 petalinux-config -c rootfs 配置 Linux 根文件系统;
  7. 配置设备树文件;
  8. 使用 petalinux-build 编译整个工程;
  9. 使用 petalinux-package --boot 制作 BOOT.BIN 启动文件;
  10. 制作 SD 启动卡,将 BOOT.BIN 和 image.ub 以及根文件系统部署到 SD 卡中;
  11. 将 SD 卡插入开发板,并将开发板启动模式设置为从 SD 卡启动;

开发板连接串口线并上电启动,串口上位机打印启动信息,登录进入 Linux 系统。

2、创建工程

在任意文件夹下,在命令控制台上运行 petalinux-create 命令:

petalinux-create --type project --template <PLATFORM> --name <PROJECT_NAME>

列:

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

工程名-决定后期-系统起来以后的设备名字。写成Embed 。如下箭头所指示的地方:

3、构建 

将自己板子对应的xxxx.sdk文件夹-拷贝到Embed目录下(在vivado的sdk下生成)。这里不做描述。请参考之前的文章:

$cd Embed/

3.1配置工程

进入menuconfig配置固件编译(不用改)

$petalinux-config --get-hw-description   /路径/   

命令:

Hdf 文件导入成功之后会自动弹出 petalinux 工程配置窗口: 

3.1.1 直接保存退出-新手 

保存退出。

3.1.2 配置-玩家

先按键盘上的下方向键移动到“Linux Components Selection”,然后按键盘上的“Enter”进入子菜单,子菜单内容如下图所示:

        括号里的“*”表示为已使能配置。前两个选项表示会自动生成程序固化实验中的 fsbl.elf 文件和自动更新 ps_init。下面两个选项用 来配置 u-boot linux-kernel 的来源,保持默认来源配置git

        “Auto Config Settings”菜单主要就是选择是否使能 fsblDevice treeKernel u-boot 的自动配置,默认为自动配置,无需更改,就不看了。 

        “Subsystem AUTO Hardware Settings”子菜单的内容如下图所示:

          进入到该界面的各个外设子菜单中,可以发现都已经有了默认配置,这些默认配置是根据 hdf 文件的信息自动配置的,基本上无需我们手动修改;“Serial Settings”配置项用于 配置开发板的调试串口和串口波特率等参数。

       “Advanced bootable images storage Settings”菜单中可配置启动引导镜像和内核镜像的存储媒介,默认为 sd 卡,这里保持默认即可。为 了调试这里保持默认从 sd 卡启动,如果需要制作一个从 QSPI flash 启动的嵌入式 Linux, 可以在这里配置

        返回到主界面(按四次“ESC”按键),设备树设置菜单“DTG Settings” u-boot 置菜单“u-boot Configuration”一般保持默认即可。我们进入“Image Packaging Configuration”子菜单,如下图所示:

         第一个选项便是根文件系统的类型的配置,默认为 INITRAMFS,也可以选择 SD card,这里我们保持默认。另外从该界面我们可以看到,有“Copy final images to tftpboot”选项,当在Ubuntu 的根文件下创建一个名为 tftpboot 的文件夹时,工程生成镜像后会自动将 相关文件复制到/tftpboot 目录中。

        可以通过这里把各个网口的IP地址,MAC地址,子网掩码写死,这样在开机后就会一直是这个IP,这里暂不修改。

这里可以选择还是SD卡启动,还是EMMC启动,这里暂不修改

         选择如下,按回车选进去 

        按回车选中Enable Debug tweaks,这里表示开机启动自动登陆进入petalinux系统

        回到主界面,“Firmware Version Configuration”可以用来修改定制的 linux 系统的 主机名和产品名,默认与该 Petalinux 工程同名,如果需要可修改。移动到底部的“Save”,,按键盘上的“Enter”键,会进入

         执行完成。

   如果后面想重新配置,只需输入“petalinux-config”命令即可重新配置。

3.2配置 uboot 和 Linux 内核的来源

默认是 github

        通过petalinux完成配置内核后,在工程的build/downloads目录下有git2_github.com.Xilinx.linux-xlnx.git.tar.gz,且完成编译后,在./build/tmp/work-shared/zynqmp-generic/kernel-source目录下有解压后的内核源码,这里使用后者作为源码。通用编译后可以找到uboot 源码。

如果想保留源码:

在project-spec/meta-user/conf/petalinuxbsp.conf里,添加如下内容,可以保留Linux和UBoot源代码。

RM_WORK_EXCLUDE += “linux-xlnx”
RM_WORK_EXCLUDE += “u-boot-xlnx”

 路径:

3.2.1直接保存退出-新手

保存退出。

3.2.2配置-玩家

       Petalinux默认编译工程时从网络加载u-boot与Linux源文件,可以通过设置,将其设置为使用本地源文件。

1.将u-boot与Linux源文件拷贝到petalinux目录下,并将其目录重命名为u-boot与linux。使用如下命令进入Petalinux工程配置界面:

​​​​​​​3.3配置根文件系统

在终端输入下面的命令可配置根文件系统,如果不需要配置可不执行该命令。

使用 petalinux-config -c rootfs 配置 Linux 根文件系统

         默认配置可满足一般使用,也可以根据需求来定制根文件系统,本实验保持默认配置。 需要说明的是“PetaLinux RootFS Settings”可以用来设置 root 用户的密码,默认为 “root”。后面登录的时候会用到。 保存配置并退出

​​​​​​​3.3.1配置-玩家

petalinux-v2019.1 rootfs配置

开发用到的常用工具,使能如下选项,

Filesystem Packages  → base  → util-linux  util-linux-mkfs
Filesystem Packages  → base  → e2fsprogs 

Filesystem Packages  → base  → usbutils
Filesystem Packages  → base  → i2c-tools
Filesystem Packages  → net  → netcat
Filesystem Packages  → console  → network  → ethtool

关闭

Filesystem Packages  → misc  → tcf-agent 

默认已有

cantools pciutils microcom

增加软件包

petalinux采用yocto来制作跟文件系统,比如iperf3,在petalinux rootfsmenuconfig中是没有的,需要手动配置,iperf3 recipe位置在:

mkfs.ext4指令增加

petalinux默认配置的文件系统不支持mkfs.ext4指令。

新增命令

petalinux没有配置busybox的命令,但是可以通过

来配置系统下的内嵌命令。

新增mkfs.ext4命令

3.4​​​​​​​配置设备树文件

         大家进入到petalinux工程中的目录project-spec/meta-user/recipes-bsp/device-tree/files 会发现有一个dtsi后缀的文件。这就是petalinux指定的设备树文件了。大家有什么设备树节点都可以添加到这里面去,它会被petalinux自动编译到设备树文件中去。新手可以不做配置,因为不配置设备树也可以启动内核,只是不能使用硬件设备而已。使用 vim命令打开 system-user.dtsi 文件,如下所示:

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

参考:

1、支持USB设备 需要加入:

3.5​​​​​配置app(新手可忽略)

        所有命令均需在非管理员模式下执行

1、初始化 PetaLinux 运行环境:

运行命令:source PetaLinux安装目录/settings.sh

2、 创建自动执行脚本相关文件:

(1) cd 到项目工程目录下;

(2) 运行命令:petalinux-create -t apps --template install -n autorunapp --enable

(3) 修改 项目工程目录/project-spec/meta-user/recipes-apps/autorunapp 下的 autorunapp.bb 文件

         修改 项目工程目录/project-spec/meta-user/recipes-apps/autorunapp/files 下的 autorunapp 文件内容,如下所示:

​​​​​​​3.6编译工程

$ petalinux-build

petalinux-build -x distclean 擦除

petalinux-build 编译

需要等一段时间
该命令将生成设备树 DTB 文件、 fsbl 文件、 U-Boot 文件, Linux 内核和根文件系统映像。 编译完成后,生成的映像将位于工程的 images 目录下

 3.7制作BOOT.BIN镜像

        生成zynq启动镜像

        在xilinx-project目录下创建一个目录,将.elf,.bit文件拷贝到该目录。修改文件权限777

执行petalinux-package --boot --fsbl zynq_fsbl.elf --fpga 7z020.bit --u-boot

可以在工程目录的 /images/linux路径下找到BOOT.BINimage.ub文件

 启动镜像BOOT.BIN生成于Embed/images/linux/BOOT.BIN

至此开发固件编译完成。 

准备一张SDHC卡(SD卡(2GB~32GB))格式化为fat32格式(如果:电脑直接格式化不行,要用HP USB Disk Storage Format Tool v2.0.6 Portable.exe来格式化)

xilinx-project/images/linux/目录下的BOOT.BIN image.ub拷贝到SD卡。插到板子上,板子采用SD卡启动,板卡插入USB转串口,上电启动,用户root 密码 root

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值