美文网首页
MDK3308-EK更改根文件系统为ext2

MDK3308-EK更改根文件系统为ext2

作者: 叶迎宪 | 来源:发表于2021-06-07 20:55 被阅读0次

    默认生成的根文件系统是只读的squashfs,不方便修改。想修改为ext2。前面三步都是参考《Rockchip Linux软件开发指南》

    1、修改kernel的bootargs参数,文件位于 kernel/arch/arm64/boot/dts/rockchip/rk3308-evb-v10.dtsi

            compatible = "firefly,rk3308-firefly", "firefly,rk3308";
     
            chosen {
    -               bootargs = "earlycon=uart8250,mmio32,0xff0c0000 swiotlb=1 console=ttyFIQ0 root=PARTUUID=614e0000-0000 rootfstype=squashfs rootwait";
    +               bootargs = "earlycon=uart8250,mmio32,0xff0c0000 swiotlb=1 console=ttyFIQ0 root=PARTUUID=614e0000-0000 rootfstype=ext2 rootwait";
            };
     
            adc-keys {
    

    2、修改 device/rockchip/rk3308/rockimg/对应的 parameter 文件,确保 rootfs 分区大小足够存放分区镜像。默认 0x00040000@0x0002E800(rootfs) ,前面是扇区个数,每个扇区512字节,因此默认rootfs分区大小是 262,144*512=134,217,728,即128M

    3、修改 device\rockchip\rk3308\BoardConfig.mk 中 rootfs 文件系统类型

     # Set rootfs type, see buildroot.
     # ext4 squashfs
    -ROOTFS_TYPE=squashfs
    +ROOTFS_TYPE=ext2
     
     # Set data partition type.
     # ext2 squashfs
    

    4、重新编译镜像,烧录进板子,但是无法启动。报错为

    EXT2-fs (mmcblk0p6): error: couldn't mount because of unsupported optional features (240)

    研究了一下,生成根文件系统的默认参数配置在 buildroot/configs/rockchip_rk3308_release_defconfig

    BR2_TARGET_ROOTFS_EXT2=y
    BR2_TARGET_ROOTFS_EXT2_4=y
    BR2_TARGET_ROOTFS_EXT2_SIZE="128M"
    BR2_TARGET_ROOTFS_SQUASHFS=y

    而 buildroot/fs/ext2/Config.in 中

    config BR2_TARGET_ROOTFS_EXT2_GEN
            int
            default 2 if BR2_TARGET_ROOTFS_EXT2_2
            default 3 if BR2_TARGET_ROOTFS_EXT2_3
            default 4 if BR2_TARGET_ROOTFS_EXT2_4
    

    buildroot/fs/ext2/ext2.mk 中

            $(HOST_DIR)/sbin/mkfs.ext$(BR2_TARGET_ROOTFS_EXT2_GEN) $(EXT2_OPTS) $@ \
                    "$(EXT2_SIZE)" \
    

    因为 BR2_TARGET_ROOTFS_EXT2_4=y ,因此最后用的是mkfs.ext4来生成根文件系统的。试过修改 bootargs 把 rootfstype 改为 ext4 也不能启动,可能内核还是少了一些ext4的特性支持,还得改内核。最后的方案还是用ext2的根系统

    修改 buildroot/configs/rockchip_rk3308_release_defconfig,屏蔽 BR2_TARGET_ROOTFS_EXT2_4=y
    然后执行 source buildroot/build/envsetup.sh,更新参数
    重新编译rootfs ,make

    相关文章

      网友评论

          本文标题:MDK3308-EK更改根文件系统为ext2

          本文链接:https://www.haomeiwen.com/subject/dzxceltx.html