PetaLinux 建立存储于 SD 卡的文件系统

一、简介

通过这篇文章,您可以使用 PetaLinux 构建您的 Linux 嵌入式系统。并将文件系统保存在 SD 卡中,掉电不丢失。

二、操作

  • 1、格式化SD卡

将 SD 卡分为 FAT32 和 Ext4 前后两个分区,第一个分区百兆即可,第二个分区约3GB,以可以存储一个Ubuntu(Libaro)系统为佳。

PetaLinux 建立存储于 SD 卡的文件系统_第1张图片

在 Ubuntu 中点击搜索框,运行磁盘(Disk Utility)工具。

点击 “ - ” 号删除现有分区

点击 “ + ” 号新建 FAT、Ext4 分区

PetaLinux 建立存储于 SD 卡的文件系统_第2张图片

操作完成,重新插拔 TF 卡

  • 2、切换目录:
$ cd ./zed_sound_csdn
  • 3、配置工程:
$ petalinux-config

进入 “Image Packaging Configuration” 选项卡;

进入 “Root filesystem type” 子选项卡;

选择 “SD card” 作为 RootFS 文件系统。

Save and Exit...

PetaLinux 建立存储于 SD 卡的文件系统_第3张图片

  • 4、修改设备树

以上操作会更新全部设备树文件,记得要重新修改 “pl.dtsi” ;与之前非 SD 卡工程不同的是,PetaLinux 在 bootargs 尾部又加上了一行参数,可以在 “subsystems/linux/configs/device-tree/system-conf.dtsi” 看到它。

chosen {
	bootargs = "console=ttyPS0,115200 earlyprintk root=/dev/mmcblk0p2 rw rootwait";
	};

PetaLinux 建立存储于 SD 卡的文件系统_第4张图片

  • 5、编译
$ petalinux-build

三、部署在SD卡

  • 1、Source SDK,在 image 目录下执行以下命令,生成 BOOT.BIN
$ source /opt/Xilinx/SDK/2015.4/settings64.sh
$ petalinux-package --boot --fsbl  --fpga  --u-boot
$ petalinux-package --boot --fsbl zynq_fsbl.elf --fpga system_wrapper.bit --u-boot
  • 2、将 BOOT.BIN 、image.ub 复制到 FAT32 分区

可以看到,因为剥离了文件系统,image.ub 从 6.4MB 减少到 3MB。同时新系统支持了 shutdown 等命令。

新生成的文件系统 “rootfs.cpio 大约7MB。

PetaLinux 建立存储于 SD 卡的文件系统_第5张图片

  • 3、将文件系统复制到 Ext4 分区
$ cp images/linux/rootfs.cpio   /media/rootfs/
$ cd /media/rootfs
$ sudo apt-get install pax
$ sudo pax -rvf rootfs.cpio

四、后续

上电并进入系统,在 “/mnt” 目录下建立文件夹 “udisk”,如果重启后文件夹还在,实验成功。

记得使用 shutdown 命令关机,不要硬掉电。

# cd /mnt
# mkdir udisk

# shutdown -h now

五、说明

转载请注明出处及作者。

你可能感兴趣的:(FPGA)