@ -31,13 +31,17 @@ Windows**.
- **macOS** Monterey, Big Sur, Catalina, Mojave & High Sierra
- **macOS** Monterey, Big Sur, Catalina, Mojave & High Sierra
- **Windows** 8.1, 10 and 11 including TPM 2.0
- **Windows** 8.1, 10 and 11 including TPM 2.0
- [Ubuntu ](https://ubuntu.com/desktop ) and all the ** [official Ubuntu flavours ](https://ubuntu.com/download/flavours )**
- [Ubuntu ](https://ubuntu.com/desktop ) and all the ** [official Ubuntu
flavours](https://ubuntu.com/download/flavours)**
- **Over 360 operating system editions are supported!**
- **Over 360 operating system editions are supported!**
- Full SPICE support including host/guest clipboard sharing
- Full SPICE support including host/guest clipboard sharing
- VirtIO-webdavd file sharing for Linux and Windows guests
- VirtIO-webdavd file sharing for Linux and Windows guests
- VirtIO-9p file sharing for Linux and macOS guests
- VirtIO-9p file sharing for Linux and macOS guests
- [QEMU Guest Agent support ](https://wiki.qemu.org/Features/GuestAgent ); provides access to a system-level agent via standard QMP commands
- [QEMU Guest Agent
- Samba file sharing for Linux, macOS and Windows guests (*if `smbd` is installed on the host*)
support](https://wiki.qemu.org/Features/GuestAgent); provides access
to a system-level agent via standard QMP commands
- Samba file sharing for Linux, macOS and Windows guests (*if `smbd`
is installed on the host*)
- VirGL acceleration
- VirGL acceleration
- USB device pass-through
- USB device pass-through
- Smartcard pass-through
- Smartcard pass-through
@ -63,7 +67,8 @@ QEMU](https://img.youtube.com/vi/AOTYWEgw0hI/0.jpg)](https://www.youtube.com/wat
## Requirements
## Requirements
- [QEMU ](https://www.qemu.org/ ) (*6.0.0 or newer*) **with GTK, SDL, SPICE & VirtFS support**
- [QEMU ](https://www.qemu.org/ ) (*6.0.0 or newer*) **with GTK, SDL,
SPICE & VirtFS support**
- [bash ](https://www.gnu.org/software/bash/ ) (*4.0 or newer*)
- [bash ](https://www.gnu.org/software/bash/ ) (*4.0 or newer*)
- [Coreutils ](https://www.gnu.org/software/coreutils/ )
- [Coreutils ](https://www.gnu.org/software/coreutils/ )
- [EDK II ](https://github.com/tianocore/edk2 )
- [EDK II ](https://github.com/tianocore/edk2 )
@ -265,9 +270,10 @@ with your preferred flavour.
- `opensuse` (openSUSE)
- `opensuse` (openSUSE)
- `oraclelinux` (Oracle Linux)
- `oraclelinux` (Oracle Linux)
- `popos` (Pop!\_OS)
- `popos` (Pop!\_OS)
- `reactos` (ReactOS)
- `regolith` (Regolith Linux)
- `regolith` (Regolith Linux)
- `rockylinux` (Rocky Linux)
- `rockylinux` (Rocky Linux)
- `slackware` (Slackware Linux )
- `slackware` (Slackware)
- `solus` (Solus)
- `solus` (Solus)
- `tails` (Tails)
- `tails` (Tails)
- `void` (Void Linux)
- `void` (Void Linux)
@ -377,8 +383,13 @@ There are some considerations when running macOS via Quickemu.
- UHCI (USB 2.0) on macOS Catalina and earlier.
- UHCI (USB 2.0) on macOS Catalina and earlier.
- XHCI (USB 3.0) on macOS Big Sur and newer.
- XHCI (USB 3.0) on macOS Big Sur and newer.
- Display resolution can only be changed via macOS System Preferences.
- Display resolution can only be changed via macOS System Preferences.
- **Full Duplex audio requires [VoodooHDA OC](https://github.com/chris1111/VoodooHDA-OC) or pass-through a USB audio-device to the macOS guest VM** .
- **Full Duplex audio requires [VoodooHDA
- NOTE! [Gatekeeper ](https://disable-gatekeeper.github.io/ ) and [System Integrity Protection (SIP) ](https://developer.apple.com/documentation/security/disabling_and_enabling_system_integrity_protection ) need to be disabled to install VoodooHDA OC
OC](https://github.com/chris1111/VoodooHDA-OC) or pass-through a USB
audio-device to the macOS guest VM**.
- NOTE! [Gatekeeper ](https://disable-gatekeeper.github.io/ ) and
[System Integrity Protection
(SIP)](https://developer.apple.com/documentation/security/disabling_and_enabling_system_integrity_protection)
need to be disabled to install VoodooHDA OC
- File sharing between guest and host is available via
- File sharing between guest and host is available via
[virtio-9p ](https://wiki.qemu.org/Documentation/9psetup ) and [SPICE
[virtio-9p ](https://wiki.qemu.org/Documentation/9psetup ) and [SPICE
webdavd](https://gitlab.gnome.org/GNOME/phodav/-/merge_requests/24).
webdavd](https://gitlab.gnome.org/GNOME/phodav/-/merge_requests/24).
@ -386,15 +397,15 @@ There are some considerations when running macOS via Quickemu.
### macOS App Store
### macOS App Store
If you see *"Your device or computer could not be verified"* when you try to
If you see *"Your device or computer could not be verified"* when you
login to the App Store, make sure that your wired ethernet device is `en0` . Us e
try to login to the App Store, make sure that your wired ethernet device
`ifconfig` in a terminal to verify this.
is `en0` . Use `ifconfig` in a terminal to verify this.
If the wired ethernet device is not `en0` , then then go to *System Preferences* -> *Network* ,
If the wired ethernet device is not `en0` , then then go to *System
delete all the network devices and apply the changes. Next, open a terminal and
Preferences* -\> *Network* , delete all the network devices and apply the
run the following:
changes. Next, open a terminal and run the following:
```bash
``` bash
sudo rm /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist
sudo rm /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist
```
```
@ -600,19 +611,20 @@ In the example above:
# Disable networking
# Disable networking
To completely disable all network interfaces in a guest VM add this additional
To completely disable all network interfaces in a guest VM add this
line to your virtual machine configuration:
additional line to your virtual machine configuration:
- `network="none"`
- `network="none"`
# Restricted networking
# Restricted networking
You can isolate the guest from the host (and broader network) using the restrict
You can isolate the guest from the host (and broader network) using the
option, which will restrict networking to just the guest and any virtual devices.
restrict option, which will restrict networking to just the guest and
any virtual devices.
This can be used to prevent software running inside the guest from phoning home
This can be used to prevent software running inside the guest from
while still providing a network inside the guest. Add this additional line to
phoning home while still providing a network inside the guest. Add this
your virtual machine configuration:
additional line to your virtual machine configuration:
- `network="restrict"`
- `network="restrict"`
@ -680,46 +692,45 @@ import cog
# cannot use check_result() because of non-zero return
# cannot use check_result() because of non-zero return
result=subprocess.run(["./quickemu", "--help"], capture_output=True, text=True)
result=subprocess.run(["./quickemu", "--help"], capture_output=True, text=True)
help=result.stdout
help=result.stdout
cog.out(f"```\n \n{help}\n\n ```\n \n")
cog.out(f"\n ```\n{help}\n```\n")
]]] -->
]]] -->
```
```
Usage
Usage
quickemu --vm ubuntu.conf
quickemu --vm ubuntu.conf
You can also pass optional parameters
You can also pass optional parameters
--braille : Enable braille support. Requires SDL.
--braille : Enable braille support. Requires SDL.
--delete-disk : Delete the disk image and EFI variables
--delete-disk : Delete the disk image and EFI variables
--delete-vm : Delete the entire VM and it's configuration
--delete-vm : Delete the entire VM and it's configuration
--display : Select display backend. 'sdl' (default), 'gtk', 'none', 'spice' or 'spice-app'
--display : Select display backend. 'sdl' (default), 'gtk', 'none', 'spice' or 'spice-app'
--fullscreen : Starts VM in full screen mode (Ctl+Alt+f to exit)
--fullscreen : Starts VM in full screen mode (Ctl+Alt+f to exit)
--ignore-msrs-always : Configure KVM to always ignore unhandled machine-specific registers
--ignore-msrs-always : Configure KVM to always ignore unhandled machine-specific registers
--screen < screen > : Use specified screen to determine the window size.
--screen < screen > : Use specified screen to determine the window size.
--shortcut : Create a desktop shortcut
--shortcut : Create a desktop shortcut
--snapshot apply < tag > : Apply/restore a snapshot.
--snapshot apply < tag > : Apply/restore a snapshot.
--snapshot create < tag > : Create a snapshot.
--snapshot create < tag > : Create a snapshot.
--snapshot delete < tag > : Delete a snapshot.
--snapshot delete < tag > : Delete a snapshot.
--snapshot info : Show disk/snapshot info.
--snapshot info : Show disk/snapshot info.
--status-quo : Do not commit any changes to disk/snapshot.
--status-quo : Do not commit any changes to disk/snapshot.
--viewer < viewer > : Choose an alternative viewer. @Options: 'spicy' (default), 'remote-viewer', 'none'
--viewer < viewer > : Choose an alternative viewer. @Options: 'spicy' (default), 'remote-viewer', 'none'
--ssh-port < port > : Set ssh-port manually
--ssh-port < port > : Set ssh-port manually
--spice-port < port > : Set spice-port manually
--spice-port < port > : Set spice-port manually
--public-dir < path > : expose share directory. @Options: '' (default: xdg-user-dir PUBLICSHARE), '< directory > ', 'none'
--public-dir < path > : expose share directory. @Options: '' (default: xdg-user-dir PUBLICSHARE), '< directory > ', 'none'
--monitor < type > : Set monitor connection type. @Options: 'socket' (default), 'telnet', 'none'
--monitor < type > : Set monitor connection type. @Options: 'socket' (default), 'telnet', 'none'
--monitor-telnet-host < ip / host > : Set telnet host for monitor. (default: 'localhost')
--monitor-telnet-host < ip / host > : Set telnet host for monitor. (default: 'localhost')
--monitor-telnet-port < port > : Set telnet port for monitor. (default: '4440')
--monitor-telnet-port < port > : Set telnet port for monitor. (default: '4440')
--monitor-cmd < cmd > : Send command to monitor if available. (Example: system_powerdown)
--monitor-cmd < cmd > : Send command to monitor if available. (Example: system_powerdown)
--serial < type > : Set serial connection type. @Options: 'socket' (default), 'telnet', 'none'
--serial < type > : Set serial connection type. @Options: 'socket' (default), 'telnet', 'none'
--serial-telnet-host < ip / host > : Set telnet host for serial. (default: 'localhost')
--serial-telnet-host < ip / host > : Set telnet host for serial. (default: 'localhost')
--serial-telnet-port < port > : Set telnet port for serial. (default: '6660')
--serial-telnet-port < port > : Set telnet port for serial. (default: '6660')
--keyboard < type > : Set keyboard. @Options: 'usb' (default), 'ps2', 'virtio'
--keyboard < type > : Set keyboard. @Options: 'usb' (default), 'ps2', 'virtio'
--keyboard_layout < layout > : Set keyboard layout.
--keyboard_layout < layout > : Set keyboard layout.
--mouse < type > : Set mouse. @Options: 'tablet' (default), 'ps2', 'usb', 'virtio'
--mouse < type > : Set mouse. @Options: 'tablet' (default), 'ps2', 'usb', 'virtio'
--usb-controller < type > : Set usb-controller. @Options: 'ehci' (default), 'xhci', 'none'
--usb-controller < type > : Set usb-controller. @Options: 'ehci' (default), 'xhci', 'none'
--extra_args < arguments > : Pass additional arguments to qemu
--extra_args < arguments > : Pass additional arguments to qemu
--version : Print version
--version : Print version
```
```
<!-- [[[end]]] -->
<!-- [[[end]]] -->