FPGA----基于ZYNQ 7020实现petalinux文件持久化存储
引言:由于当前的 PetaLinux 系统使用了临时的内存文件系统(initramfs),导致每次重启后所有更改(包括安装的 EPICS)都会丢失。为了解决这个问题,您需要将根文件系统(rootfs)配置为使用 SD 卡上的持久性存储(如 ext4 分区)。
本文基于下述文章搭建:
FPGA----基于ZYNQ 7020实现petalinux并运行一个程序-CSDN博客文章浏览阅读391次,点赞6次,收藏11次。本文实现了xilinx sdk与petalinux的联合使用,在sdk仿真完毕后,可以将程序移植到petalinux中运行petalinux app。https://blog.csdn.net/qq_37912811/article/details/1477282051、在 PetaLinux 项目目录中运行以下命令:
petalinux-config
2、在弹出的配置菜单中,导航至:
Image Packaging Configuration → Root File System Type
选择SD卡存储
4、重新构建 PetaLinux 项目:
petalinux-buildpetalinux-package --boot --u-boot --fpga --force
5、格式化sd卡,需要一个FAT分区,一个EXT4分区
(1)把开发板的 sd 卡插入读卡器,然后插入电脑的 USB 口
(2)连接到虚拟机 Linux 中
(3)在 ubuntu 的搜索路径中,输入 disk,会出现 Disks 的图标
(4)鼠标点击 Disks 图标,出现"Disks"的对话框,将 SD 卡分为2个分区,一个名为FAT,一个名为 EXT,这里要重新分区。
(5)点击添加分区的图标,添加第一个分区,填写 5000MB,格式为 FAT,用于存放ZYNQ 的启动文件 BOOT.bin 和内核文件、设备树,名称为 FAT
(6)创建第二个分区,用于存放根文件系统,格式为 EXT4,名称为 EXT4
6、同步根文件到EXT4分区
执行"petalinux-build"后,在images/linux下会生成rootfs.ext文件
-
使用工具(如
fdisk
或gparted
)将 SD 卡分为两个分区:-
第一个分区(FAT32):用于存放
BOOT.BIN
和image.ub
。 -
第二个分区(ext4):用于作为根文件系统。
-
-
格式化第二个分区为 ext4 文件系统。
-
将构建生成的
rootfs.ext4
文件写入第二个分区:
(1)确保sd卡已经被卸载
# 卸载我们的EXT4分区
sudo umount /media/yangzheng/EXT4
(2)查找EXT4对应的设备
lsblk
我这里配置的容量是2.5GB,所以它叫“sdb2”
所以我们复制的命令为:
cd ~
cd /home/yangzheng/Downloads/ax7z020/ax_peta/images/linux
sudo dd if=rootfs.ext4 of=/dev/sdb2 bs=4M
(3)将 BOOT.BIN
和 image.ub移动至 FAT分区
7、上电启动,我们新建epics文件夹,将一些文件上传并重启,如果看到文件夹还在那么表示成功。