前言

  • 经常简单的配置,在 RT-Thread BSP qemu-virt64-aarch64 上可以支持 fat 文件系统,但是如何支持 ext4 文件系统呢?
  • 经过验证,也是配置使能 ext4 就可以支持

ext4 软件包

  • 当前 RT-Thread 通过 https://github.com/RT-Thread-packages/lwext4 ext4 文件系统的软件包,实现 ext4 格式的文件系统的支持
  • 开启 lwext4 软件包的方法比较简单,通过 scons --menuconfig 配置
  • 在 ubuntu 20.04 上开发编译 qemu-virt64-aarch64lwext4 软件包开启方法如下
  • $ scons --menuconfig 进入 图形配置界面, 按下 / 键,可以进行配置项的搜索功能:这里搜索 ext4 相关的配置,主要是为了快速找到 lwext4 软件包 在哪里配置的

RT-Thread BSP qemu-virt64-aarch64 挂载 ext4文件系统_RT-Thread

RT-Thread BSP qemu-virt64-aarch64 挂载 ext4文件系统_ubuntu_02

RT-Thread BSP qemu-virt64-aarch64 挂载 ext4文件系统_ubuntu_03

RT-Thread BSP qemu-virt64-aarch64 挂载 ext4文件系统_RT-Thread_04

  • 【小插曲】,在ubuntu 20.04 下保存Kconfig 的配置,有个小BUG,通过 SAVE 保存,发现没有生效!当前配置完成后,就 esc 键,按到退出,这时会提示 保存,YES 保存就可以了

RT-Thread BSP qemu-virt64-aarch64 挂载 ext4文件系统_ubuntu_05


RT-Thread BSP qemu-virt64-aarch64 挂载 ext4文件系统_ext4_06

mount ext 格式文件系统

  • 修改 qemu-virt64-aarch64/applications/mnt.c,把挂载的格式 改为 ext 即可

准备 ext4 sdcard 镜像文件

  • 在 ubuntu 20.04 shell 命令,执行 $ mkfs.ext4 sd.bin,就可以格式化为 ext4
  • qemu-virt64-aarch64 scons 编译,启动 ./qemu.sh,发现文件系统已经改为 ext4

RT-Thread BSP qemu-virt64-aarch64 挂载 ext4文件系统_RT-Thread_07

RT-Thread BSP qemu-virt64-aarch64 挂载 ext4文件系统_搜索_08

小结

  • ext4 格式的镜像,可以正常的挂载到 RT-Thread 的 qemu-virt64-aarch64,方便后期的开发测试
  • ext4 镜像的文件,可以使用 Linux 下的 mkfs.ext4 格式化,通过 mountunmount,轻松的往镜像里面放置文件,如一些 用户文件,可执行文件等,这在 RT-Thread Smart 上经常使用
  • 当前 fat 文件系统也是可以通过 Linux mkfs.fat 格式化, mountunmount ,并且在 RT-Thread 中使用。