Commit Graph

356 Commits

Author SHA1 Message Date
Martin Wimpress 66fb440359
Bump version to 2.2.9 2021-10-28 22:44:13 +01:00
Martin Wimpress 528064383b
Add support for QEMU Guest Agent 2021-10-27 22:20:57 +01:00
Martin Wimpress c5efb7d79d
Rename swtpm socket 2021-10-27 22:20:57 +01:00
Adam Fairbrother 6e851ff1c8
Added support for Bridge mode networking. (#160)
* Added support for Bridge mode networking.

added config file option "bridge"
set to a correctly configured bridge device to enable qemu-bridge-helper

* Added Docs for Bridge network feature
2021-10-27 22:07:14 +01:00
Martin Wimpress 95b5f84816
Bump version to 2.2.8 2021-10-27 15:46:37 +01:00
Martin Wimpress ea8f459977
Make shellcheck happy 2021-10-27 12:18:10 +01:00
Martin Wimpress 1421492f87
Add initial support for macOS Monterey 2021-10-27 11:56:56 +01:00
Martin Wimpress 5367286915
Unify process related status messages 2021-10-27 11:42:28 +01:00
Martin Wimpress 5c0a7885c9
Reduce wait for swtpm initialisation 2021-10-25 15:57:15 +01:00
Martin Wimpress 835ce6bce5
Minor cleanup 2021-10-25 15:42:33 +01:00
Martin Wimpress 61ac7ad809
Correct typo 2021-10-25 15:42:01 +01:00
Martin Wimpress 205023fd50
Add -display none option. Close #110
Using the -display none option will start the VM with SPICE enabled but no display attached. The .ports file in the VM directory can be used to lookup the SSH and SPICE ports used by the VM.
2021-10-25 15:37:17 +01:00
Martin Wimpress 0567229405
Fix VMNAME 2021-10-25 15:14:59 +01:00
Martin Wimpress ed2ba41cb5
Bump version to 2.2.7 2021-10-25 14:38:33 +01:00
Martin Wimpress c6659a5b77
Fix shortcuts. Close #141 2021-10-25 14:32:19 +01:00
Martin Wimpress 33adadc988
Make shellcheck happy 2021-10-25 14:31:45 +01:00
Martin Wimpress 3257768677
Derive the absolute VMPATH 2021-10-25 14:31:07 +01:00
Martin Wimpress 91e7e18955
Add support for virtio-vga-gl on QEMU 6.1 and newer. Close #107 2021-10-25 14:03:59 +01:00
Martin Wimpress 4003144cf6
Add ports file. Close #156 2021-10-25 13:40:35 +01:00
Martin Wimpress 5c53dec449
Increase disk_size for macOS and display MSR alerts more often. Close #153 2021-10-25 12:54:41 +01:00
Martin Wimpress db855be6ed
Fallback to /etc/os-release if lsb_release is not available 2021-10-25 11:17:32 +01:00
Martin Wimpress 23e3da40e3
Remove erroneous EFI_VARS references 2021-10-25 11:17:32 +01:00
Martin Wimpress 0598fb3321
Make sure Legacy boot is in legacy mode 2021-10-25 11:17:32 +01:00
Martin Wimpress 145dc472af
Show full $EFI_CODE path in boot status 2021-10-25 11:17:32 +01:00
Martin Wimpress 207ebde501
Remove test stub 2021-10-25 11:17:32 +01:00
Martin Wimpress 44673e94c6
Add guards for $EFI_CODE and $EFI_VARS
Make sure that $EFI_VARS references an actual writable file.

Check if $EFI_CODE reference a symlink, if so resolve the the real file.
2021-10-25 11:17:32 +01:00
Martin Wimpress ca03a4dada
If EFI boot was requested an no EFI firmware is available, hard stop. 2021-10-25 11:17:32 +01:00
Martin Wimpress 444616022e
Improve error message when no SecureBoot firmware was found. 2021-10-25 11:17:32 +01:00
Martin Wimpress 7a0cf72213
Add reference for Fedora 2021-10-25 11:17:32 +01:00
Martin Wimpress 44bc5faec0
Use the paths to actual firmware on Fedora, rather than to symlinks.
Useful reference in this comment: https://bugzilla.redhat.com/show_bug.cgi?id=1929357#c5
2021-10-25 11:17:32 +01:00
Martin Wimpress 9b96f899ad
Make sure cfi.pflash01always has the secure property set 2021-10-25 11:17:32 +01:00
Martin Wimpress b9f90d12c3
Disable Suspend to RAM (S3) if SecureBoot or SMM are enabled 2021-10-25 11:17:32 +01:00
Martin Wimpress a4eddaa9e5
Add SMM support, enabled by default for Windows guests 2021-10-25 11:17:32 +01:00
Martin Wimpress b6db417b81
Refactor OVMF detection and add SecureBoot support
Add 'secureboot="on"' to a VM configuration to enable SecureBoot.
2021-10-25 11:16:35 +01:00
Martin Wimpress aeb2a64720
Add efi_vars() for copying EFI variable store templates to the VM dir 2021-10-25 11:16:35 +01:00
Martin Wimpress b8d6b02796
Refactor swtpm support to catch when it is missing
Also adds the swtpm laucher to the debug shell script.
2021-10-25 11:16:35 +01:00
Jed Spraul 8bb9003f5a Halt unless bash 4 or newer 2021-10-21 21:28:13 +01:00
Martin Wimpress 4634212f65
Bump version to 2.2.6 2021-10-21 01:47:03 +01:00
Martin Wimpress 3c2249934a
Disable all disk tuning, for the sake of compatibility. Close #98 2021-10-21 00:33:01 +01:00
Martin Wimpress 32da324717 Correct typo in --ignore-msrs-always argument 2021-10-21 00:28:03 +01:00
Martin Wimpress 936f79590c Minor comment edit 2021-10-21 00:28:03 +01:00
Martin Wimpress b915d8d797 Only display MSR alerts when required 2021-10-21 00:28:03 +01:00
Martin Wimpress a94541c5aa Order the argument parser 2021-10-21 00:28:03 +01:00
Martin Wimpress d052d913f9 Order the usage 2021-10-21 00:28:03 +01:00
Martin Wimpress acf6ef32fa Add --ignore-msrs-always argument 2021-10-21 00:28:03 +01:00
Martin Wimpress e493112688 Refactor ignore_msrs_alert to make in non-blocking 2021-10-21 00:28:03 +01:00
Martin Wimpress 119e4dd7ad White space clean up 2021-10-21 00:28:03 +01:00
Martin Wimpress af7348caf6
Refactor, and enable, OpenBSD support 2021-10-20 23:22:35 +01:00
Fabian Schmidt 94ecb1b3ec
added openbsd 7 support (#129)
Co-authored-by: Fabian Schmidt <fabian85@protonmail.com>
2021-10-20 22:07:07 +01:00
Phil Clifford 78b9a3f7f2
Politely offer to set ignore_msrs (#134)
* attempt to offer appropriate setting of ignore_msrs if needed

* Removed done TODO

* Revert "Removed done TODO"
to resolve merge conflict since all TODOS removed upstream
This reverts commit eb18fcf82932489534e3c9a244e124740dfcdf01.
2021-10-20 01:22:45 +01:00
Martin Wimpress 4eb11caa10
Store the pid of the VM 2021-10-19 20:49:57 +01:00
Martin Wimpress 380451df4c
Clean up status messages 2021-10-19 02:17:23 +01:00
Martin Wimpress fd901a987c Disable all network interfaces during Windows install. Close #115
During the Windows install network interfaces are completely disabled! This is to allow those users who want to create local accounts to do so.

A side affect is that the first time Windows boots with the QEMU network enabled it will blue screen, 
automatically restart and then boot normally with fully functioning networking.,
2021-10-19 01:35:25 +01:00
Martin Wimpress 45457c8808 Replace the use of which with command -v 2021-10-18 16:35:48 +01:00
Martin Wimpress d785c89a38 Add distro, kernel and CPU details to start up messages. Close #96 2021-10-18 16:26:48 +01:00
Martin Wimpress c3b3f4ee86 Get partial USB SPICE redirection working on macOS. Close #120 2021-10-18 15:33:06 +01:00
Martin Wimpress 2009ffc103
Bump version to 2.2.5 2021-10-16 11:33:57 +01:00
Yannick Mauray 448e8885e7 Unable to start a linux VM.
```
qemu-system-x86_64: -device virtio-vga,xres=,yres=: Parameter 'xres' expects uint64
```

This fixes a typo in the name of the variable used to determine a sane resolution for linux guests.
2021-10-16 10:58:56 +01:00
Martin Wimpress f75c7f402b
Correct status message for killing VMs 2021-10-15 02:46:15 +01:00
Martin Wimpress cc397fc088
Only try to coerce the screen resolution of Linux guests
This feature was originally developed for Linux guests. macOS doesn't honur it and not Windows automatically installs all the required drivers it is not required for Windows either.
2021-10-15 02:44:41 +01:00
Martin Wimpress f3659e760b
Move 9p mount code outside of the SPICE conditional. Close #85 2021-10-13 04:16:46 +01:00
Martin Wimpress 9de5ea19cf
Correct merge error. Close #83 2021-10-13 03:31:10 +01:00
navycatt 018fb1c454
Improvments of port scanning. (#79)
* Fix port scan. Don't send a new line character when scanning.

* Fix port scanning. Possible infinite loop when all range of ports is busy.
Changed port scanning scheme from random to linear because this is the same faster but more predictable.

* Fix port scan. Don't send a new line character when scanning.
echo -n "" for clarity instead of cat < /dev/null

Co-authored-by: navycat <navycat@ultrasparc>
2021-10-09 22:27:47 +01:00
Martin Wimpress d1afc10857
Detect insufficient RAM for Windows and macOS Close #78
Also changes the RAM allocation for the VM to better attempt a working configuration.
2021-10-09 16:51:30 +01:00
Martin Wimpress 5ad176155f
Actually honour requested disk_size 2021-10-09 16:26:06 +01:00
Martin Wimpress fe86d970ec
Try to ensure PUBLIC_TAG stays under 31 chars 2021-10-09 15:42:42 +01:00
Martin Wimpress 6bc4c6202a
Make shellcheck happy 2021-10-09 15:41:53 +01:00
Martin Wimpress 4afaf9b21d
l10n for ~/Public 2021-10-09 15:41:13 +01:00
Martin Wimpress 0d5f393b70
Look for OVMF firmware in common locations. Close #74 Close #75 2021-10-09 15:28:26 +01:00
Martin Wimpress d2d9bc1f1a
Fix deleting EFI VARS when VM deletion is requested 2021-10-09 15:27:06 +01:00
Martin Wimpress 6d926d66e9
Fix missing ] 2021-10-09 15:22:18 +01:00
Martin Wimpress 6f49efee2f
Correct Samba sharing to use ${PUBLIC} 2021-10-09 14:34:22 +01:00
Martin Wimpress 45b09c1f5e
Bump version to 2.2.4 2021-10-09 14:32:30 +01:00
Martin Wimpress fd52be1dfb
Do not expose any file sharing if ${PUBLIC} is not set. 2021-10-09 14:32:06 +01:00
Martin Wimpress ec89223b22
Reinstate sharing ~/Public is smbd is available. Close #76
This is a "bonus item". Samba, specifically smbd, is not a hard requirement of Quickemu, but if present quickemu will enable Samba file sharing.
2021-10-09 14:30:21 +01:00
Martin Wimpress ca9c01eec2
Bump version to 2.2.3 2021-10-08 15:09:17 +01:00
Martin Tournoij 061c454a82 Deal with systems without xdg-user-dir better
My system doesn't have xdg-user-dir, and shows the following errors on
startup:

	./quickemu: line 828: xdg-user-dir: command not found
	mkdir: cannot create directory '': No such file or directory
	basename: missing operand
	Try 'basename --help' for more information.

	Usage
	quickemu --vm ubuntu.conf

	You can also pass optional parameters
	--delete                : Delete the disk image.
	--display               : Select display backend. 'sdl' (default), 'gtk' or 'spice'
	--shortcut              : Create a desktop shortcut
	--snapshot apply <tag>  : Apply/restore a snapshot.
	--snapshot create <tag> : Create a snapshot.
	--snapshot delete <tag> : Delete a snapshot.
	--snapshot info         : Show disk/snapshot info.
	--status-quo            : Do not commit any changes to disk/snapshot.
	--fullscreen            : Starts VM in full screen mode (Ctl+Alt+f to exit)
	--screen <screen>       : Use specified screen to determine the window size.
	--version               : Print version

From a quick look it should still function correctly, but better to deal
with this case explicitly.

It's only used to get the PUBLIC, which is optional anyway. If I install
it then it just returns ~, at which point it's set to "" anyway.

I also removed it from the list of "requirements" for this reason.

This also deals with an edge case I happened to notice: "xdg-user-dir
PUBLICSHARE" returns "/home/martin/" on my system, whereas $HOME is
"/home/martin", so the equality check fails. This is arguable a problem
in xdg-user-dir, but better to fix it here. This only deals with a
single slash (multiple slashes is harder in bash), which should be
sufficient.
2021-10-08 14:50:45 +01:00
Edward Betts 6332e037a0 Correct a spelling mistake 2021-10-08 14:48:48 +01:00
Martin Wimpress d7e2407bc9
Correct typo 2021-10-08 02:42:08 +01:00
Martin Wimpress 632f1c682c
Bump version to 2.2.2 2021-10-08 02:04:50 +01:00
Martin Wimpress d191d0da44
Add unattended configuration for Windows 10 and 11
Automates some of the install/configuration steps for Windows 10 and 11, most notably essential drivers and disk formatting.
2021-10-08 02:04:30 +01:00
Martin Wimpress 8106026fd0
Use usb-mouse instead of usb-tablet on FreeBSD 2021-10-07 21:57:22 +01:00
Martin Wimpress 4d8e619988
FreeBSD 12 and 13, like Linux, both fully support VirtIO
Treat FreeBSD like Linux for basic optimisation.
2021-10-07 20:29:47 +01:00
Martin Wimpress 5e5b68f4f4
Bump version to 2.2.1 2021-10-07 16:11:58 +01:00
Martin Wimpress d49bcb3452
Always boot macOS via OpenCore 2021-10-07 16:05:10 +01:00
Martin Wimpress 7553e77b11
Improve disk used heuristics. Disk preallocation is disabled by default (again) 2021-10-07 15:56:06 +01:00
Martin Wimpress fcc050ed82
When deleting a disk, also remove the EFI vars 2021-10-07 15:54:24 +01:00
Martin Wimpress 90669add62
Bump version to 2.2.0 2021-10-06 11:01:53 +01:00
Martin Wimpress 023185291e
Add TPM support. 2021-10-06 11:01:33 +01:00
Martin Wimpress a6847d41aa
Refactor topoext 2021-10-05 23:17:17 +01:00
Martin Wimpress 50ce992c1d
Minor clean up 2021-10-05 23:13:59 +01:00
Martin Wimpress bc0ce93b82
Add topoext for AMD CPUs to enable hyperthreading 2021-10-05 23:13:40 +01:00
Yannick Mauray ee774d2584 Fixed : problem with the generated shell script. 2021-10-05 20:09:24 +01:00
Martin Wimpress 3e49d4b154
Tidy MAC_BOOTLOADER 2021-10-05 00:17:51 +01:00
Martin Wimpress 1bce0374f4
Change $disk to $disk_size 2021-10-05 00:03:03 +01:00
Martin Wimpress 021e176026
Indentation correction 2021-10-05 00:02:21 +01:00
Martin Wimpress 9ac49a94d2
Make nested case statements easier to follow 2021-10-05 00:01:51 +01:00
Martin Wimpress 199952a13e
Replace PID in message with force kill details 2021-10-04 23:52:13 +01:00
Martin Wimpress 2fe80e1fe5
Check CPU capabilities, don't assume. 2021-10-04 23:47:37 +01:00
Martin Wimpress 0a56dea565
Add check_cpu_flag() 2021-10-04 23:46:43 +01:00
Martin Wimpress 62fb6690db
Minor refactor of macOS DISPLAY_DEVICE 2021-10-04 22:25:29 +01:00
Martin Wimpress faf38a2f5d
Refactor CPU/SMP configuration to reflect host CPU sockets and threads 2021-10-04 22:24:37 +01:00
Martin Wimpress 1c53d86004
Consolidate start up status messages 2021-10-04 22:19:37 +01:00
Martin Wimpress 9611080f50
Correct MAC_DISK_DEV 2021-10-04 22:15:15 +01:00
Martin Wimpress bd3b24ee71
Refactor DISPLAY_DEVICE for Linux guests 2021-10-04 17:50:19 +01:00
Martin Wimpress e6c7603864
Tweak DISPLAY_DEVICE based on macOS release
Do not try and coerce the screen resolution on macOS. Resolution is defined via System Preferences only on macOS. 

qxl is the display device on Catalina and Big Sur and VGA is used on Mahave and High Sierra.

bochs-display also appears to work correctly on Big Sur providing the QEMU moniotor is set to none, which Quickemu does by default.
2021-10-04 17:49:37 +01:00
Martin Wimpress 2a344f6fad
Add -no-hpet to macOS guest configurations 2021-10-04 17:35:07 +01:00
Martin Wimpress 561d04a2b5
Add macos_release VM configuration variable. Tune macOS based on release
Tune Qemu optimisations based on the macOS release, or fallback to lowest common supported options if macos_release is not specified.
2021-10-04 17:34:31 +01:00
Martin Wimpress c240a17bda
Correctly disable mixing-engine for audio output
Add a note to the README that audio is not working at all on macOS Big Sur
2021-10-04 17:29:47 +01:00
Martin Wimpress faeefcfb50
Always expose virtio-rng-pci
macOS Big Sur support virtio-rng-pci, so always expose it for simplicity as it doesn't matter if the guest OS doesn't support the device
2021-10-04 17:27:49 +01:00
Martin Wimpress 82f28a83ee
Correct disk order and boot priorities
Optimise disk performance where possible and use consistent drive ids for all boot environments.
2021-09-30 19:03:28 +01:00
Martin Wimpress d6cbcf29ee
Don't honour --status-quo when boot macOS recovery 2021-09-30 19:00:42 +01:00
Martin Wimpress 6ea4fa812f
Don't download macOS firmware/bootloader at runtime
quickget it the tool to acquire macOS with compatible firmware and bootloader. quickemu is backwards compatible with Clover.
2021-09-30 18:59:00 +01:00
Martin Wimpress 5b74011219
Assorted string tweaks. 2021-09-30 17:40:40 +01:00
Martin Wimpress e2fed9c51f
Simplify boot conditional 2021-09-29 04:11:26 +01:00
Martin Wimpress 9cb78e1fb7
Double quote "${floppy}" variable 2021-09-29 04:10:54 +01:00
Martin Wimpress 36f6c782ec
Use correct path for shortcut deletions 2021-09-29 04:10:20 +01:00
Martin Wimpress eac94b6a6f
Text output/display improvements 2021-09-29 04:09:58 +01:00
Martin Wimpress 165e615a41
Use a variable for the virtio-9p tag and alert permission fix for macOS 2021-09-29 04:09:08 +01:00
Martin Wimpress f190117a8a
Refactor EFI/Legacy BIOS logic 2021-09-29 03:32:55 +01:00
Martin Wimpress 2fa3a1319d
Correct path for shortcut creation 2021-09-29 03:31:46 +01:00
Martin Wimpress 2f992c5941
Minor text/display improvements 2021-09-29 03:31:14 +01:00
Martin Wimpress 01fca96f28
Add support for virtio-9p 2021-09-29 03:30:16 +01:00
Martin Wimpress d63a57a26f
Only expose ~/Public on the host to to guests
Not actually ~/Public but XDG PUBLICSHARE
2021-09-29 03:27:28 +01:00
Martin Wimpress bc2680c198
Replace rot13 with a tr implementation 2021-09-29 03:21:36 +01:00
Martin Wimpress 418c633546
Optimise disk performance 2021-09-28 22:48:38 +01:00
Martin Wimpress a611aa6005
Add disk preallocation support
preallocation=metadata is now the default as it offers the best size/performance.
2021-09-28 22:47:26 +01:00
Martin Wimpress ad7f4a2aef
Optimise RTC 2021-09-28 22:44:24 +01:00
Martin Wimpress d08f64a9b6
Optimise Hyper-V Enlightenments 2021-09-28 22:43:46 +01:00
Martin Wimpress e5a0bdf876
Add floppy disk image support 2021-09-28 19:01:44 +01:00
Martin Wimpress 454b639df4
Fill out SMBIOS entries 2021-09-28 17:44:02 +01:00
Martin Wimpress 7ebc66cc50
Add --version argument 2021-09-28 17:43:38 +01:00
Martin Wimpress 494d3ca22a
Fix VGA VRAM allocation 2021-09-28 17:38:06 +01:00
Martin Wimpress 232bddeed6
Optimise Hyper-V Enlightenments 2021-09-28 17:37:40 +01:00
Martin Wimpress c755e10405
Overwrite the log for each VM launch 2021-09-28 15:51:06 +01:00
Martin Wimpress 4f68841daa
Minor disk configuration refactor 2021-09-28 15:50:24 +01:00
Martin Wimpress c83b0ff7fc
Only expose org.spice-space.webdav.0 on Linux and Windows
Not supported on macOS
2021-09-28 15:49:46 +01:00
Martin Wimpress f9d1bc21a1
White space cleanup 2021-09-28 15:48:18 +01:00
Martin Wimpress ab994d3859
Only expose virtio-rng-pci to Linux and Windows
Not supported on macOS
2021-09-28 15:47:32 +01:00
Martin Wimpress 9378d6b637
Refactor video configuration
macOS now ignores any resolution coercion. Display resolution on macOS is now configured via macOS System Preferences only.
2021-09-28 15:43:18 +01:00
Martin Wimpress fc2331ae92
Switch macOS video device to qxl by default 2021-09-28 15:40:00 +01:00
Martin Wimpress 3527001973
Add $virtio_blk to disable VirtIO Block Media
Currently only required for macOS High Sierra and Mojave
2021-09-28 15:37:36 +01:00
Martin Wimpress f60e92d80e
Change $driver_iso to $fixed_iso
Compatibility for configurations using $driver_iso is preserved.
2021-09-28 15:32:12 +01:00
Martin Wimpress ac13c5875a
Do not use VirtIO Balloon on macOS 2021-09-28 15:27:02 +01:00
Martin Wimpress b4ec24fa07
Fix Hyper-V Enlightenments 2021-09-28 05:03:40 +01:00
Martin Wimpress a4cfed64e1
Minor code clean up 2021-09-28 02:14:30 +01:00
Martin Wimpress 7e04f471bc
Only connect a CD/DVD to macOS when an ISO image is presented 2021-09-28 02:13:54 +01:00
Martin Wimpress bf461eb966
Drop macOS High Sierra support
High Sierra doesn't support VirtIO Disk devices so dropping support from Quickemu.
2021-09-28 02:11:06 +01:00
Martin Wimpress eee84e0c0b
Minor clean up 2021-09-27 22:53:34 +01:00
Martin Wimpress b96587dabd
Optimise guest CPU for Windows 2021-09-27 22:53:18 +01:00