利用 QEMU 运行ARM64 架构的 OpenWRT

之前写了一篇 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

启动如下图

posted @ 2020-12-11 22:13  sinpo828  阅读(2843)  评论(0编辑  收藏  举报