MDK3308-EK更改根文件系統(tǒng)為ext2

默認(rèn)生成的根文件系統(tǒng)是只讀的squashfs,不方便修改。想修改為ext2。前面三步都是參考《Rockchip Linux軟件開發(fā)指南》

1、修改kernel的bootargs參數(shù),文件位于 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/對應(yīng)的 parameter 文件,確保 rootfs 分區(qū)大小足夠存放分區(qū)鏡像。默認(rèn) 0x00040000@0x0002E800(rootfs) ,前面是扇區(qū)個數(shù),每個扇區(qū)512字節(jié),因此默認(rèn)rootfs分區(qū)大小是 262,144*512=134,217,728,即128M

3、修改 device\rockchip\rk3308\BoardConfig.mk 中 rootfs 文件系統(tǒng)類型

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

4、重新編譯鏡像,燒錄進(jìn)板子,但是無法啟動。報(bào)錯為

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

研究了一下,生成根文件系統(tǒng)的默認(rèn)參數(shù)配置在 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)" \

因?yàn)?BR2_TARGET_ROOTFS_EXT2_4=y ,因此最后用的是mkfs.ext4來生成根文件系統(tǒng)的。試過修改 bootargs 把 rootfstype 改為 ext4 也不能啟動,可能內(nèi)核還是少了一些ext4的特性支持,還得改內(nèi)核。最后的方案還是用ext2的根系統(tǒng)

修改 buildroot/configs/rockchip_rk3308_release_defconfig,屏蔽 BR2_TARGET_ROOTFS_EXT2_4=y
然后執(zhí)行 source buildroot/build/envsetup.sh,更新參數(shù)
重新編譯rootfs ,make

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容