使用Petalinux设计linux系统

1.通过 Vivado 创建硬件平台,得到 hdf 硬件描述文件

home目录下创建一个名为 petalinux 的目录,并在 petalinux 目录下创建 hdf 目录,将Vivado生成的SDK文件夹拷贝到hdf目录下。

2.设置 Petalinux 环境变量

初始化Petalinux 工作环境:source <petalinux安装路径>/settings.sh

绑定的快捷指令:sptl

3.创建 Petalinux 工程

在petalinux 目录下创建Petalinux工程:petalinux-create -t project --template zynq -n 工程名称

4.配置Petalinux 工程

  1. hdf 硬件描述文件导入到 Petalinux 工程中:
cd <petalinux工程目录>
petalinux-config --get-hw-description ../hdf/xxxx.sdk/

注:此时如果终端界面太窄,会产生错误。

Failed to menu config project component

  1. 导入成功之后会自动弹出 petalinux 工程配置窗口:

在这里插入图片描述

  • 如果后面修改了 Vivado 工程,重新生成 hdf 文件后, 可以重新执行“petalinux-config --get-hw-description hdf文件路径”命令以重新配置 Petalinux 工程。

  • 键盘上按下此高亮字母对应的键可以快速选中对应的菜单。中括号里的“*”表示为已使能配置。

  • 在“Auto Config Settings”中的“Advanced bootable images storage Settings”菜单中可配置启动引导镜像和内核镜像的存储媒介,默认为 sd 卡

  1. 按两次“ESC”退出窗口。

5.配置Linux内核

进入petalinux工程目录

petalinux-config -c kernel

Petalinux 默认使用的内核版本为 4.14.0,使用的内核 Xilinx 官方已经做好了基础配置,一般无需更改。

6.配置Linux根文件系统

进入petalinux工程目录

petalinux-config -c rootfs

默认配置一般够用,“PetaLinux RootFS Settings”可以用来设置 root 用户的密码,默认为“root”。

7.配置设备树文件

cd petalinux工程目录
vi project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi
手动配置

配置信息:

  • compatible:用于与内核驱动匹配的名字
  • label:名字
  • gpios:对应的GPIO引脚
  • 默认状态以及触发状态

8.编译 Petalinux 工程

进入petalinux工程目录:

petalinux-build

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

Petalinux 会根据 hdf 文件和配置的petalinux工程自动配置 fsbl 和 uboot,一般无需手动配置。

9.制作BOOT.BIN启动文件

ZYNQ 的启动文件 BOOT.BIN 一般包含 fsbl 文件、bitstream 文件和 uboot 文件。

image.ub本质上是多个文件组合在一起,包括内核镜像、dtb文件、根文件系统。

生成 BOOT.BIN 文件:petalinux-package --boot --fsbl --fpga --u-boot --force

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

“–fpga”用于指定bitstream 文 件 所 在 位 置 ,后面接该文件对应的路径信息,默认对应的是 images/linux/system.bit;

“–u-boot”用于指定 U-Boot 镜像所在位置,后面接该文件 所在路径信息,默认为 images/linux/u-boot.elf。

10.制作SD启动卡

使用 SD 卡引导 linux 系统启动,一般需要在 SD 卡上有 2 个分区。一个分区使用FAT32 文件系统,用于放置启动镜像文件(如 BOOT.BIN、linux 镜像等),另一分区使用 EXT4 文件系统,用于存放根文件系统。

(1)将读卡器插入到电脑并连接到Ubuntu系统,找到SD卡对应的设备节点,比如是/dev/sdb。

(2)先给SD卡分区

umount /dev/sdb*
sudo fdisk /dev/sdb

(3)输入“d”,删除以前的分区

(4)输入“n”创建一个新分区。通过选择“p”使其为主,使用默认分区号 1 和第一个扇区 2048。设置最后一个扇区,也就是设置第一个分区的大小,可设置为100MB,输入+100M

(5)设置分区类型,输入“t”,然后输入“c”,设置为“W95 FAT32 (LBA)”。

(6)输入“a”,设为引导分区,第一个分区创建完成。

(7)输入“n”,创建根文件系统分区,然后一路默认。

(8)输入“p”,检查分区表,如没问题,输入“w”写入到SD卡并退出。

(9)格式化分区,将第一个分区格式化成 FAT32 分区并命名为 boot,将第二个分区格式化成 ext4 分区并命名为 rootfs。

sudo mkfs.vfat -F 32 -n boot /dev/sdb1
sudo mkfs.ext4 -L rootfs /dev/sdb2

(10)分别点击两个图标即可自动将这两个分区挂载到 Ubuntu 系统。

(11)将 petalinux 工程目录 image/linux 目录下的 BOOT.BIN 和 image.ub 文件拷贝到名为 boot 的分区。

  • 19
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
PetaLinux是一个基于嵌入式Linux的开发工具链,用于构建嵌入式系统。它提供了许多可定制的组件和功能,其中包括对JFFS2文件系统的支持。 JFFS2(Journaling Flash File System 2)是一种针对闪存存储设备设计的文件系统。它具有很好的压缩率和高度可靠性,适用于嵌入式系统。在嵌入式系统中,闪存是一种常见的存储设备,它通常具有较小的存储容量和有限的周期寿命。因此,选择合适的文件系统对于确保系统的可靠性和性能至关重要。 使用PetaLinux时选择使用JFFS2文件系统有几个优点。首先,JFFS2具有较好的压缩率,可以节省存储空间。这在嵌入式系统中特别重要,因为闪存的容量通常有限。其次,JFFS2采用了日志技术,可以确保数据的完整性和一致性。它可以通过将修改的数据写入日志中,然后再写入闪存中来提供数据持久性。这有助于防止数据损坏和错误。 另外,PetaLinux提供了对JFFS2文件系统的内建支持和集成工具。这些工具使得在构建嵌入式系统时轻松地添加和配置JFFS2文件系统成为可能。开发人员可以使用PetaLinux提供的命令和选项设置文件系统的参数和属性,以满足特定的需求。 综上所述,使用PetaLinux来构建嵌入式系统并选择JFFS2文件系统能够提供较好的存储空间利用率和数据的可靠性。这使得嵌入式系统在具有有限存储容量和闪存设备的情况下,能够更好地运行和维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hi小瑞同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值