2020-03-17 01:52:46 +00:00
< h1 align = "center" >
< img src = ".github/logo.png" alt = "Quickemu" / >
< br / >
Quickemu
< / h1 >
2021-10-06 11:00:32 +00:00
< p align = "center" > < b > Quickly create and run optimised Windows, macOS and Linux desktop virtual machines.< / b > < / p >
2020-03-17 01:52:46 +00:00
< div align = "center" > < img src = ".github/screenshot.png" alt = "Quickemu Screenshot" / > < / div >
2020-07-25 11:11:08 +00:00
< p align = "center" > Made with 💝 for < img src = ".github/tux.png" align = "top" width = "18" / > < / p >
2020-03-17 01:52:46 +00:00
2021-09-28 04:04:30 +00:00
# Introduction
2020-03-17 01:52:46 +00:00
2021-10-06 11:00:32 +00:00
Quickemu quickly creates and runs highly optimised desktop virtual machines for
2021-10-06 13:49:17 +00:00
Linux, macOS and Windows; with just two commands. You decide what
2021-10-06 11:00:32 +00:00
operating system you want to run and Quickemu will figure out the best way to
do it for you. For example:
2020-03-17 01:52:46 +00:00
2021-10-06 11:00:32 +00:00
```bash
quickget ubuntu-mate hirsute
quickemu --vm ubuntu-mate-hirsute.conf
```
The original objective of the project was to enable quick testing of Linux
distributions where the virtual machine configurations can be stored anywhere,
such as external USB storage or your home directory, and no elevated permissions
are required to run the virtual machines. **Quickemu now also includes
comprehensive support for macOS and Windows**.
## Features
* macOS High Sierra, Mojave, Catalina and Big Sur
* Windows 8.1, 10 and 11 including TPM 2.0
* Ubuntu, and all the official flavours, supported by `quickget`
* SPICE for host/guest clipboard sharing
* VirtIO-webdavd file sharing for Linux and Windows guests.
* VirtIO-9p file sharing for Linux and macOS guests.
* VirGL acceleration
* USB device pass-through
* Smartcard pass-through
* Automatic SSH port forwarding to guests
* Network port forwarding
* EFI and Legacy BIOS booting
Quickemu is a wrapper for the excellent [QEMU ](https://www.qemu.org/ ) that
attempts to automatically *"do the right thing"* , rather than expose exhaustive
configuration options.
2020-03-17 01:52:46 +00:00
2021-02-18 14:51:07 +00:00
We have a Discord for this project: [![Discord ](https://img.shields.io/discord/712850672223125565?color=0C306A&label=WimpysWorld%20Discord&logo=Discord&logoColor=ffffff&style=flat-square )](https://discord.gg/sNmz3uw)
2020-08-10 11:23:25 +00:00
2021-10-06 11:00:32 +00:00
See this (old) video where I explain some of my motivations for creating Quickemu.
2020-03-17 01:52:46 +00:00
[![Replace VirtualBox with Bash & QEMU ](https://img.youtube.com/vi/AOTYWEgw0hI/0.jpg )](https://www.youtube.com/watch?v=AOTYWEgw0hI)
2021-09-07 13:04:54 +00:00
## Requirements
2020-03-17 01:52:46 +00:00
2021-09-29 02:33:14 +00:00
* [QEMU ](https://www.qemu.org/ ) (*6.0.0 or newer*)
2021-09-07 13:04:54 +00:00
* [Coreutils ](https://www.gnu.org/software/coreutils/ )
2021-09-29 02:33:14 +00:00
* [grep ](https://www.gnu.org/software/grep/ )
2021-09-28 04:04:30 +00:00
* [jq ](https://stedolan.github.io/jq/ )
2021-09-07 13:04:54 +00:00
* [procps ](https://gitlab.com/procps-ng/procps )
2021-09-29 02:33:14 +00:00
* [python3 ](https://www.python.org/ )
2021-10-05 16:11:49 +00:00
* [macrecovery ](https://github.com/acidanthera/OpenCorePkg/tree/master/Utilities/macrecovery )
2021-09-07 13:04:54 +00:00
* [usbutils ](https://github.com/gregkh/usbutils )
2021-10-04 21:24:37 +00:00
* [util-linux ](https://github.com/karelzak/util-linux )
2021-09-29 02:33:14 +00:00
* [sed ](https://www.gnu.org/software/sed/ )
* [spicy ](https://gitlab.freedesktop.org/spice/spice-gtk )
2021-10-06 10:01:33 +00:00
* [swtpm ](https://github.com/stefanberger/swtpm )
2021-09-07 13:04:54 +00:00
* [Wget ](https://www.gnu.org/software/wget/ )
2021-09-29 02:33:14 +00:00
* [xdg-user-dirs ](https://www.freedesktop.org/wiki/Software/xdg-user-dirs/ )
2021-09-07 13:04:54 +00:00
* [xrandr ](https://gitlab.freedesktop.org/xorg/app/xrandr )
2021-09-28 04:04:30 +00:00
* [zsync ](http://zsync.moria.org.uk/ )
2020-03-17 01:52:46 +00:00
2021-09-28 04:04:30 +00:00
# Install Quickemu
2021-09-06 21:55:26 +00:00
2021-09-28 04:04:30 +00:00
## Ubuntu
2021-09-07 13:04:54 +00:00
Quickemu is available from a PPA for Ubuntu users. The Quickemu PPA also
includes a back port of QEMU 6.0.0 for 20.04 (Focal) and 21.04 (Hirsute).
2020-03-17 01:52:46 +00:00
```bash
2021-09-06 21:55:26 +00:00
sudo apt-add-repository ppa:flexiondotorg/quickemu
2021-09-07 13:04:54 +00:00
sudo apt install quickemu
2020-03-17 01:52:46 +00:00
```
2021-09-28 04:04:30 +00:00
## Other Linux
2020-03-17 01:52:46 +00:00
2021-09-25 12:42:32 +00:00
```bash
2021-09-28 04:04:30 +00:00
git clone https://github.com/wimpysworld/quickemu
cd quickemu
2020-03-17 01:52:46 +00:00
```
2021-09-28 04:04:30 +00:00
# Usage
## Ubuntu Guest
`quickget` will automatically download an Ubuntu release and also create the
virtual machine configuration.
2020-03-17 01:52:46 +00:00
2021-09-25 12:42:32 +00:00
```bash
2021-09-28 04:04:30 +00:00
quickget ubuntu focal
quickemu --vm ubuntu-focal.conf
2020-03-19 21:24:07 +00:00
```
2020-03-21 02:26:50 +00:00
* Complete the installation as normal.
2021-09-25 12:30:56 +00:00
* Post-install:
* Install the SPICE agent (`spice-vdagent`) to enable copy/paste and USB redirection
2021-09-28 04:04:30 +00:00
* `sudo apt install spice-vdagent`
2021-09-25 12:30:56 +00:00
* Install the SPICE WebDAV agent (`spice-webdavd`) to enable file sharing.
2021-09-28 04:04:30 +00:00
* `sudo apt install spice-webdavd`
### Ubuntu devel (daily-live) images
2020-03-21 02:26:50 +00:00
2021-09-28 04:04:30 +00:00
`quickget` can also download/refresh devel images via `zsync` for Ubuntu
developers and testers.
2020-03-21 00:32:04 +00:00
2021-09-28 04:04:30 +00:00
```bash
quickget ubuntu devel
quickemu --vm ubuntu-devel.conf
```
2020-03-21 00:32:04 +00:00
2021-09-28 04:04:30 +00:00
You can run `quickget ubuntu devel` to refresh your daily development image as
often as you like, it will even automatically switch to a new series.
### Ubuntu Flavours
All the official Ubuntu flavours are supported, just replace `ubuntu` with your
preferred flavour.
* `kubuntu`
* `lubuntu`
* `ubuntu-budgie`
* `ubuntu-kylin`
* `ubuntu-mate`
* `ubuntu-studio`
* `xubuntu`
## Linux Guest
* Download a .iso image of a Linux distribution
* Create a VM configuration file; for example `debian-bullseye.conf`
2020-03-21 00:32:04 +00:00
2021-09-25 12:42:32 +00:00
```bash
2021-09-28 04:04:30 +00:00
guest_os="linux"
2021-09-28 14:56:24 +00:00
disk_img="debian-bullseye/disk.qcow2"
iso="debian-bullseye/firmware-11.0.0-amd64-DVD-1.iso"
2020-03-21 00:32:04 +00:00
```
* Use `quickemu` to start the virtual machine:
2021-09-25 12:42:32 +00:00
```bash
2021-09-28 04:04:30 +00:00
quickemu --vm debian-bullseye.conf
2020-03-21 02:27:18 +00:00
```
2021-09-28 04:04:30 +00:00
* Complete the installation as normal.
2021-09-25 12:30:56 +00:00
* Post-install:
2021-09-29 02:33:14 +00:00
* Install the SPICE agent (`spice-vdagent`) to enable copy/paste and USB redirection.
2021-09-28 04:04:30 +00:00
* Install the SPICE WebDAV agent (`spice-webdavd`) to enable file sharing.
2020-03-21 02:27:18 +00:00
2021-09-28 04:04:30 +00:00
## macOS Guest
2020-04-04 11:54:30 +00:00
2021-09-28 04:04:30 +00:00
`quickget` automatically downloads a macOS recovery image and automatically
creates a virtual machine configuration.
2020-04-04 11:54:30 +00:00
2021-09-28 04:04:30 +00:00
```bash
quickget macos catalina
quickemu --vm macos-catalina.conf
```
2020-04-04 11:54:30 +00:00
2021-09-28 14:25:38 +00:00
macOS `high-sierra` , `mojave` , `catalina` and `big-sur` are supported.
2020-04-04 11:54:30 +00:00
2021-09-28 14:56:24 +00:00
* Use cursor keys and enter key to select the **macOS Base System**
* From **macOS Utilities**
2021-09-28 04:04:30 +00:00
* Click **Disk Utility** and **Continue**
2021-09-28 14:25:38 +00:00
* On macOS Catalina and Big Sur
* Select `Apple Inc. VirtIO Block Media` from the list and click **Erase** .
* On macOS Mojave and High Sierra
* Select `QEMU HARDDISK Media` (~68.72GB) from the list and click **Erase** .
2021-09-28 04:04:30 +00:00
* Enter a `Name:` for the disk and click **Erase** .
* Click **Done** .
* Close Disk Utility
2021-09-28 14:56:24 +00:00
* From **macOS Utilities**
2021-09-28 04:04:30 +00:00
* Click **Reinstall macOS** and **Continue**
* Complete the installation as you normally would.
2021-09-28 14:56:24 +00:00
* On the first reboot use cursor keys and enter key to select **macOS Installer**
* On the subsequent reboots use cursor keys and enter key to select the disk you named
2021-09-28 04:04:30 +00:00
The default macOS configuration looks like this:
2020-04-04 11:54:30 +00:00
2021-09-25 12:42:32 +00:00
```bash
2021-09-28 04:04:30 +00:00
guest_os="macos"
2021-10-06 11:00:32 +00:00
img="macos-catalina/RecoveryImage.img"
disk_img="macos-catalina/disk.qcow2"
macos_release="catalina"
2021-09-25 21:51:12 +00:00
```
2021-10-06 11:00:32 +00:00
* `guest_os="macos"` instructs Quickemu to optimise for macOS.
* `macos_release="catalina"` instructs Quickemu to optimise for a particular macOS release.
* For example VirtIO Network and Memory Ballooning are available in Big Sur, but not previous releases.
2021-10-04 16:34:31 +00:00
* And VirtIO Block Media (disks) are supported/stable in Catalina and newer.
2021-09-25 21:51:12 +00:00
2021-09-28 04:04:30 +00:00
### macOS compatibility
2021-09-25 21:51:12 +00:00
2021-09-28 04:04:30 +00:00
There are some considerations when running macOS via Quickemu.
2021-09-25 21:51:12 +00:00
2021-09-28 04:04:30 +00:00
* `quickemu` will automatically download the required [OpenCore ](https://github.com/acidanthera/OpenCorePkg )
bootloader and OVMF firmware from [OSX-KVM ](https://github.com/kholia/OSX-KVM ).
* Supported macOS releases:
2021-09-28 14:25:38 +00:00
* High Sierra
2021-09-28 04:04:30 +00:00
* Mojave
* Catalina
* Big Sur
* Optimised by default
2021-09-29 02:33:14 +00:00
* Host CPU vendor is detected and guest CPU is optimised accordingly.
2021-10-04 16:34:31 +00:00
* [VirtIO Block Media ](https://www.kraxel.org/blog/2019/06/macos-qemu-guest/ ) is used for the system disk where supported.
2021-09-28 14:56:24 +00:00
* [VirtIO `usb-tablet` ](http://philjordan.eu/osx-virt/ ) is used for the mouse.
2021-10-04 16:34:31 +00:00
* VirtIO Network (`virtio-net`) is supported and enabled on macOS Big Sur but previous releases use `vmxnet3` .
* VirtIO Memory Ballooning is supported and enabled on macOS Big Sur but disabled for other support macOS releases.
2021-10-05 14:21:15 +00:00
* USB host pass-through is:
* UHCI (USB 2.0) on macOS Catalina and earlier.
* XHCI (USB 3.0) on macOS Big Sur.
2021-09-28 14:56:24 +00:00
* Display resolution can only be changed via macOS System Preferences.
2021-10-06 10:01:33 +00:00
* Full Duplex audio works on macOS High Sierra, Mojave and Catalina.
2021-10-05 14:21:15 +00:00
* **macOS Big Sur has no audio at all**.
2021-09-29 02:30:16 +00:00
* File sharing between guest and host is available via [virtio-9p ](https://wiki.qemu.org/Documentation/9psetup ).
2021-10-05 14:21:15 +00:00
* **SPICE has limited support on macOS**:
2021-09-28 14:56:24 +00:00
* Copy/paste via SPICE agent is not available.
* File sharing via SPICE webdavd is not available.
2021-09-28 16:53:44 +00:00
* USB pass-through via SPICE is not available.
* Smartcard pass-through is not available.
2021-09-28 04:04:30 +00:00
2021-10-05 22:52:19 +00:00
## Windows 8.1, 10 & 11 Guests
2021-09-28 04:04:30 +00:00
2021-10-06 00:03:21 +00:00
`quickget` can automatically download Windows 8.1, [Windows 10 ](https://www.microsoft.com/en-gb/software-download/windows10ISO )
2021-10-05 19:08:13 +00:00
and [Windows 11 ](https://www.microsoft.com/en-gb/software-download/windows11 )
along with the [VirtIO drivers for Windows ](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/ )
2021-09-28 04:04:30 +00:00
and creates a virtual machine configuration.
```bash
2021-10-06 10:01:33 +00:00
quickget windows 11
quickemu --vm windows-11.conf
2020-04-04 11:54:30 +00:00
```
2021-10-06 10:01:33 +00:00
* During the Windows install you will be asked *"Where do you want to install Windows?"*
2021-10-06 13:49:17 +00:00
* Click **Load driver** and **OK** on the dialogue box that pops up.
2021-09-28 04:04:30 +00:00
* Select `VirtIO SCSI controller (E:\amd64\w10\viostor.inf)` from the list and click **Next** .
* The disk will now be available for partitioning and formatting.
* Complete the installation as you normally would.
* Post-install:
2021-09-28 14:56:24 +00:00
* Run the VirtIO installer (`virtio-win-gt-x64`) from the CD Drive (E:).
* Run the Guest Tools installer (`virtio-win-guest-tools`) from the CD Drive (E:).
* Download and install [spice-webdavd ](https://www.spice-space.org/download/windows/spice-webdavd/spice-webdavd-x64-latest.msi )
* Enables file sharing between the host and guest.
* Download and install [UsbDk ](https://www.spice-space.org/download/windows/usbdk/ )
2021-09-28 16:53:44 +00:00
* Enables USB SPICE pass-through between the host and guest.
2021-09-28 04:04:30 +00:00
2021-10-07 15:22:45 +00:00
### FreeBSD Guest
`quickemu` supports FreeBSD production releases. FreeBSD support is maintained by `<kai@potabi.com>` .
FreeBSD version command reference (just in case):
* 12.2: `12_2`
* 13.0: `13_0`
```bash
quickget freebsd 13_0
quickemu --vm freebsd-13_0.conf
```
2021-09-28 04:04:30 +00:00
### Regional versions
By default `quickget` will download the *"English International"* release, but
you can optionally specify one of the supported languages: For example:
2020-04-04 11:54:30 +00:00
2021-09-25 12:42:32 +00:00
```bash
2021-10-06 10:01:33 +00:00
quickget windows 11 "Chinese (Traditional)"
2020-04-04 11:54:30 +00:00
```
2021-10-06 10:01:33 +00:00
The default Windows 11 configuration looks like this:
2020-04-04 11:54:30 +00:00
2021-09-25 12:42:32 +00:00
```bash
2021-09-28 04:04:30 +00:00
guest_os="windows"
2021-10-06 10:01:33 +00:00
disk_img="windows-11/disk.qcow2"
iso="windows-11/Win11_EnglishInternational_x64.iso"
fixed_iso="windows-11/virtio-win.iso"
tpm="on"
2020-04-04 11:54:30 +00:00
```
2021-10-06 10:13:25 +00:00
* `guest_os="windows"` instructs `quickemu` to optimise for Windows.
* `fixed_iso=` specifies the ISO image that provides VirtIO drivers.
* `tpm="on"` instructs `quickemu` to create a software emulated TPM device using `swtpm` .
2020-04-04 11:54:30 +00:00
2021-09-28 04:04:30 +00:00
# SPICE
2020-03-21 00:32:04 +00:00
2021-09-28 14:56:24 +00:00
The following features are available while using the SPICE protocol:
2021-09-25 12:30:56 +00:00
2021-09-28 14:56:24 +00:00
* Copy/paste between the guest and host
* Host file sharing to the guest
* USB device redirection
2021-09-25 12:30:56 +00:00
To use SPICE add `--display spice` to the Quickemu invocation, this requires that
the `spicy` client is installed, available from the `spice-client-gtk` package
in Debian/Ubuntu.
```bash
2021-09-28 04:04:30 +00:00
quickemu --vm ubuntu-focal.conf --display spice
2021-09-25 12:30:56 +00:00
```
2021-09-28 04:04:30 +00:00
# BIOS and EFI
Since Quickemu 2.1.0 `efi` is the default boot option. If you want to override
this behaviour then add the following line to you VM configuration to enable
legacy BIOS.
* `boot="legacy"` - Enable Legacy BIOS boot
# Tuning CPU cores, RAM & disks
2021-09-25 12:42:32 +00:00
By default, Quickemu will calculate the number of CPUs cores and RAM to allocate
to a VM based on the specifications of your host computer. You can override this
default behaviour and tune the VM configuration to your liking.
Add additional lines to your virtual machine configuration:
* `cpu_cores="4"` - Specify the number of CPU cores allocated to the VM
* `ram="4G"` - Specify the amount of RAM to allocate to the VM
2021-10-04 23:03:03 +00:00
* `disk_size="16G"` - Specify the size of the virtual disk allocated to the VM
2021-09-28 21:47:26 +00:00
## Disk preallocation
2021-10-07 14:56:06 +00:00
Preallocation mode (allowed values: `off` (default), `metadata` , `falloc` , `full` ).
2021-09-28 21:47:26 +00:00
An image with preallocated metadata is initially larger but can improve performance
2021-10-07 14:56:06 +00:00
when the image needs to grow.
2021-09-28 21:47:26 +00:00
Specify what disk preallocation should be used, if any, when creating the system
disk image by adding a line like this to your VM configuration.
* `preallocation="metadata"`
2021-09-28 21:49:36 +00:00
## CD-ROM disks
If you want to expose an ISO image from the host to guest add the following line
to the VM configuration:
* `fixed_iso="/path/to/image.iso"`
2021-09-28 18:01:44 +00:00
## Floppy disks
If you're like [Alan Pope ](https://popey.com ) you'll probably want to mount a
floppy disk image in the guest. To do so add the following line to the VM
configuration:
* `floppy="/path/to/floppy.img"`
2021-09-25 12:42:32 +00:00
2021-09-28 04:04:30 +00:00
# Network port forwarding
2021-09-25 12:42:32 +00:00
Add an additional line to your virtual machine configuration. For example:
* `port_forwards=("8123:8123" "8888:80")`
In the example above:
* Port 8123 on the host is forwarded to port 8123 on the guest.
* Port 8888 on the host is forwarded to port 80 on the guest.
2021-09-28 04:04:30 +00:00
# USB redirection
2021-09-25 12:30:56 +00:00
2021-09-28 16:53:44 +00:00
Quickemu supports USB redirection via SPICE pass-through and host pass-through.
2021-09-25 12:30:56 +00:00
2021-09-28 04:04:30 +00:00
## SPICE redirection (recommended)
2021-09-25 12:30:56 +00:00
2021-09-28 16:53:44 +00:00
Using SPICE for USB pass-through is easiest as it doesn't require any elevated
2021-09-25 12:30:56 +00:00
permission, start Quickemu with `--display spice` and then select `Input` ->
2021-10-06 13:49:17 +00:00
`Select USB Device for redirection` from the menu to choose which device(s) you want
2021-09-28 04:04:30 +00:00
to attach to the guest.
2021-09-25 12:30:56 +00:00
2021-09-28 04:04:30 +00:00
## Host redirection
2021-09-25 12:30:56 +00:00
**USB host redirection is not recommended**, it is provided purely for backwards
compatibility to older versions of Quickemu. Using SPICE is preferred, see above.
Add an additional line to your virtual machine configuration. For example:
* `usb_devices=("046d:082d" "046d:085e")`
In the example above:
* The USB device with vendor_id 046d and product_id 082d will be exposed to the guest.
* The USB device with vendor_id 046d and product_id 085e will be exposed to the guest.
If the USB devices are not writable, `quickemu` will display the appropriate
2021-09-25 12:50:46 +00:00
commands to modify the USB device(s) access permissions, like this:
```
- USB: Host pass-through requested:
- Sennheiser Communications EPOS GTW 270 on bus 001 device 005 needs permission changes:
2021-09-28 04:04:30 +00:00
sudo chown -v root:user /dev/bus/usb/001/005
2021-09-25 12:50:46 +00:00
ERROR! USB permission changes are required 👆
```
2021-09-25 12:30:56 +00:00
2021-10-06 10:01:33 +00:00
# TPM
Since Quickemu 2.2.0 a software emulated TPM device can be added to guest
virtual machines. Just add `tpm="on"` to your VM configuration. `quickget` will
automatically add this line to Windows 11 virtual machines.
2021-09-28 04:04:30 +00:00
# All the options
2021-09-25 12:30:56 +00:00
Here are the usage instructions:
2020-03-17 01:52:46 +00:00
```
Usage
quickemu --vm ubuntu.conf
You can also pass optional parameters
2020-03-20 18:17:53 +00:00
--delete : Delete the disk image.
2021-09-25 12:30:56 +00:00
--display : Select display backend. 'sdl' (default), 'gtk' or 'spice'
2020-04-02 22:23:12 +00:00
--shortcut : Create a desktop shortcut
2020-03-20 18:17:53 +00:00
--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.
2020-03-20 18:35:29 +00:00
--status-quo : Do not commit any changes to disk/snapshot.
2020-08-10 11:17:06 +00:00
--fullscreen : Starts VM in full screen mode (Ctl+Alt+f to exit)"
2021-09-23 20:34:21 +00:00
--screen < screen > : Use specified screen to determine the window size.
2020-03-17 01:52:46 +00:00
```
2021-09-25 12:42:32 +00:00
## Desktop shortcuts
Desktop shortcuts can be created for a VM, the shortcuts are saved in `~/.local/share/applications` . Here is an example of how to create a shortcut.
```bash
quickemu --vm ubuntu-focal-desktop.conf --shortcut
```
2021-09-28 04:04:30 +00:00
## Screen and window size
2021-09-25 12:42:32 +00:00
2021-09-23 20:34:21 +00:00
`qemu` will always default to the primary monitor to display the VM's window.
2021-09-25 12:42:32 +00:00
Without the `--screen` option, `quickemu` will look for the size of the smallest
monitor, and use a size that fits on said monitor.
2021-09-23 20:34:21 +00:00
2021-09-25 12:42:32 +00:00
The `--screen` option forces `quickemu` to use the size of the given monitor to
2021-10-06 13:49:17 +00:00
compute the size of the window. **It won't use that monitor to display the VM's
2021-09-25 12:42:32 +00:00
window if it's not the primary monitor**. This is useful if the primary monitor
if not the smallest one, and if the VM's window doesn't need to be moved around.
2021-09-23 20:34:21 +00:00
2021-09-25 12:42:32 +00:00
The `--screen` option is also useful with the `--fullscreen` option, again
because `qemu` will always use the primary monitor. In order for the fullscreen
mode to work properly, the resolution of the VM's window must match the
resolution of the screen.
2021-09-23 20:34:21 +00:00
2021-09-25 12:42:32 +00:00
To know which screen to use, type:
```bash
2021-09-23 20:34:21 +00:00
xrandr --listmonitors | grep -v Monitors
```
2021-09-25 12:42:32 +00:00
The command will output something like this:
2021-09-23 20:34:21 +00:00
```
0: +*HDMI-0 2560/597x1440/336+1920+0 HDMI-0
1: +DVI-D-0 1920/527x1080/296+0+0 DVI-D-0
```
2021-09-25 12:42:32 +00:00
2021-09-23 20:34:21 +00:00
The first number is what needs to be passed to the `--screen` option.
2021-09-25 12:42:32 +00:00
For example:
```bash
2021-09-23 20:34:21 +00:00
quickemu --vm vm.conf --screen 0
```
2021-09-25 12:42:32 +00:00
The above uses the 2560x1440 screen to compute the size of the window, which
Quickemu sizes to 2048x1152. Without the `--screen` option, Quickemu would have
used the 1920x1080 monitor which results in a window size of 1664x936.
2021-09-23 20:34:21 +00:00
2021-09-28 04:04:30 +00:00
# TODO
2021-09-25 21:51:12 +00:00
2021-09-28 04:04:30 +00:00
- [ ] Add `spice-app` support via `virt-viewer` ; *requires `virt-viewer` 8.0 or newer*
- [ ] Add support for `ignore_msrs` for macOS. `echo "options kvm ignore_msrs=Y" >> /etc/modprobe.d/kvm.conf && update-initramfs -k all -u`
2021-09-28 21:49:52 +00:00
- [ ] Add discrete GPU pass-through
2021-09-28 04:04:30 +00:00
- [ ] Improve disk management
2021-09-25 21:51:12 +00:00
# References
2021-09-28 04:04:30 +00:00
Useful reference that assisted the development of Quickemu.
2021-10-05 14:27:07 +00:00
* General
2021-09-30 18:06:22 +00:00
* [QEMU’ s documentation! ](https://qemu.readthedocs.io/en/latest/ )
2021-10-04 22:48:15 +00:00
* < https: // pve . proxmox . com / wiki / Qemu / KVM_Virtual_Machines >
2021-10-04 16:29:47 +00:00
* < https: // www . kraxel . org / blog / 2020 / 01 / qemu-sound-audiodev />
2021-09-30 18:06:22 +00:00
2021-09-25 21:51:12 +00:00
* macOS
* < https: // www . nicksherlock . com / 2020 / 06 / installing-macos-big-sur-on-proxmox />
2021-09-28 04:04:30 +00:00
* < https: // passthroughpo . st / mac-os-adds-early-support-for-virtio-qemu />
2021-09-25 21:51:12 +00:00
* < https: // github . com / kholia / OSX-KVM >
* < https: // github . com / thenickdude / KVM-Opencore >
* < https: // github . com / acidanthera / OpenCorePkg / tree / master / Utilities / macrecovery >
* < https: // www . kraxel . org / blog / 2017 / 09 / running-macos-as-guest-in-kvm />
2021-09-28 04:04:30 +00:00
* < https: // www . nicksherlock . com / 2017 / 10 / passthrough-of-advanced-cpu-features-for-macos-high-sierra-guests />
* < http: // philjordan . eu / osx-virt />
2021-09-25 21:51:12 +00:00
* < https: // github . com / Dids / clover-builder >
2021-09-30 18:06:22 +00:00
* [OpenCore Configurator ](https://mackie100projects.altervista.org )
2021-09-25 21:51:12 +00:00
* Windows
* < https: // www . heiko-sieger . info / running-windows-10-on-linux-using-kvm-with-vga-passthrough />
* < https: // leduccc . medium . com / improving-the-performance-of-a-windows-10-guest-on-qemu-a5b3f54d9cf5 >
* < https: // frontpagelinux . com / tutorials / how-to-use-linux-kvm-to-optimize-your-windows-10-virtual-machine />
2021-09-28 21:49:52 +00:00
* < https: // turlucode . com / qemu-command-line-args />
2021-09-28 04:04:30 +00:00
* < https: // github . com / pbatard / Fido >
2021-10-06 10:01:33 +00:00
* TPM
* < https: // qemu-project . gitlab . io / qemu / specs / tpm . html >
2021-10-05 22:14:09 +00:00
* < https: // www . tecklyfe . com / how-to-create-a-windows-11-virtual-machine-in-qemu />
2021-09-30 18:06:22 +00:00
2021-09-28 04:04:30 +00:00
* 9p & virtiofs
2021-09-29 02:30:16 +00:00
* < https: // wiki . qemu . org / Documentation / 9p >
2021-09-28 04:04:30 +00:00
* < https: // wiki . qemu . org / Documentation / 9psetup >
2021-09-28 16:44:18 +00:00
* < https: // www . kraxel . org / blog / 2019 / 06 / macos-qemu-guest />
2021-09-28 04:04:30 +00:00
* < https: // superuser . com / questions / 628169 / how-to-share-a-directory-with-the-host-without-networking-in-qemu >
* < https: // virtio-fs . gitlab . io />