去官网下载一个iso镜像
https://cdimage.ubuntu.com/releases/noble/release/
https://cdimage.ubuntu.com/releases/noble/release/ubuntu-24.04.4-desktop-arm64.iso
这里还有很多已经安装好的镜像Preinstalled desktop image。
此外还有cloud image,好像是可以直接运行的image,某些例子,使用的是cloud image,例如:
https://cloud-images.ubuntu.com/releases/questing/release-20260401/
接着很重要的一点,需要一个efi固件,作为引导程序,当然使用uboot也可以。网上的例子用的是各种各样的efi版本。
1 如果是linux系统,有qemu-efi-aarch64这个包,可以使用apt安装
UEFI firmware for 64-bit ARM virtual machines
它提供了,AAVMF_CODE.fd,AAVMF_VARS.fd
windows版本的msys2没找到有这个包。
qemu-system-aarch64 \
-M virt,gic-version=3 \
-m 4096 \
-smp 4 \
-cpu max \
-serial mon:stdio \
-device virtio-gpu-pci \
-device qemu-xhci \
-device usb-kbd \
-device usb-tablet \
-drive if=pflash,format=raw,unit=0,file=/usr/share/AAVMF/AAVMF_CODE.fd,readonly=on \
-drive if=pflash,format=raw,unit=1,file=AAVMF_VARS.fd \
-drive if=none,file=disk,format=raw,id=VIRTIO1 \
-device virtio-blk,drive=VIRTIO1,bootindex=1 \
-drive if=none,file=ubuntu-live-server-arm64.iso,format=raw,readonly=on,id=VIRTIO2 \
-device virtio-blk,drive=VIRTIO2,bootindex=2 \
-net nic,model=virtio \
-net user
2 linaro uefi,提供了QEMU_EFI.fd
https://releases.linaro.org/components/kernel/uefi-linaro/latest/release/qemu64/
qemu-system-aarch64 -m 2048 -cpu cortex-a72 -smp 4 -M virt -nographic
-bios QEMU_EFI.fd
-drive if=none,file=ubuntu-16.04-server-cloudimg-arm64-uefi1.img,id=hd0
-device virtio-blk-device,drive=hd0
-drive file=user-data.img,format=raw
-device virtio-net-device,netdev=net0
-netdev user,hostfwd=tcp:127.0.0.1:2222-:22,id=net0
3 edk2
windows qemu版本,mingw-w64-x86_64-qemu,本身携带了一些efi固件,在
/mingw64/share/qemu目录下面,很多例子用到的
edk2-x86_64-secure-code.fd
edk2-i386-vars.fd
执行下面的命令:
truncate -s 16G disk qemu-system-aarch64 \ -M virt,gic-version=3 \ -m 4096 \ -smp 4 \ -cpu max \ -device virtio-gpu \ -device qemu-xhci \ -device usb-kbd \ -device usb-tablet \ -drive if=pflash,format=raw,unit=0,file=edk2-aarch64-code.fd,readonly=on \ -drive if=pflash,format=raw,unit=1,file=edk2-arm-vars.fd \ -drive if=none,file=disk,format=raw,id=VIRTIO1 \ -device virtio-blk,drive=VIRTIO1,bootindex=1 \ -drive if=none,file=ubuntu-24.04.4-desktop-arm64.iso,format=raw,readonly=on,id=VIRTIO2 \ -device virtio-blk,drive=VIRTIO2,bootindex=2 \ -nic user,id=NAT,model=virtio-net-pci,mac=02:00:00:00:00:01
参考4,网卡配置:
经过漫长的等待,可以进入,
运行速度很慢
删除iso设备那两行即可
参考:
1 Install Ubuntu on QEMU (ARM64)
2 arm64-on-win10.md
https://gist.github.com/billti/d904fd6124bf6f10ba2c1e3736f0f0f7
3 qemu: can't get efi firmware to work with qemu-system-x86_64
https://github.com/msys2/MINGW-packages/issues/9276
4 Using qemu-system-aarch64
https://ww2.coastal.edu/mmurphy2/oer/qemu/aarch64/