Commit Graph

631 Commits

Author SHA1 Message Date
Martin Wimpress 5090385dbd fix(quickemu): conditionalise KVM-specific CPU flags for Windows
Fixes #1731
2026-01-24 01:02:49 +00:00
Martin Wimpress 5ef6d1ffeb
chore: bump version to 4.9.9 2026-01-24 00:33:33 +00:00
Martin Wimpress 848ed99ef6
feat(quickget): add macOS Tahoe support and update board IDs. fixes #1731 2026-01-24 00:04:07 +00:00
Martin Wimpress d83db9843b fix(public_dir): respect public_dir setting when loading VM
- Read public_dir from the sourced VM config into PUBLIC
- Preserve existing PUBLIC when public_dir is not set
- Prevent PUBLIC being empty when a VM specifies public_dir

Fixes #1634

Signed-off-by: Martin Wimpress <martin@wimpress.org>
2026-01-23 17:56:32 +00:00
Martin Wimpress 59f908ea6d refactor(firmware): use od to read qcow2 magic bytes
- Replace head-based check with od -tx1 to read first 4 bytes as hex
- Compare hex string to 514649fb to detect qcow2 reliably
- Avoid null-byte warnings from command substitution; keep same
true/false output

Fixes #1796

Signed-off-by: Martin Wimpress <martin@wimpress.org>
2026-01-23 17:26:53 +00:00
Martin Wimpress cfc6856e30 fix(bios): set machine type to pc for legacy BIOS boot
Fixes #1764
Fixes #1755

Signed-off-by: Martin Wimpress <martin@wimpress.org>
2026-01-23 16:03:37 +00:00
Martin Wimpress 4d334454de fix(windows): enforce minimum 2 CPU cores for Windows 11 guests
Fixes #1423

Signed-off-by: Martin Wimpress <martin@wimpress.org>
2026-01-23 15:25:07 +00:00
Ivan Tolmachev 1878a308e0 feat: add support for CPU pinning 2026-01-23 08:02:18 +00:00
Phil Clifford 49f71fff63 chore: pacify shellcheck
address an SC2001 to remove unwanted 'echo | sed'  pipeline
2026-01-23 07:38:52 +00:00
TheMuso a6273247dc
fix: Use the correct ethernet device for bridged networking (#1588)
* fix: Use the correct ethernet device for bridged networking (#1588)
* fix: Use virtio-net-pci everywhere

Works for NAT and bridged networking.
2025-10-20 13:10:25 +01:00
Jeremy Fleischman 68e1eb5382 fix: don't crash if public dir does not exist
On my machine, I do not have a `~/Public` directory, which causes
quickqemu to spit out a warning and then crash:

```console
$ quickemu --vm vm.conf
 - WARNING! Public directory: '/home/jeremy/Public' doesn't exist!
Quickemu 4.9.7 using /nix/store/nk59c14nwf79bafmrsnnhndmpnrlplrv-qemu-10.1.0/bin/qemu-system-x86_64 v10.1.0
...
 - 9P:       On guest: sudo mount -t 9p -o trans=virtio,version=9p2000.L,msize=104857600  ~/Public
...
 - Process:  ERROR! Failed to start /nix/store/va3md6gv82fqf7pxbfxd0cd5gfnmnz9f-vm.conf as va3md6gv82fqf7pxbfxd0cd5gfnmnz9f-vm

qemu-system-x86_64: -netdev user,hostname=va3md6gv82fqf7pxbfxd0cd5gfnmnz9f-vm,hostfwd=tcp::22220-:22,smb=/home/jeremy/Public,id=nic: Error accessing shared directory '/home/jeremy/Public': No such file or directory
```

Here's my `vm.conf`. Note how I'm not asking for a public dir:

```
iso="/nix/store/q3j8357dz3kmyjv84wfj4pyn20b65h9l-nixos-minimal-25.11pre-git-x86_64-linux.iso/iso/nixos-minimal-25.11pre-git-x86_64-linux.iso"
```
2025-10-17 21:51:45 +01:00
Alex Haydock aaf00ca76a
fix: Support 4M qcow2 images (#1749)
* Initial changes to support qcow2 firmware
2025-10-17 21:42:24 +01:00
spameier f25205f451 fix(quickemu): correctly handle version 10.0.0 of QEMU 2025-05-01 19:17:29 +00:00
TheMuso 910d35f80c
fix: Use the pcnet ethernet device for FreeDOS (#1587)
FreeDOS does ship the Crynwr packet driver package, which does contain an
RTL8139 driver. However, you have to install the package after installing
FreeDOS, even if you performed a full install. It also seems to lock up for
me when attempting to load it.

The PCNet packet driver on the other hand, is installed with a full FreeDOS
install, is open source, and does work, at least for me.
2025-04-12 22:30:39 +01:00
Alex Haydock 15c0003442 fix: Select OVMF_VARS file with preloaded MS Platform Keys (Debian/Ubuntu hosts) 2025-04-12 21:42:47 +01:00
Alex Haydock f01db134da fix: Select OVMF_VARS file with preloaded MS Platform Keys (Fedora/RHEL-family hosts) 2025-04-12 21:42:47 +01:00
Alex Haydock 6d5b9231d2 fix: Enable SMM for Linux guests on Linux hosts when Secure Boot is enabled 2025-04-12 21:42:47 +01:00
Phil Clifford b60ff761e7
fix: move creation of script before functions that may update it (#1577) 2025-02-01 14:11:53 -08:00
Alex Haydock 0c772d5619
fix: Check for PipeWire as well as PulseAudio before falling back to ALSA (#1565)
* fix: Check for PipeWire as well as PulseAudio before falling back to ALSA

* fix: Use PipeWire backend if available, and where QEMU version is >8.1

Co-authored-by: Liam <33645555+lj3954@users.noreply.github.com>

---------

Co-authored-by: Liam <33645555+lj3954@users.noreply.github.com>
2025-01-20 11:59:00 -08:00
debuggerx01 37190c7b3a
fix(macos): Correct version user receives from quickget; add sequoia (#1550)
* fix(macos): quickget macos sonoma download sequoia BaseSystem.dmg

* feat: Add macOS Sequoia

---------

Co-authored-by: Liam <33645555+lj3954@users.noreply.github.com>
2025-01-15 11:36:50 -06:00
Martin Wimpress c2024d2490
chore: bump version to 4.9.8 2024-12-30 13:18:23 +00:00
Martin Wimpress 2a9d455307 chore: bump version to 4.9.7 2024-12-30 12:23:26 +00:00
Liam d0ae72a251
fix: Add ArchLinux 4M OVMF paths (#1514) 2024-11-11 15:24:28 +00:00
Szorfein 70603de2a3
fix: Use ALSA on systems without a PulseAudio daemon (#1480) 2024-10-19 23:00:08 +01:00
Phil Clifford 1f0dc50194 fix: extend search for smbd 2024-08-27 10:41:42 +01:00
Gitsarry 18cdda254b fix: make function ignore_msrs_always work
With the previous version the file was never written if it not existed before, logic bug.
2024-08-27 10:38:41 +01:00
Liam 35f8e9333d fix: Use 1 as default sockets value 2024-08-27 10:37:54 +01:00
Chase Covello 070514d449
Fix: set RTC to localtime only for Windows/ReactOS/DOS and UTC for all others (#1429)
* Set RTC to localtime only for Windows/ReactOS/DOS and UTC for all other OS

Windows/ReactOS/DOS conventionally set the system RTC to local time, but Linux/UNIX/macOS use UTC. Guest systems that expect UTC and have the time zone set to local time will have the wrong system clock time at startup until they set the clock with NTP. This is especially an issue for disk images imported from or shared with another VM configuration that uses UTC for non-Windows guests.

* Removed RTC driftfix option for non-Windows/ReactOS/DOS guests

According to the QEMU man page:

    Enable driftfix (i386 targets only) if you experience time
    drift problems, specifically with Windows' ACPI HAL. This
    option will try to figure out how many timer interrupts were
    not processed by the Windows guest and will re-inject them.

This option thus seems unnecessary for other systems and may cause
performance or timekeeping issues, so enable only for
Windows/ReactOS/DOS.
2024-08-27 10:37:21 +01:00
Martin Wimpress ca8f81f7fb refactor: display socket hints based on what tools are available 2024-07-04 16:24:26 +01:00
Martin Wimpress 8cf007f8eb fix: requesting --help is not an error 2024-07-02 13:37:16 +01:00
Phil Clifford 1cf80e7d81 fix: get rounded integer RAM_HOST values 2024-07-02 02:26:41 +01:00
Luke Yelavich e18b7ed591 feat: Disable copy on write for qcow2 disk images on btrfs
According to qemu-img documentation, it is a no-op for other filesystems.
2024-06-30 13:23:33 +01:00
Luke Yelavich 5d1c8dfc4c fix: Do not set the lazy_refcounts option for raw disk images 2024-06-30 13:23:33 +01:00
Martin Wimpress 811b48cc4e fix: pass relevant arguments to Exec when creating shortcuts. close #1285 2024-06-30 13:14:58 +01:00
Martin Wimpress 52e50f9815 fix: get VM PID early so kill_vm() works reliably 2024-06-30 12:13:58 +01:00
Martin Wimpress 589f2c9a5c refactor: attempt to press any key 5 times during Window boot from CD/DVD 2024-06-30 12:06:54 +01:00
Martin Wimpress 8c10b20fb7
fix: correctly run VMs when PWD is not relative to the VM directory 2024-06-30 12:05:46 +01:00
Martin Wimpress 5e90e336fe fix(windows-server): default to e1000 network device. fixes #1315 2024-06-30 11:52:25 +01:00
Martin Wimpress 5f8c40f7ab chore: bump version to 4.9.6 2024-06-26 21:52:18 +01:00
Martin Wimpress 1c89f520f2 style: indent RAM allocation warnings/errors 2024-06-25 12:55:13 +01:00
Martin Wimpress a4860869ee style: update warnings/errors for insufficient RAM allocation 2024-06-25 11:41:24 +01:00
takase1121 3a07d353b9 feat(quickemu): allow overriding insufficient RAM error
When RAM is not specified in the config and the min RAM is not met, quickemu tells the user to override the RAM amount and exits.
If the user overrides the RAM, the script should allow the user to continue with a warning.
2024-06-25 11:13:37 +01:00
Martin Wimpress 4b30ea21f4 fix: correct typo in max_outputs conditional 2024-06-25 10:54:35 +01:00
Martin Wimpress b8aabcb892
fix: correctly check for passthrough smartcard support. close #888 (#1293) 2024-06-24 10:07:35 +01:00
Martin Wimpress 9303b73ebe fix: running quickemu and quickreport in zsh. close #1268
Due to zsh auto completion of piping to `grep [0-9]` does not work. This patch fixes this problem by quoting `"[0-9]"`.
2024-06-24 09:02:43 +01:00
Martin Joerg a7271034cf fix: don't declare SPICE as local within configure_ports. close #1240
Functionality was split across several functions in
e29173a16d, so SPICE cannot be local
anymore as it is also referenced in vm_boot.
2024-06-24 08:50:25 +01:00
Martin Wimpress 7f250ed1b0 fix: make sure all use of head and tail is portable. close #1238 2024-05-24 09:38:58 -04:00
Martin Wimpress dbe9f612fb fix: handle multiple CPU models returned via lscpu; Asahi Linux for example 2024-05-17 23:18:54 +01:00
Martin Wimpress b009e5cef5 feat: improve compatibility of macOS on non-Intel host CPUs
Adapted from https://github.com/quickemu-project/quickemu/issues/1114#issuecomment-2115516935

Tested full installs of Mojave, Catalina, Big Sur, Monterey, Ventura and Sonoma on AMD Ryzen 5950X. Performed updates post-install and installed Revolutionator.
2024-05-17 23:18:54 +01:00
Martin Wimpress 023a7355db doc: add comments about improving detection of running in a VM 2024-05-17 23:18:54 +01:00