Commit Graph

190 Commits

Author SHA1 Message Date
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
Martin Wimpress 58faf5c299
Optimise guest CPU for macOS 2021-09-27 22:52:56 +01:00
Martin Wimpress 2609189dbb
Add NET_DEVICE and USB_HOST_PASSTHROUGH_CONTROLLER variables
macOS doesn't support USB3 in Qemu and needs a different network interface device from Linux and Windows.
2021-09-27 22:51:48 +01:00
Martin Wimpress 89e61c4e9e
Refactor VM configuration builder using an array or arguments
Also create a (non-executable) shell script in the VM directory which includes the last used VM configuration.
2021-09-27 22:50:06 +01:00
Martin Wimpress 0dcbe75fb5
Refactor web_get() and add progress 2021-09-27 22:47:10 +01:00
Martin Wimpress 3a86f6c2dd
Add host CPU vendor detection 2021-09-27 22:46:26 +01:00
Martin Wimpress 0237499331
Default to sane disk image size based on OS 2021-09-25 23:26:50 +01:00
Martin Wimpress 01ca84566a
Default to EFI booting 2021-09-25 23:25:18 +01:00
Martin Wimpress 5ed1904f64
Migrate macOS to OpenCore bootloader 2021-09-25 22:50:00 +01:00
Martin Wimpress a6fc0cac56
Reorder variables 2021-09-25 13:57:22 +01:00
Martin Wimpress 63c32ae0c3
Minor code corrections 2021-09-25 13:42:04 +01:00
Martin Wimpress 780735cce6
Qemu version check is now major/minor version only 2021-09-25 13:41:37 +01:00
Martin Wimpress d88ae70aa8
Make usage() match README.md 2021-09-25 13:40:52 +01:00
Martin Wimpress df4f12a3ad
Refactor enable_usb_passthrough()
USB host pass-through no longer builds a script and executes it. It will now display any required USB permission changes and halt execution until they are correct.
2021-09-25 13:38:54 +01:00
Martin Wimpress f18d8e994e
Refactor qemu launcher
Disks, network device, Smartcard and USB pass-through are exported platform specific variables then composed in a single launcher.
2021-09-25 13:35:02 +01:00
Martin Wimpress bf69f54d74
Add initial SPICE support. Close #35 Close #51 Close #53 2021-09-25 13:30:56 +01:00
Martin Wimpress 29e4922e6e
Refactor ssh port forwarding 2021-09-25 13:14:32 +01:00
Martin Wimpress f7bcd3ccf5
Refactor CPU and graphics configuration 2021-09-25 13:13:26 +01:00
Martin Wimpress f061c3a67f
Drop smbd support 2021-09-25 13:08:56 +01:00
Yannick Mauray 288d779e2c Feature : --screen option
This option allows to select which screen is used to compute the window's size. Usefull when the main monitor is not the smallest one, and the VM doesn't need to be moved around. Also mandatory to make the fullscreen mode work properly.
2021-09-24 11:25:46 +01:00
Yannick Mauray 3e0d45e660 Fixed : -full-screen option to qemu
The option is -full-screen and not --full-screen, and should not be part of the -device option
2021-09-24 11:00:47 +01:00
Yannick Mauray d083b69ec7 Fixed a typo 2021-09-21 10:27:34 +01:00
Martin Wimpress 334c137c99
Remove obsolete code. 2021-09-07 12:38:15 +01:00
Martin Wimpress 960056b9d9
Use standard VGA if an unknown guest OS is presented 2021-09-07 12:37:59 +01:00
Martin Wimpress 57f888ae4c
More shellcheck compliance. Closes #38 Closes #44 2021-09-07 12:35:33 +01:00
Martin Wimpress 5912d669b1
White space clean up 2021-09-06 22:27:06 +01:00
Martin Wimpress 5d5d925469
Remove unused arguments 2021-09-06 22:26:48 +01:00
Martin Wimpress afaad48fbf
Correct syntax for deprecated shorthand code 2021-09-06 22:25:54 +01:00
Martin Wimpress 943612589b
Add a check for minimum support Qemu version 2021-09-06 22:24:20 +01:00
Martin Wimpress 0332b23b31
Update graphics/resolution support for new Qemu 2021-09-06 22:23:10 +01:00
Martin Wimpress 8c642fd3ef
Remove dependency on qemu-virgl 2021-09-06 22:21:06 +01:00
Martin Wimpress 3124138e47
Cater to high ram systems 2021-09-06 15:31:07 +01:00
Martin Wimpress c368e7ee9e
Cater for high core count systems 2021-09-06 15:30:41 +01:00
Martin Wimpress 211e5ca90c
Add missing function keyword 2021-09-06 15:30:01 +01:00
Martin Wimpress ad13351455
Make shellcheck happy 2021-09-06 15:29:37 +01:00
Martin Wimpress c4bc80f0ad
Removed unused variable 2021-09-06 15:28:15 +01:00
Martin Wimpress 170bff092a
Correct typo 2021-09-06 15:27:49 +01:00
Ben 628d1ee088
Added Basic SMB Managment (#43)
Co-authored-by: Sec Scout <secscout@localhost.localdomain>
2020-10-20 09:49:56 +01:00
Martin Wimpress 4aa38ad8f9
Catch no arguments being passed 2020-08-10 13:07:45 +01:00
Mike Glover ee0a76dbbb
Fix #32 Added fullscreen option (#33)
* Added fullscreen option

* Add fullscreen instructions to Readme

* Add fullscreen exit instructions to Readme
2020-08-10 12:17:06 +01:00
Yannick Mauray 63f5c11a8e
Enable arbitrary port forwarding via config file (#40)
* Add the possibility to forward ports from host to guest

* Reorganized code, fixed a bug, updated the README

* Updated the README

* Forgot to remove 'exit' ....
2020-08-10 12:15:18 +01:00
Philipp Kiemle b7f8e859dc Fix typo 2020-06-12 17:35:21 +01:00
marosg42 7f408e59cf
find free port for spice (#29)
allows to run more VMs in parallel

Co-authored-by: Marian Gasparovic <marian.gasparovic@canonical.com>
2020-06-12 17:34:19 +01:00
MatejSpindler df51b17d71
Allow using installed version of qemu (#28) 2020-06-12 17:32:38 +01:00
Marcus Grenängen 8618421abb
Fix #21 configurable RAM and #22 configurable cores (#24)
* Fix #21 configurable RAM and #22 configurable cores

* Initialize new config values with empty strings
2020-04-12 23:30:11 +01:00
Martin Wimpress e78bb9dc88
Add 128MB ram to fallback video device. 2020-04-04 12:57:15 +01:00
Martin Wimpress 0b19d918d9
Add macOS support 2020-04-04 12:55:16 +01:00
Mark Crouch 7a5433f8fc
Add create .desktop shortcut feature.
Deleted debug messages. Use `quemu-virgil` icon from the 'current' directory, not a specified version's directory. Tidied some code.
2020-04-02 23:23:12 +01:00
Martin Wimpress ec67184925
Add USB pass-through support
I decided to not have `quickemu` create `udev` rules and apply them because I was cautious about permanently altering the system `udev` configuration. 

Instead the permissions of the requested USB devices are modified so that the invoking user has write permission; which will persist until next boot.

All changes are clearly communicated.
2020-03-22 17:39:51 +00:00
Martin Wimpress 735e3a4ee8
Quote all file/directory variables. Closes #12
File handling is more robust and will support filename and directories with spaces in them.
2020-03-22 17:23:46 +00:00
Martin Wimpress 142eac3001
Round up host RAM. Closes #11
Avoid "integer expression expected" errors when host RAM enumeration returns a floating point value.

  * https://github.com/wimpysworld/quickemu/issues/11
2020-03-22 15:10:13 +00:00
Martin Wimpress 9808adecea
Fix standard VGA fallback 2020-03-21 17:20:13 +00:00
Martin Wimpress c2a2c08396
Attach keyboard and mouse to xhci USB bus 2020-03-21 17:19:55 +00:00
Martin Wimpress d8490b3120
Reorder boot string to logically group components 2020-03-21 16:59:45 +00:00
Martin Wimpress 3881e25b49
Make video device setup consistent
Also restores some GTK compatibility with Virgil 3D by defaulting to `gl=es` when GTK output is used.
2020-03-21 16:56:59 +00:00
Martin Wimpress 4e9457a2b1
Disable emulated audio mixer 2020-03-21 15:26:06 +00:00
Martin Wimpress 602d1fdb42
Migrate disk configuration to virtio-blk-pci device 2020-03-21 15:25:46 +00:00
Martin Wimpress 6e6b5ae702
Add $GUEST_TWEAKS variable to allow for guest_os specific tweaks 2020-03-21 15:22:01 +00:00
Martin Wimpress 061abfe9b5
Add $CPU variable to enable guest_os specific tweaks 2020-03-21 15:21:16 +00:00
Martin Wimpress 2dfe88bd5a
Start CD-ROMs at logical index 0 2020-03-21 15:20:13 +00:00
Martin Wimpress 2a59ad8b15
Drop accel=kvm from -machine
The `-machine` option `accel-kvm` is equivalent to `-enable-kvm`.
2020-03-21 14:45:43 +00:00
Martin Wimpress 3233738b86
Update README 2020-03-21 12:00:49 +00:00
Martin Wimpress 97a2ebf3d0
Replace --efi flag with boot= property in the VM configuration
Choosing between Legacy BIOS and EFI booting is really a fixed feature of the VM not something that can be toggled at will.

`boot=` has been added to the VM configuration file. Valid options are `legacy` or `efi|uefi`, if undefined it defaults to `legacy`.
2020-03-21 11:59:33 +00:00
Martin Wimpress 84efcf2bf3
Vars refactor: Simplify initialisation of disk 2020-03-21 11:40:20 +00:00
Martin Wimpress 01fbc2bbef
Vars refactor: Simplify initialisation of guest_os 2020-03-21 11:39:31 +00:00
Martin Wimpress 3816fe4028
Vars refactor: Replace UI with OUTPUT 2020-03-21 11:32:56 +00:00
Martin Wimpress dd4c6bf80d
Fix regression in xres/yres settings for virtio-vga 2020-03-21 11:17:23 +00:00