1.5 KiB
1.5 KiB
如何在qemu上挂载文件镜像
首先需要一个FAT32文件镜像,在Linux下可以通过dd
命令和mkfs
命令生成一个镜像,将生成的fs.img文件放在xv6-k210目录下即可。
$ dd if=/dev/zero of=fs.img bs=512k count=2048
$ mkfs.vfat -F 32 fs.img
注意:dd
命令中的bs
和count
的参数只是参考,这会生成1GB的镜像。
如何在镜像中存入用户程序
首先通过mount
命令,将镜像挂载到你指定的目录(这里以/mnt为例),然后将build之后xv6-user目录下文件名以"_"为前缀的用户程序拷贝至镜像中,再取消挂载以保存写入结果即可。也可以在镜像中建立一些文本文件进行读测试。
注意:必须将xv6-user目录下的"_init"拷贝至镜像根目录中,并且重命名为"init"(这是xv6原本的设定,目前我们暂未更改),还需拷贝"_sh"至镜像中,才能启动shell。编写的用户程序也需要放在xv6-user目录下,同时需要添加至Makefile的UPROGS
目标中,才能连同内核一起编译链接。
$ make build
$ (sudo)mount fs.img /mnt
$ (sudo)cp xv6-user/_init /mnt/init
$ (sudo)cp xv6-user/_sh /mnt
$ (sudo)cp xv6-user/... /mnt
$ ...
$ (sudo)umount /mnt
PS:现已可以通过执行 make fs
自动完成上述操作。
如何在 SD 卡中存入用户程序
将上述操作生成的 fs.img
写入 SD 卡即可。可以执行操作:
make sdcard sd="your SD card device"
警告:这会覆盖 SD 卡的原有数据与文件系统!