Quickemu 4.9.9 Release Notes
Cross Architecture Support
Full ARM64 (aarch64) guest support - quickemu now supports running ARM64 virtual machines on both x86_64 and ARM64 hosts. The host architecture is automatically detected, and you can override it with the --arch flag when downloading OS images.
- Architecture-aware filenames and output for downloaded images
- Per-distro architecture validation - quickget only lists architectures each OS actually supports
--check-all-archflag to test both amd64 and arm64 downloads for a given OS- Correct architecture selection for Fedora and Ubuntu Server ISOs
- ARM64 support for Debian with proper edition validation
Performance Improvements
Significant disk I/O and emulation performance enhancements:
- Improved qcow2 disk performance - enables TRIM/discard and detect-zeroes, reducing disk space usage and improving SSD longevity
- TCG translation cache tuning - larger cache with multithreaded TCG for faster emulation when KVM is unavailable
- Better disk I/O defaults - optimised cache and async I/O settings for improved throughput
SPICE Improvements
Enhanced SPICE display support, particularly beneficial for Windows guests:
- SPICE display reconnection - reconnect to running VM displays without restarting
- Local SPICE over Unix sockets - more secure, lower-latency connections when using VirGL
- These changes improve the remote desktop experience for Windows and Linux guests
Display & Graphics
- GTK display backend preferred with automatic fallback to SDL if GTK is unavailable
- Simplified display device selection - removed redundant
-vga noneconfiguration - OpenGL improvements - GL now disabled automatically when display backend is none, enabled on macOS (cocoa) with virtio GL preference
macOS Guest Improvements
- Better display support - uses vmware-svga for improved macOS graphics compatibility
- TSC and timing fixes - proper TSC flag detection for AMD CPUs, vmware TSC enabled, unstable TSC warnings for macOS Ventura+ on AMD
- Sound card compatibility - selects correct sound card for macOS guests, prevents default sound card overriding compatible selection
- Serial port disabled by default for macOS and Windows
- OpenCore and OVMF downloads pinned to last-known-good commit for stability
- ACPI PCI hotplug disabled for macOS to prevent issues
New OS Support
- Azure Linux 3.0 - Microsoft's container-optimised Linux distribution now available
- Ubuntu Desktop ARM64 - support for Ubuntu 25.10+ ARM64 desktop images
Distro Fixes
Maintained up-to-date download support across the OS catalog:
- Zorin OS - updated download method and available editions
- Rocky Linux - restored dynamic release discovery, fixed 10.0 DVD ISO naming
- Parrot Security - updated releases and editions
- Garuda Linux - updated available editions
- MX Linux - fixed Xfce ISO naming
- Gentoo, Linux Mint, LMDE - switched to mirrors.kernel.org for reliability
- Artix Linux - fixed edition parsing
- Solus - handled Xfce beta naming for older releases
- PCLinuxOS - dynamic edition release discovery
- Guix - updated to 1.5.0 and 1.4.0
- Debian - only list archive versions with live images available
- Removed discontinued distros - Athena OS (no longer updated), VX Linux (website down), KDE Neon developer edition
Infrastructure
- QEMU 6.1.0 minimum version now required
- Updated Nix flakes to nixos-unstable
- GitHub Actions artifact handling improvements
- Enhanced test-quickget CI with better sorting and summary formatting
- ShellCheck compliance improvements throughout
- macOS devshell improvements - removed brew dependencies, enabled EFI boot with patched OVMF paths
What's Changed
- fix(quickemu): conditionalise KVM-specific CPU flags for Windows by @flexiondotorg in #1805
- fix(quickget): add hash verification for Archcraft, KolibriOS, Mabox by @flexiondotorg in #1806
- fix(quickget): resize Batocera image for GPT expansion by @flexiondotorg in #1807
- fix(quickemu): improve TSC flag detection for macOS on AMD CPUs by @flexiondotorg in #1808
- fix(devshell): enable EFI boot on macOS by patching OVMF paths by @flexiondotorg in #1809
- fix(quickemu): skip x86 CPU feature checks on Apple Silicon by @flexiondotorg in #1810
- feat(quickget): integrate OpenCore into macOS disk image by default by @flexiondotorg in #1811
- feat(quickemu): enable GL on macOS (cocoa) and prefer virtio GL by @flexiondotorg in #1812
- fix(quickemu): accept HygonGenuine CPUs and skip x86 checks on ARM hosts by @flexiondotorg in #1813
- fix(quickget): support algorithm-prefixed hashes and b2sum by @flexiondotorg in #1814
- feat(quickemu): warn on unstable TSC for macOS Ventura+ on AMD by @flexiondotorg in #1815
- feat(quickemu): add ARM64 (aarch64) guest support by @flexiondotorg in #1290
- feat(quickemu): add CPU flag management with deduplication by @flexiondotorg in #1816
- fix(quickemu): enable pflash secure property only when secureboot on by @flexiondotorg in #1817
- fix(quickemu): set xres/yres only for devices that support them by @flexiondotorg in #1818
- feat(quickemu): derive SHARE_PATH from QEMU binary by @flexiondotorg in #1819
- feat(quickget): add ARM64 (aarch64) download support by @flexiondotorg in #1820
- refactor: quote expansions and add ShellCheck directive by @flexiondotorg in #1821
- docs(quickemu): clarify CPU, display and VM comments by @flexiondotorg in #1822
- build(packaging): sync Nix flakes, devshell and Debian packaging by @flexiondotorg in #1823
- perf(quickemu): tune TCG translation cache and enable multithreaded TCG by @flexiondotorg in #1824
- perf(quickemu): enable TRIM/discard and detect-zeroes for qcow2 drives by @flexiondotorg in #1825
- fix(quickemu): select correct sound card for macOS guests by @flexiondotorg in #1826
- fix(quickemu): enable vmware TSC and disable ACPI PCI hotplug for macOS by @flexiondotorg in #1827
- fix(quickemu): enable xhci when braille devices used by @flexiondotorg in #1829
- fix(quickget): exit on curl failure in web_get by @flexiondotorg in #1830
- fix: restore rockylinux dynamic releases by @philclifford in #1735
- fix: adjust rockylinux 10.0 dvd by @philclifford in #1833
- build(flake): update nixpkgs to nixos-unstable by @flexiondotorg in #1832
- fix(quickemu): disable GL when display backend is none by @flexiondotorg in #1834
- feat(quickget): add Azure Linux (3.0) support by @flexiondotorg in #1835
- perf(quickemu): improve disk I/O defaults (cache,aio) by @flexiondotorg in #1837
- fix(quickemu): detect audio backends via sockets, not pidof by @flexiondotorg in #1839
- feat(quickget): add architecture-aware output and filenames by @flexiondotorg in #1840
- fix(quickemu): only add 'topoext' cpu flag for x86_64 AMD guests by @flexiondotorg in #1842
- fix(macos): prevent default sound card overriding the compatible selection by @flexiondotorg in #1843
- fix(quickemu): remove integrated OpenCore support, require OpenCore.qcow2 by @flexiondotorg in #1844
- fix(quickemu): read "Vendor ID" for CPU vendor detection by @flexiondotorg in #1846
- feat(quickemu): enable SPICE display reconnection for running VMs by @flexiondotorg in #1847
- build(deps): bump actions/download-artifact from 4 to 7 by @dependabot[bot] in #1849
- build(deps): bump actions/upload-artifact from 4 to 6 by @dependabot[bot] in #1850
- fix(quickemu): simplify display device selection and remove -vga none by @flexiondotorg in #1848
- feat(quickemu): enable local SPICE over Unix sockets with VirGL by @flexiondotorg in #1851
- fix(quickget): pin macOS OpenCore and OVMF downloads to last-good commit by @flexiondotorg in #1854
- fix(quickemu): use vmware-svga display for macOS guests by @flexiondotorg in #1855
- fix(quickemu): disable serial by default for macOS and Windows by @flexiondotorg in #1856
- feat(quickemu): prefer GTK display backend and add GTK->SDL fallback by @flexiondotorg in #1857
- chore: update flake.lock by @github-actions[bot] in #1859
- docs: align manual pages with release 4.9.8 by @philclifford in #1858
Full Changelog: 4.9.8...4.9.9