• zynq开发中的文件系统


    文件系统类型

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

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dAH6PMrk-1668337702482)(./pic/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/
    
    • 1
    • 2
    • 3

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

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

    **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/
    
    • 1
    • 2
    • 3

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

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

    sync

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

    petalinux-initramfs-image

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

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TjAVBftL-1668337702483)(./pic/4.png)]

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

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yyYC3pEq-1668337702484)(./pic/3.png)]

    switch_root

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

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

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

    不使能switch_rootj

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

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cRf9Pj9K-1668337702484)(./pic/2.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
    
    • 1
    • 2
    • 3
  • 相关阅读:
    go中的panic defer recover
    腾讯云短信申请
    运算符 - Go语言从入门到实战
    clickhouse使用clickhouse-keeper代替zookeeper
    深入理解互联网的原理——服务器、客户端和http协议
    工业物联网网关为边缘计算带来更多的价值
    快速采集微信联系人昵称列表并转发多条消息
    抖音同城榜:探索城市新潮流
    做交互设计都有哪些需要掌握的思维方式
    Java开发需要的网络基础知识,搞清楚计算机网络底层原理
  • 原文地址:https://blog.csdn.net/clj609/article/details/127835693