A recent macOS Sonoma update included a change to the handling of USB controllers that made the virtual keyboard and mouse inoperative. Changing the USB controller from ehci to xhci fixes it. This change also works for Big Sur and later, so the USB controller is set to xhci for Big Sur through Sonoma.
This adds disk_format=${disk_format:-qcow2} variable that defaults to
qcow2 format, so the vm.conf files can use $disk_format to specify the
format of the $disk_img when this is different from the default qcow2.
* Add windows languages, many bugfixes
Entering a release, edition, or OS with only part of a valid one will now throw an error, rather than attempting to download
i.e. $quickget windows 1 > "ERROR! Windows 1 is not a supported release", rather than attempting to download a nonexistent ISO
* Replace "languages" with "editions" to improve consistency
* Remove unnecessary code, hardcode windows editions to not waste time
* Add windows server, LTSC
* Windows server requires IDE drive
* Update Windows Guests section in README.md
* Improve support for windows server
Add back the language array, change stylization of languages in list
* Fix quickget show-iso-url and test-iso-url creating unnecessary directory
* Beautify output, add show-iso-url and test-iso-url for Windows (fully) and macOS (sorta)
* (NON-FUNCTIONAL) macrecovery shell script.
* Semi-functional (although incomplete) macrecovery shell script
Rough draft. To be completed, cleaned up and simplified (very much so)
hoping to merge into quickemu & replace the python macrecovery dependency.
* macrecovery shell script now successfully downloads the image. TODO: Verification
* Merged macrecovery functions into quickget. Chunkcheck (C) to replace macrecovery's image verification
Chunkcheck written by MCJack123: https://gist.github.com/MCJack123/943eaca762730ca4b7ae460b731b68e7
* Replace C chunkcheck binary with the Python equivalent. Re-add python to dependencies.
* force macOS guests to usually boot with core counts which are powers of 2; fix#865
* Add support for macOS Sonoma
* Fix issue where script would be unable to find chunkcheck if installed system-wide
* Update README verbiage
* Add headers to web_get function; macOS can now be downloaded via aria2; clean up code & output
* Add support for macOS Sonoma
* Fix use of wrong operator (>) which touches a file
* Small correction to README
* macOS switched from wget to default downloader (aria2/wget)
* Replace wget with cURL for downloading macOS chunklist file
* Fix variable naming in generate_id function
Added new configuration file option "sound_card" and new command-line
switch "--sound-card" to change the virtual sound hardware. Allowed
options are "intel-hda" (default), "ac97", "es1370", "sb16", and "none".
Also changed default sound card for Solaris to "ac97" and for FreeDOS to
"sb16".
* Add initial Solaris/Illumos support
* Fix OpenIndiana kernel panic on boot
The OpenIndiana kernel panics on boot in the AHCI driver. Switching the
machine type from "q35" to "pc" seems to fix the issue.
* Fix Illumos/OpenIndiana USB controller issue.
* Add openindiana support
* Updated quickget with current OpenIndiana release
* Change OpenIndiana video card to vmware-svga
OpenIndiana's default Xorg configuration doesn't work with QXL, virtio,
or VGA, but it does with vmware-svga.
* Updated man pages for OpenIndiana support
* Changed default Solaris/OpenIndiana boot to legacy
The OpenIndiana installer defaults to MBR partition table and BIOS boot
code even in EFI mode, so changed quickget to set 'boot="legacy"' in the
configuration file.
---------
Co-authored-by: Phil Clifford <philip.clifford@gmail.com>
Currently, the virtio specification does not include provision for the TRIM (aka DISCARD) command that allows a guest operating system to signal the disk hardware that blocks have become unused so that the underlying device may clear the physical data.
The TRIM/DISCARD command was introduced for SSD disks as an extension to the AHCI specification that is used in SATA systems.
With Virtual Machines we can use this command to tell QEMU's Qcow2 driver to reclaim unused space in the disk image. This ensures the disk image file is kept to the smallest size possible where without the TRIM/DISCARD command it grows to it's maximum configured size and never shrinks again when data is deleted.
Let's swap our default disk driver from `virtio-blk-pci` which does not support TRIM to `ahci` which does.
(We cannot use `virtio-scsi-pci` when running macOS, like we do in our default disk device, because macOS does not support SCSI disks at all on x86_64 systems.)
Currently, the virtio specification does not include provision for the TRIM (aka DISCARD) command that allows a guest operating system to signal the disk hardware that blocks have become unused so that the underlying device may clear the physical data.
The TRIM/DISCARD command was introduced for SSD disks as an extension to the AHCI specification that is used in SATA systems.
With Virtual Machines we can use this command to tell QEMU's Qcow2 driver to reclaim unused space in the disk image. This ensures the disk image file is kept to the smallest size possible where without the TRIM/DISCARD command it grows to it's maximum configured size and never shrinks again when data is deleted.
Let's swap our default disk driver from `virtio-blk-pci` which does not support TRIM to `virtio-scsi-pci` which does.
QEMU 7.0 introduces a change/regression where it is not possible to use GL accerlation via GTK/SDL displays and also bring up SPICE: https://gitlab.com/qemu-project/qemu/-/issues/1036
This patch prevents Quickemu from bringing up SPICE when GTK or SDK are selected as the display.
Run QEMU with '-vga none' to avoid having two scanouts, one for VGA and another for virtio-vga-gl.
- Workaround for a GTK assertion failure in gtk_widget_get_realized().
- Allows seamless mouse in macOS when using the qxl-vga device.
- Enables sane default resolutions in all support macOS versions.
* Add spice-app as display option
* Rework how we set the default OUTPUT
variable display is never set and display_param_check is already checked when parsing options
* enable overriding the gl param
3d acceleration is not stable on some setups (looking at you, nvidia)
Co-authored-by: Matej <spindler.matej@gmail.com>
* Extra OVMF search paths needed for Solus
who have moved things around
also spotted a possible typo to investigate in the void additions
* Revert "updated submodule position"
This reverts commit 9648f79b81b5e72465785993bc62469130ac848f.
* minor cleanup
* try realign submodule backwards
- add support to choose preferred usb-controller either ehci (USB2.0) or xhci (USB 3.0)
- add support to choose preferred keyboard either ps2, usb or virtio
- add support to choose preferred keyboard-layout
- add support to choose preferred mouse either ps2, usb, tablet, virtio
- fix some bugs regarding missing variables - releated to MONTITOR_TELNET_* and SERIAL_TELNET_*
- Support implemented on commandline as well as for configuration file
- support commandline parameter --serial, --serial-telnet-host and
--serial-telnet-port
- support serial options: 'socket', 'telnet' and 'none'
- add support to find free ports for monitor-telnet and serial-telnet
- replace nc with socat
- change default port for monitor-telnet to 4440
- some bugfix
- Add commandline parameter --public-dir for custom directory
- Add commandline parameter --monitor for qemu-monitor support
- Add commandline parameter --monitor-telnet-host and --monitor-telnet-port to configure qemu-monitor via telnet
- <VMNAME>.ports enhanced to provide data for monitor-telnet
- Support implemented on commandline as well as for configuration file
- Fixed bug regarding extra_args
- add suport for custom ssh-port and spice-port
- add suport for alternate viewer: 'remote-viewer' and 'none'
- support implemented on commandline as well as for configuration file
* Add support for FreeDOS 1.2 to quickget
* Add support for freedos guests to quickemu
* Add support for FreeDOS 1.3 to quickget
* Force qemu to keep booting from cd after formatting disk
* Adjust VM settings
* Refactor FreeDOS to use create_vm
* Add FreeDOS to README
* Add unzip to README as a dependency
* Add extra_args option in vm conf file
I added this simple piece of code for any extra arguments one wants to use.
You just add extra_args variable to your vm conf file.
ex. add host disk partition
extra_args="-drive file=/dev/sdb2,cache=none,if=virtio"
This is the easiest way to "extend" quickemu functionality.
* add missing variable
* Add support for braille terminal
fixes#307
* Add braille to Readme
* quote tidying
* currently requires sdl display
noted in the docs rather than forcing so if Qemu and/or brtty provide
a solution we will get immediate or easy benefit.
* add needed sdl to braille examples
Haiku is incompatible with the q35 machine type, as it emulates a ICH9
host chipset. Instad, the "pc" machine type needs to be used (emulates
I44FX).
https://wiki.qemu.org/Features/Q35
CD-ROM (iso), Disk, Internet and Audio are working now.
Also added forced LiveCD booting (because release named latest-iso, not latest-img).
Did some tweaks with '-machine' and '-cpu'. Now these VMs will run with 'qemu32' processor since KolibriOS throw an MTRR error (I didnt get how to fix it by any other way).
* 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
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.
* 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 eb18fcf829.
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.,
```
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.
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.
* 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>
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.