7 Commits
Author SHA1 Message Date
GuofangandClaude Sonnet 5.5 78f6fd424b Read port forwards from per-VM forwards.conf files
A QEMU config file section cannot hold more than one hostfwd entry, so
the forwards move out of the ini files into qemu/<vm>/forwards.conf, one
"LABEL HOST_PORT GUEST_PORT" rule per line. The new vmforwards.py parses
them, skips rules whose host port is taken and builds the -netdev
argument, which every launcher now passes instead of relying on a
netdev section in the ini or on -nic.

The ini files move to qemu/<vm>/config.ini and qemu/<vm>/<os>-<arch>.ini.
The *_SSH_PORT / *_RDP_PORT variables and --rdp-port / --ssh-port still
replace the host port of the SSH and RDP rules.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-29 14:55:30 +08:00
GuofangandClaude Sonnet 5.5 07a2c6db3e Skip kernel-irqchip=off when installing with --install-from-img
Move the setting from qemu/windows11-darwin-arm64.ini to a -machine option
that run-windows11.py adds on macOS arm64 unless --install-from-img is given.
The workaround is only needed for usb-storage, which the NVMe install disk
does not use, and Setup hangs with the emulated interrupt controller.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-29 13:33:06 +08:00
guofangandClaude Sonnet 5.5 b073d87a56 Disable the HVF in-kernel irqchip for Windows 11 on macOS and document why
With the HVF in-kernel GICv3, QEMU's usb-storage races on the status packet
and Windows Setup stalls 10 s after every burst of reads when installing from
the ISO (utmapp/UTM#7970). Use the emulated interrupt controller until
upstream QEMU gets the fix from the UTM fork. Record the investigation in
windows11-arm64-install-speed.md.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-23 23:17:55 +08:00
GuofangandClaude Sonnet 5.5 6f2440b710 Drop .install from the Windows install disk image name
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 09:28:55 +08:00
GuofangandClaude Sonnet 5.5 361ecd977a Pick the Arm64 rustup and Qt builds on Arm64 Windows
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-18 15:42:35 +08:00
GuofangandClaude Sonnet 5.5 b26286c820 Make --install-from-img take no file; derive it from the ISO path
--install-from-img now works like --install-from-iso: the installation
media is the ISO path (WIN11_VM_INSTALL_ISO or the downloader's) with
.install.img in place of .iso, which is where
build-windows-install-disk.sh writes it by default. Drop the FILE argument
and WIN11_VM_INSTALL_IMG.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-18 14:24:09 +08:00
guofangandClaude Sonnet 5.5 1732ec39d0 Install Windows 11 from a disk image with --install-from-img
Reading the installation files through QEMU's emulated USB CD-ROM runs at a
few MB/s on macOS. --install-from-img FILE (or WIN11_VM_INSTALL_IMG) attaches
an installation disk image built by vm-images/build-windows-install-disk.sh as
an NVMe disk instead, which is read about 15 times faster. The image is
attached with snapshot=on because NVMe cannot report write protection and
Windows fails on a read-only volume.

Add windows11-arm64-install-speed.md with the analysis and measurements.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-17 17:02:58 +08:00