之前寫了一篇 QEMU User 模式運行 mips 程序的隨筆。進體內再來補充下,如何使用 QEMU system 模式運行 Arm64 的系統。
QEMU 環境
略,直接 apt、dnf、pacman 搜索安裝下就行。注意需要安裝 qemu-arch-extra。
系統鏡像 https://mirrors.ustc.edu.cn/openwrt/releases/19.07.5/targets/armvirt/
可以從這里下載。如果想測試 32位系統請下載 32位的鏡像,並參考 https://gist.github.com/cocktail828/eec77bac804110478ac55d2381bbb81e
來操作。
這里不再介紹 32 位的步驟,僅介紹下 64位的。
qemu-system-aarch64 運行 64 位系統
運行 Image-initramfs
Image-initramfs 實際上是把 rootfs 與 zImage 打包在一起的。在這種模式下,文件系統完全駐留在內存中,斷電時任何修改都會丟失。
qemu-system-aarch64 -M virt -m 1024m -kernel openwrt-19.07.5-armvirt-64-Image-initramfs -no-reboot -nographic -nic user -nic user -cpu cortex-a53 -smp 4
啟動如下圖
單獨指定 rootfs
注意這里添加了 -drive
與 -append
兩個參數
qemu-system-aarch64 -M virt -m 1024m -kernel openwrt-19.07.5-armvirt-64-Image -drive file=openwrt-19.07.5-armvirt-64-root.squashfs,format=raw,if=virtio -no-reboot -nographic -nic user -nic user -cpu cortex-a53 -smp 4 -append root=/dev/vda
啟動如下圖