RT-Thread BSP qemu-virt64-aarch64 文件系统

前言

  • 前面大体上搭建了 RT-Thread BSP qemu-virt64-aarch64 的交叉编译环境,运行后发现,文件系统没有挂载上,感觉是没有 mkfs

  • 通过RT-Thread 官方的文档,找到了解决方法

创建独立的 qemu-virt64-aarch64 工程

  • 不是特别喜欢直接使用 git clone 下来的 RT-Thread 源码工程作为开发验证工程,主要是包含了太多不使用的BSP,代码过多,体积过大。

  • 于是重新整理一个精简的 qemu-virt64-aarch64 工程

(1) rt-thread\bsp\qemu-virt64-aarch64 -> 复制 qemu-virt64-aarch64

RT-Thread BSP qemu-virt64-aarch64 文件系统_第1张图片

(2)rt-thread.git 目录 bsp 等项目无关的目录去除,复制到 rt-thread目录

RT-Thread BSP qemu-virt64-aarch64 文件系统_第2张图片

  • 由于路径更改了,所以 进入 qemu-virt64-aarch64 scons 编译或报错,简单修复一下 构建路径即可

RT-Thread BSP qemu-virt64-aarch64 文件系统_第3张图片

RT-Thread BSP qemu-virt64-aarch64 文件系统_第4张图片

交叉编译环境

  • 此部分参考 RT-Thread BSP qemu-virt64-aarch64 的编译环境搭建,就不再重复

运行

  • shell 执行 ./qemu.sh 后,发现 ls 提示
msh />ls
No such directory
  • 初步判断是没有开启 文件系统,不过通过 scons --menuconfig 查看,文件系统相关的组件已经开启了

RT-Thread BSP qemu-virt64-aarch64 文件系统_第5张图片

解决文件系统无法挂载问题

RT-Thread BSP qemu-virt64-aarch64 文件系统_第6张图片

RT-Thread BSP qemu-virt64-aarch64 文件系统_第7张图片

  • 通过查看 qemu.sh 脚本发现, sd.bin 应该没有任何的内容,所以需要格式化

  • 通过 RT-Thread 官方的文档,发现确实需要这么做,并且 mkfs 后,还需要退出 qemu 再次进入就可以正常的识别文件系统了

  • 操作方法:list device 找到 sd 卡相关的设备

msh />list device
device                   type         ref count
---------------- -------------------- ----------
vport0p1         Character Device     0
vport0p0         Character Device     0
virtio-console0  Character Device     0
virtio-blk0      Block Device         0
rtc              RTC                  0
gpio             Pin Device           0
zero             Miscellaneous Device 0
urandom          Miscellaneous Device 0
random           Miscellaneous Device 0
null             Miscellaneous Device 0
uart0            Character Device     2
  • 这里是 virtio-blk0 设备,执行 mkfs virtio-blk0

RT-Thread BSP qemu-virt64-aarch64 文件系统_第8张图片

  • 退出 qemu,CTRL + a 组合键按下后,松开,再按一下 x

  • 再次进入 qemu,发现正常识别文件系统了

小结

  • qemu 文件系统识别了,接下来继续研究一下其他的功能

  • 可以使用 qemu 评估一些平台无关的软件组件,这样可以提高效率

你可能感兴趣的:(RT-Thread,qemu,文件系统,aarch64)