Zynq开发中的文件系统

本文转载自: 硬码农二毛哥 

文件系统类型

在Petalinux配置工程时,会遇到如下类型文件系统。常用的有INITRAMFS、INITRD和EXT4。

1.png

INITRAMFS、INITRD

INITRAMFS是INITRD的升级版,这两种根文件系统类型都不能保存文件。当文件系统配置成这两种类型时,使用SD卡启动单板时,将SD卡格式化为FAT32类型。只需要将三个文件拷贝到SD卡,bootloader (BOOT.BIN), bootscript (boot.scr) and kernel image(image.ub) 。

$ cp images/linux/BOOT.BIN /media/BOOT/
$ cp images/linux/image.ub /media/BOOT/
$ cp images/linux/boot.scr /media/BOOT/

其中image.ub包含三个文件:

内核镜像: Image
设备树: system.dtb
根文件系统: ramdisk.cpio.gz.u-boot

ramdisk.cpio.gz.u-boot

ramdisk.cpio.gz.u-boot 是一个临时根文件系统,用来实现早期系统启动,为后续挂载真正文件系统提供便利。

EXT4

当文件系统配置成EXT4时,SD要分成两个区,一个FAT32,另一个EXT4。

FAT分区:将BOOT.BIN, boot.scr 拷贝到该分区。

$ cp images/linux/BOOT.BIN /media/BOOT/
$ cp images/linux/image.ub /media/BOOT/
$ cp images/linux/boot.scr /media/BOOT/

EXT分区:将rootfs.tar.gz解压到该区域。

$ sudo tar xvf rootfs.tar.gz -C /media/rootfs
$ sync

sync

解压命令后,加上sync,保证文件系统全部解压到EXT4分区。

petalinux-initramfs-image

在Petalinux工程配置中,进入Image Packaging Configuration。

2.png

当文件系统类型为INITRD/INITRAMFS 时,使用petalinux-initramfs-image 时,启动文件系统为最小的。

3.png

switch_root

使用switch_root命令可以切换到另一个作为挂载树的根的文件系统

switch_root [新根目录] [init] [参数]
switch_root /mnt /sbin/init

当文件系统类型为INITRD/INITRAMFS 时,使用petalinux-initramfs-image 时,生成的镜像文件。可以使用switch_root命令将文件系统挂载到ext4分区。

不使能switch_rootj

将petalinux-initramfs-image名字改为petalinux-image-minimal ,将不再使能switch_root命令。

4.png

specify the SD device which has the ext roots

指定SD卡设备的ext文件系统,添加ext4=/dev/mmcblk0p2:/rootfs 。

petalinux-config ---> DTG Settings ---> Kernel Bootargs ---> (earlycon
console=ttyPS0,115200 clk_ignore_unused init_fatal_sh=1 ext4=/dev/
mmcblk0p2:/rootfs) user set kernel bootargs

最新文章

最新文章