Maybe it was accurate in this past but the current Quickget release
suggest that only Fedora Server has arm64 support. That's not the case.
In fact checking the `releases.json` file that `quickget` already uses
shows us that every edition other than Onyx supports arm64.
This PR makes that change.
The command ran to check this info was:
```bash
curl -sL https://getfedora.org/releases.json | jq -r
'group_by(.variant)[] | "\(.[0].variant): \(map(.arch) | unique |
join(", "))"'
COSMIC-Atomic: aarch64, x86_64
Cloud: aarch64, ppc64le, s390x, x86_64
Container: aarch64, ppc64le, s390x, x86_64
Everything: aarch64, ppc64le, s390x, x86_64
IoT: aarch64, ppc64le, s390x, x86_64
KDE: aarch64, ppc64le, x86_64
Kinoite: aarch64, ppc64le, x86_64
Labs: aarch64, x86_64
Onyx: x86_64
Sericea: aarch64, x86_64
Server: aarch64, ppc64le, s390x, x86_64
Silverblue: aarch64, ppc64le, x86_64
Spins: aarch64, x86_64
Workstation: aarch64, ppc64le, x86_64
chore: align doc submodule commit
docs(quickget): adapt whitespace in help_message()
needed in manual page regeneration to retain filtering of needed lines
currently omits the new flag for --disable-unattended
Signed-off-by: Phil Clifford <philip.clifford@gmail.com>
- Set default --display to 'gtk' instead of 'sdl'
- Add runtime check to fall back to 'sdl' when QEMU lacks GTK support
and print a note to the user
- Update usage text to show 'gtk' as the default display option
Signed-off-by: Martin Wimpress <martin@wimpress.org>
- Remove noisy "Serial: (off)" echo and add explanatory comment
- Stop forcing serial="${serial:-socket}" early; leave unset and set
per-guest after config
- Set serial="none" for macOS and Windows guests, otherwise default to
"socket"
- Reduce terminal clutter for guests that do not emit useful serial
output
- Document how to override: use --serial or set serial=socket in the VM
.conf
Signed-off-by: Martin Wimpress <martin@wimpress.org>
- Replace previous VGA default with vmware-svga to align with macOS
native VMware display driver and OSX-KVM expectations
- Improve resolution handling and mouse integration for macOS VMs
Signed-off-by: Martin Wimpress <martin@wimpress.org>
- Pin OSX-KVM URLs to commit da4b23b5e92c5b939568700034367e8b7649fe90
- Use pinned URLs for OpenCore.qcow2, OVMF_CODE.fd and
OVMF_VARS-1920x1080.fd
- Prevent breakage after upstream removed OVMF_CODE.fd from master (26
Jan 2026)
Signed-off-by: Martin Wimpress <martin@wimpress.org>
- Use Unix sockets for local --display spice to allow GL/VirGL
acceleration
- Use egl-headless backend to provide GL context for virtio-gpu-gl; do
not
enable SPICE gl=on (avoids blocking QEMU main loop)
- Add -vga none for SPICE modes to prevent duplicate scanouts
- Update start_viewer() to support spice+unix:// and
spice://localhost:port
connection modes for spicy and remote-viewer clients
- Clean up Unix socket (.sock) files alongside existing .spice file
cleanup
Provides local GL-accelerated guest 3D via VirGL while keeping remote
access
over TCP unchanged.
Signed-off-by: Martin Wimpress <martin@wimpress.org>
- Reorder and refine Windows mapping: map none|spice -> qxl-vga;
cocoa|gtk|sdl|spice-app -> virtio-vga
- Remove the VGA variable and the forced '-vga none' from VIDEO
composition
- Remove unused VGA initialization in vm_boot
Signed-off-by: Martin Wimpress <martin@wimpress.org>
- Change HOST_CPU_VENDOR lookup to use '^Vendor ID' when parsing
/proc/cpuinfo
- Ensures correct CPU vendor detection on systems that label the field
as 'Vendor ID' instead of 'Vendor'
Fixes#1845
Signed-off-by: Martin Wimpress <martin@wimpress.org>
- Remove integrated OpenCore creation/extraction code from quickget:
require_mtools/sgdisk helpers, create_macos_disk_with_opencore,
download_opencore and related logic
- Simplify quickemu macOS boot flow to expect a separate OpenCore.qcow2
or ESP.qcow2; streamline device/drive argument construction
- Remove mtools and gptfdisk from devshell.nix and package.nix
- Always download OpenCore.qcow2 via legacy method and update status
messages
Signed-off-by: Martin Wimpress <martin@wimpress.org>
- Display supported architectures when running ./quickget <os> (shows
"Archs: amd64 arm64")
- Add get_supported_archs() helper to enumerate available architectures
- Add arch_suffix() helper and append architecture suffix to VM
dir/config names
for foreign architectures (e.g., alpine-v3.23-arm64/)
- Add NORMALISED_HOST_ARCH variable to detect foreign vs native
architecture
- Include arch="x86_64" or arch="aarch64" in config files for foreign
downloads
- Replace process checks (pidof pipewire / pidof pulseaudio) with socket
existence checks to determine functional audio services.
- PipeWire detection checks $PIPEWIRE_REMOTE or
$XDG_RUNTIME_DIR/pipewire-0.
- PulseAudio detection checks $PULSE_SERVER or
$XDG_RUNTIME_DIR/pulse/native.
- Change default audio driver from pa to alsa as a safer fallback on
headless hosts.
- Set detection priority: PipeWire (if QEMU >= 8.1) → PulseAudio → ALSA.
- Reason: a listening socket indicates a working service; pidof can be
misleading on headless servers and caused QEMU "Failed to initialize
PW context" errors.
Fixes#1838
Signed-off-by: Martin Wimpress <martin@wimpress.org>
- add cache=writeback and aio=threads to DRIVE_OPTIMISATIONS
- retain existing optimisations: discard=unmap,detect-zeroes=unmap
- improve write performance (host writeback caching) and async I/O
parallelism via thread-based AIO
- follows Proxmox/libvirt QEMU disk best practices; researched for macOS
but applies to all guests
Signed-off-by: Martin Wimpress <martin@wimpress.org>
- Add os_info() case entry with a description for Azure Linux
- Add Azure Linux to os_support() list
- Implement releases_azurelinux() returning "3.0"
- Implement arch_azurelinux() returning "amd64 arm64"
- Implement get_azurelinux() using stable aka.ms download URLs:
- https://aka.ms/azurelinux-3.0-x86_64.iso
- https://aka.ms/azurelinux-3.0-aarch64.isoFixes#1459
Signed-off-by: Martin Wimpress <martin@wimpress.org>
- Replace builtins.match with builtins.split for version extraction
- Previous regex with .* patterns caused catastrophic backtracking on large files (~2800 lines)
- builtins.split avoids full-string regex matching and is more efficient
Fixes: Nix build CI failure
- Replace flake.nix nixpkgs URL with github:nixos/nixpkgs/nixos-unstable
- Update flake.lock to new locked rev, narHash and github type
No functional changes to scripts; resolves dependency refresh for Nix flakes.,
Add exit 1 after curl failure handling in web_get
- Exit immediately when a download via curl fails
- Prevent continuing to build invalid VM configs after failed download
Fixes#1625
- Set usb_controller="xhci" in display_param_check() when BRAILLE is enabled.
- Braille devices are USB 1.1 (full-speed); EHCI only handles USB 2.0/3.0,
which causes speed mismatch warnings and prevents braille devices from working.
Fixes#730
- Raise global minimum QEMU version from 6.0.0 to 6.1.0.
- The option -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off used for macOS guests
is only available in QEMU 6.1.0 and later; prefer raising the global requirement rather
than adding per-flag conditionals.
- Update version check and error message in quickemu.
BREAKING CHANGE: Require QEMU 6.1.0; older QEMU will fail the version check.
- Pass vmware-cpuid-freq=on to -cpu on Intel hosts to enable VMware TSC
frequency reporting and improve macOS timing
- Add ICH9-LPC flag to disable ACPI PCI hotplug bridge support to avoid
macOS PCI hotplug issues (required for QEMU 6.1+)
Signed-off-by: Martin Wimpress <martin@wimpress.org>
- Split macOS sound card logic by OS version:
- Use virtio-sound-pci for macOS 12+ (Monterey and newer)
- Use ich9-intel-hda for Big Sur
- Keep intel-hda for earlier macOS releases
- Add virtio-sound-pci case to configure_audio() to pair the device with
existing audiodev backends (PulseAudio, PipeWire, ALSA, CoreAudio)
- Update help text to include virtio-sound-pci as an allowed sound card
option
- Add virtio-sound-pci to allowed sound cards in
sound_card_param_check()
VoodooHDA injected via OpenCore stopped working from macOS 11.3+
onwards and usb-audio proved unreliable for Big Sur+. virtio-sound-pci
works natively on macOS 12+ without kexts and fixes guest audio for
affected versions.
Fixes#1642
Signed-off-by: Martin Wimpress <martin@wimpress.org>
- Add TCG-specific runtime optimisations in vm_boot for
cross-architecture VMs
- Detect host RAM and set tb-size to 512 for hosts with >=16GB,
otherwise 256
- Append -accel tcg,tb-size=${TCG_TB_SIZE},thread=multi to QEMU args
- Improve TCG translation cache behaviour and SMP performance for TCG
guests
Signed-off-by: Martin Wimpress <martin@wimpress.org>
- Update flake.nix and package.nix to refresh package definitions and
pins
- Refresh devshell.nix to include updated development dependencies
- Adjust debian/control metadata to match packaging and dependency
changes
- Align packaging metadata between Nix and Debian to improve
reproducibility
Signed-off-by: Martin Wimpress <martin@wimpress.org>