一、简介
通过这篇文章,您可以使用 PetaLinux 构建您的 Linux 嵌入式系统。并将文件系统保存在 SD 卡中,掉电不丢失。
二、操作
- 1、格式化SD卡
将 SD 卡分为 FAT32 和 Ext4 前后两个分区,第一个分区百兆即可,第二个分区约3GB,以可以存储一个Ubuntu(Libaro)系统为佳。
在 Ubuntu 中点击搜索框,运行磁盘(Disk Utility)工具。
点击 “ - ” 号删除现有分区
点击 “ + ” 号新建 FAT、Ext4 分区
操作完成,重新插拔 TF 卡
- 2、切换目录:
$ cd ./zed_sound_csdn
- 3、配置工程:
$ petalinux-config
进入 “Image Packaging Configuration” 选项卡;
进入 “Root filesystem type” 子选项卡;
选择 “SD card” 作为 RootFS 文件系统。
Save and Exit...
- 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";
};
- 5、编译
$ petalinux-build
三、部署在SD卡
- 1、Source SDK,在 image 目录下执行以下命令,生成 BOOT.BIN
$ source /opt/Xilinx/SDK/2015.4/settings64.sh
$ petalinux-package --boot --fsbl <FSBL image> --fpga <FPGA bitstream> --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。
- 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
五、说明
转载请注明出处及作者。