qemu虚拟机模拟一个riscv linux系统
方法一:
使用buildroot-2020.08.1 全自动
https://buildroot.org/download.html
下载后在ubuntu内解压,在buildroot-2020.08.1目录下
make qemu_riscv64_virt_defconfig
然后
make menuconfig
如果你不懂怎么配置,直接默认。这两步如果出错,一般是你的ubuntu有些软件没装。根据提示,直接搜一下error信息就能找到解决方法。
然后直接 make
buildroot会自动下载riscv-toolchian、linux kernel source code、qemu、rootfs、opensbi等等,自动编译,生成各种可执行文件和image文件。
编译结束后,到 buildroot-2020.08.1/output/images
./start-qemu.sh
即可启动qemu,将首先执行qemu内置的rom,然后执行OpenSBi作为bootloader,之后载linux kernel。登录名root 密码默认没有密码。
方法二:
qemu的编译可以参考
不想自己编译可以去官网下载发布版,编译好的全家桶,直接用就是了,在windows环境下使用即可。
https://www.qemu.org/download/#windows
qemu运行整个操作系统需要加载一个操作系统镜像,就是虚拟机的镜像,参考了这篇配置qemu
我图省事儿,用的现成的fedora
注意,要把全部文件都下载,尤其不要遗漏bbl,这是bbl(bootloader) + Linux kernel一体的。stage4-disk.img是根文件系统,你可以用busybox自己做一个。
stage4-disk.img和bbl同文件夹,然后在这个文件夹运行qemu-system-riscv64,命令参数还是看 https://wiki.qemu.org/Documentation/Platforms/RISCV
qemu-system-riscv64 \ -nographic \ -machine virt \ -smp 4 \ -m 2G \ -kernel bbl \ -object rng-random,filename=/dev/urandom,id=rng0 \ -device virtio-rng-device,rng=rng0 \ -append "console=ttyS0 ro root=/dev/vda" \ -device virtio-blk-device,drive=hd0 \ -drive file=stage4-disk.img,format=raw,id=hd0 \ -device virtio-net-device,netdev=usernet \ -netdev user,id=usernet,hostfwd=tcp::10000-:22
qemu就跑起来了。
windows下的bat脚本: 文件路径自己改
cd C:\Program Files\qemu .\qemu-system-riscv64.exe ^ -nographic ^ -machine virt ^ -smp 4 ^ -m 2G ^ -kernel C:\fedora\bbl ^ -append "console=ttyS0 ro root=/dev/vda" ^ -device virtio-blk-device,drive=hd0 ^ -drive file=C:\fedora\stage4-disk.img,format=raw,id=hd0 ^ -device virtio-net-device,netdev=usernet ^ -netdev user,id=usernet,hostfwd=tcp::10000-:22
要看刚刚下载readme!!!
https://fedorapeople.org/groups/risc-v/disk-images/readme.txt
可以ssh登录它:
ssh -p 10000 root@localhost
用户名 root 密码 riscv
root@localhost's password: riscv
windows效果,建议用powershell,cmd下字符乱码: