Support arm64 hosts in the Windows 11 launcher

Pick qemu-system-aarch64, the AArch64 UEFI firmware and a per-architecture
QEMU config (NVMe disk, virtio-net, ramfb, USB installation media) on arm64,
render the answer file for the target architecture, and move the q35-only
disk and NIC devices out of the shared config. Update vm-images to match
arm64 Windows ISO names.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
guofangandClaude Sonnet 5.5 committed 2026-10-17 14:23:44 +08:00
1 parent 5feed51c61
commit c13ebc7d11
6 files changed
+124 -49

No files matched your search

+13
View File
@@ -2,3 +2,16 @@
[machine]
type = "q35"
# The system disk is attached through IDE so that Windows can boot before the
# VirtIO storage driver is installed; the installation media of
# --install-from-iso use ide.1 to ide.3.
[device "system_disk-dev"]
driver = "ide-hd"
drive = "system_disk"
bus = "ide.0"
bootindex = "1"
[device "nic0"]
driver = "e1000e"
netdev = "net0"
+27
View File
@@ -0,0 +1,27 @@
# arm64 part of the Windows 11 QEMU configuration; read after windows11.ini.
[machine]
type = "virt"
# The "virt" machine has no IDE. NVMe and USB mass storage (used by the
# installation media of --install-from-iso) both have inbox Windows drivers.
[device "system_disk-dev"]
driver = "nvme"
drive = "system_disk"
serial = "win11disk"
bootindex = "1"
# Windows has no inbox driver for virtio-net; the guest tools installed by
# Configure-Windows.ps1 provide it.
[device "nic0"]
driver = "virtio-net-pci"
netdev = "net0"
# Unlike q35, "virt" has no default GPU or keyboard. ramfb is used rather than
# virtio-gpu because the firmware's virtio-gpu output freezes at the Windows
# boot manager; Windows drives either one through its basic display driver.
[device "gpu0"]
driver = "ramfb"
[device "kbd0"]
driver = "usb-kbd"
+5 -17
View File
@@ -1,5 +1,5 @@
# QEMU configuration for the Windows 11 virtual machine. The machine type is in
# windows11-amd64.ini, which QEMU reads after this file.
# windows11-<arch>.ini, which QEMU reads after this file.
#
# run-windows11.py fills in the file path placeholders below, writes the result
# to <state dir>/qemu.ini and passes it to QEMU with -readconfig. Options that
@@ -37,27 +37,15 @@
format = "raw"
file = "${uefi_vars}"
# System disk. It is attached through IDE so that Windows can boot before the
# VirtIO storage driver is installed; the installation media of
# --install-from-iso use ide.1 to ide.3.
# System disk image; the device that exposes it (and the NIC, which is
# attached to the user-mode network "net0" that the launcher defines with
# -netdev because a config file section cannot hold more than one hostfwd) is in
# the architecture file.
[drive "system_disk"]
if = "none"
format = "qcow2"
file = "${disk_image}"
[device "system_disk-dev"]
driver = "ide-hd"
drive = "system_disk"
bus = "ide.0"
bootindex = "1"
# The NIC is attached to the user-mode network "net0", which the launcher
# defines with -netdev because a config file section cannot hold more than one
# hostfwd (Remote Desktop and SSH are both forwarded to the host).
[device "nic0"]
driver = "e1000e"
netdev = "net0"
# Host/guest clipboard integration through the SPICE vdagent channel.
[device "virtio_serial"]
driver = "virtio-serial-pci"