generated man pages added
This commit is contained in:
parent
737bc7ff19
commit
44e7d3d462
42
docs/Makefile
Normal file
42
docs/Makefile
Normal file
@ -0,0 +1,42 @@
|
||||
include pandoc-man.mk
|
||||
|
||||
ifeq ($(PREFIX),)
|
||||
PREFIX := /usr/local
|
||||
endif
|
||||
|
||||
datarootdir := $(PREFIX)/share
|
||||
datadir := $(datarootdir)
|
||||
mandir := $(datarootdir)/man
|
||||
bindir := $(PREFIX)/bin
|
||||
|
||||
all: quickget.1 quickemu.1 quickemu_conf.1
|
||||
|
||||
clean:
|
||||
rm *.1
|
||||
|
||||
install_docs: all
|
||||
install -d $(DESTDIR)$(mandir)/man1
|
||||
install -m 644 quickget.1 $(DESTDIR)$(mandir)/man1
|
||||
install -m 644 quickemu.1 $(DESTDIR)$(mandir)/man1
|
||||
install -m 644 quickemu_conf.1 $(DESTDIR)$(mandir)/man1
|
||||
|
||||
# install -m 644 quickgui.1 $(DESTDIR)$(mandir)/man1
|
||||
|
||||
install_bins:
|
||||
install -d $(DESTDIR)$(bindir)
|
||||
install -m 755 ../quickget $(DESTDIR)$(bindir)
|
||||
install -m 755 ../quickemu $(DESTDIR)$(bindir)
|
||||
install -m 755 ../macrecovery $(DESTDIR)$(bindir)
|
||||
|
||||
install: install_bins install_docs
|
||||
|
||||
uninstall::
|
||||
rm -f $(DESTDIR)$(mandir)/man1/quickget.1
|
||||
rm -f $(DESTDIR)$(mandir)/man1/quickemu.1
|
||||
rm -f $(DESTDIR)$(mandir)/man1/quickemu_conf.1
|
||||
rm -f $(DESTDIR)$(bindir)/quickget
|
||||
rm -f $(DESTDIR)$(bindir)/quickemu
|
||||
rm -f $(DESTDIR)$(bindir)/macrecovery
|
||||
|
||||
|
||||
.PHONY: all
|
8
docs/pandoc-man.mk
Normal file
8
docs/pandoc-man.mk
Normal file
@ -0,0 +1,8 @@
|
||||
PANDOC ?= pandoc
|
||||
|
||||
MANSECTION ?= 1
|
||||
|
||||
MANPAGE.md = $(PANDOC) --standalone $(PANDOCFLAGS) --to man
|
||||
|
||||
%.$(MANSECTION): %.$(MANSECTION).md
|
||||
$(MANPAGE.md) $< -o $@
|
868
docs/quickemu.1
Normal file
868
docs/quickemu.1
Normal file
@ -0,0 +1,868 @@
|
||||
.\" Automatically generated by Pandoc 2.2.3.2
|
||||
.\"
|
||||
.TH "QUICKEMU" "1" "January 7, 2022" "quickemu" "Quickemu User Manual"
|
||||
.hy
|
||||
.SH NAME
|
||||
.PP
|
||||
quickemu \- A quick VM builder and manager
|
||||
.SH SYNOPSIS
|
||||
.PP
|
||||
\f[B]quickemu\f[] [\f[I]OPTION\f[]]\&...
|
||||
.SH DESCRIPTION
|
||||
.PP
|
||||
\f[B]quickemu\f[] will create and run highly optimised desktop virtual
|
||||
machines for Linux, macOS and Windows
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.B \f[B]\[en]vm\f[]
|
||||
vm configuration file
|
||||
.RS
|
||||
.RE
|
||||
.PP
|
||||
You can also pass optional parameters
|
||||
.TP
|
||||
.B \f[B]\[en]delete\f[]
|
||||
Delete the disk image.
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B \f[B]\[en]display\f[]
|
||||
Select display backend.
|
||||
`sdl' (default), `gtk', `none' or `spice'
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B \f[B]\[en]fullscreen\f[]
|
||||
Starts VM in full screen mode (Ctl+Alt+f to exit)
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B \f[B]\[en]ignore\-msrs\-always\f[]
|
||||
Configure KVM to always ignore unhandled machine\-specific registers
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B \f[B]\[en]screen <screen>\f[]
|
||||
Use specified screen to determine the window size.
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B \f[B]\[en]shortcut\f[]
|
||||
Create a desktop shortcut
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B \f[B]\[en]snapshot apply <tag>\f[]
|
||||
Apply/restore a snapshot.
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B \f[B]\[en]snapshot create <tag>\f[]
|
||||
Create a snapshot.
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B \f[B]\[en]snapshot delete <tag>\f[]
|
||||
Delete a snapshot.
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B \f[B]\[en]snapshot info\f[]
|
||||
Show disk/snapshot info.
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B \f[B]\[en]status\-quo\f[]
|
||||
Do not commit any changes to disk/snapshot.
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B \f[B]\[en]version\f[]
|
||||
Print version
|
||||
.RS
|
||||
.RE
|
||||
.SH EXAMPLES
|
||||
.TP
|
||||
.B \f[B]quickemu \[en]vm ubuntu\-mate\-impish.conf\f[]
|
||||
Launches the VM specified in the file \f[I]ubuntu\-mate\-impish.conf\f[]
|
||||
.RS
|
||||
.RE
|
||||
.SS Introduction
|
||||
.PP
|
||||
Quickly create and run highly optimised desktop virtual machines for
|
||||
Linux, macOS and Windows; with just two commands.
|
||||
You decide what operating system you want to run and Quickemu will
|
||||
figure out the best way to do it for you.
|
||||
For example:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
quickget\ ubuntu\-mate\ impish
|
||||
quickemu\ \-\-vm\ ubuntu\-mate\-impish.conf
|
||||
\f[]
|
||||
.fi
|
||||
.PP
|
||||
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.
|
||||
\f[B]Quickemu now also includes comprehensive support for macOS and
|
||||
Windows\f[].
|
||||
.SS Features
|
||||
.IP \[bu] 2
|
||||
\f[B]macOS\f[] Monterey, Big Sur, Catalina, Mojave & High Sierra
|
||||
.IP \[bu] 2
|
||||
\f[B]Windows\f[] 8.1, 10 and 11 including TPM 2.0
|
||||
.IP \[bu] 2
|
||||
Ubuntu (https://ubuntu.com/desktop) and all the \f[B]official Ubuntu
|
||||
flavours (https://ubuntu.com/download/flavours)\f[]
|
||||
.IP \[bu] 2
|
||||
Fedora (https://getfedora.org/) & openSUSE
|
||||
(Leap (https://get.opensuse.org/leap/),
|
||||
Tumbleweed (https://get.opensuse.org/tumbleweed/),
|
||||
MicroOS (https://microos.opensuse.org/))
|
||||
.IP \[bu] 2
|
||||
Linux Mint (https://linuxmint.com/) (Cinnamon, MATE, and XFCE),
|
||||
elementary OS (https://elementary.io/),
|
||||
Pop!_OS (https://pop.system76.com/)
|
||||
.IP \[bu] 2
|
||||
Arch Linux (https://www.archlinux.org/),
|
||||
Kali (https://www.kali.org/),Garuda (https://garudalinux.org/),
|
||||
ZorinOS (https://zorin.com/os/) & NixOS (https://nixos.org/)
|
||||
.IP \[bu] 2
|
||||
Regolith Linux (https://regolith-linux.org/) (Release 1.6 and latest
|
||||
2.0.0 pre\-release )
|
||||
.IP \[bu] 2
|
||||
FreeBSD (https://www.freebsd.org/) & OpenBSD (https://www.openbsd.org/)
|
||||
.IP \[bu] 2
|
||||
Full SPICE support including host/guest clipboard sharing
|
||||
.IP \[bu] 2
|
||||
VirtIO\-webdavd file sharing for Linux and Windows guests
|
||||
.IP \[bu] 2
|
||||
VirtIO\-9p file sharing for Linux and macOS guests
|
||||
.IP \[bu] 2
|
||||
QEMU Guest Agent support (https://wiki.qemu.org/Features/GuestAgent);
|
||||
provides access to a system\-level agent via standard QMP commands
|
||||
.IP \[bu] 2
|
||||
Samba file sharing for Linux, macOS and Windows guests (\f[I]if
|
||||
\f[CI]smbd\f[I] is installed on the host\f[])
|
||||
.IP \[bu] 2
|
||||
VirGL acceleration
|
||||
.IP \[bu] 2
|
||||
USB device pass\-through
|
||||
.IP \[bu] 2
|
||||
Smartcard pass\-through
|
||||
.IP \[bu] 2
|
||||
Automatic SSH port forwarding to guests
|
||||
.IP \[bu] 2
|
||||
Network port forwarding
|
||||
.IP \[bu] 2
|
||||
Full duplex audio
|
||||
.IP \[bu] 2
|
||||
EFI (with or without SecureBoot) and Legacy BIOS boot
|
||||
.IP \[bu] 2
|
||||
Graphical user interfaces available
|
||||
.PP
|
||||
Quickemu is a wrapper for the excellent QEMU (https://www.qemu.org/)
|
||||
that attempts to automatically \f[I]\[lq]do the right thing\[rq]\f[],
|
||||
rather than expose exhaustive configuration options.
|
||||
.PP
|
||||
We have a Discord for this project:
|
||||
[IMAGE: Discord (https://img.shields.io/discord/712850672223125565?color=0C306A&label=WimpysWorld%20Discord&logo=Discord&logoColor=ffffff&style=flat-square)] (https://discord.gg/sNmz3uw)
|
||||
.PP
|
||||
See this (old) video where I explain some of my motivations for creating
|
||||
Quickemu.
|
||||
.PP
|
||||
[IMAGE: Replace VirtualBox with Bash &
|
||||
QEMU (https://img.youtube.com/vi/AOTYWEgw0hI/0.jpg)] (https://www.youtube.com/watch?v=AOTYWEgw0hI)
|
||||
.SS Requirements
|
||||
.IP \[bu] 2
|
||||
QEMU (https://www.qemu.org/) (\f[I]6.0.0 or newer\f[]) \f[B]with GTK,
|
||||
SDL, SPICE & VirtFS support\f[]
|
||||
.IP \[bu] 2
|
||||
bash (https://www.gnu.org/software/bash/) (\f[I]4.0 or newer\f[])
|
||||
.IP \[bu] 2
|
||||
Coreutils (https://www.gnu.org/software/coreutils/)
|
||||
.IP \[bu] 2
|
||||
EDK II (https://github.com/tianocore/edk2)
|
||||
.IP \[bu] 2
|
||||
grep (https://www.gnu.org/software/grep/)
|
||||
.IP \[bu] 2
|
||||
jq (https://stedolan.github.io/jq/)
|
||||
.IP \[bu] 2
|
||||
LSB (https://wiki.linuxfoundation.org/lsb/start)
|
||||
.IP \[bu] 2
|
||||
procps (https://gitlab.com/procps-ng/procps)
|
||||
.IP \[bu] 2
|
||||
python3 (https://www.python.org/)
|
||||
.IP \[bu] 2
|
||||
macrecovery (https://github.com/acidanthera/OpenCorePkg/tree/master/Utilities/macrecovery)
|
||||
.IP \[bu] 2
|
||||
mkisofs (http://cdrtools.sourceforge.net/private/cdrecord.html)
|
||||
.IP \[bu] 2
|
||||
usbutils (https://github.com/gregkh/usbutils)
|
||||
.IP \[bu] 2
|
||||
util\-linux (https://github.com/karelzak/util-linux)
|
||||
.IP \[bu] 2
|
||||
sed (https://www.gnu.org/software/sed/)
|
||||
.IP \[bu] 2
|
||||
spicy (https://gitlab.freedesktop.org/spice/spice-gtk)
|
||||
.IP \[bu] 2
|
||||
swtpm (https://github.com/stefanberger/swtpm)
|
||||
.IP \[bu] 2
|
||||
Wget (https://www.gnu.org/software/wget/)
|
||||
.IP \[bu] 2
|
||||
xdg\-user\-dirs (https://www.freedesktop.org/wiki/Software/xdg-user-dirs/)
|
||||
.IP \[bu] 2
|
||||
xrandr (https://gitlab.freedesktop.org/xorg/app/xrandr)
|
||||
.IP \[bu] 2
|
||||
zsync (http://zsync.moria.org.uk/)
|
||||
.SH Usage
|
||||
.SS Graphical User Interfaces
|
||||
.PP
|
||||
While \f[C]quickemu\f[] and \f[C]quickget\f[] are designed for the
|
||||
terminal, a graphical user interface is also available:
|
||||
.IP \[bu] 2
|
||||
\f[B]Quickgui (https://github.com/quickgui/quickgui)\f[] by Mark
|
||||
Johnson (https://github.com/marxjohnson) and Yannick
|
||||
Mauray (https://github.com/ymauray).
|
||||
.PP
|
||||
Many thanks to Luke Wesley\-Holley (https://github.com/Lukewh) and
|
||||
Philipp Kiemle (https://github.com/daPhipz) for creating the
|
||||
\f[B]Quickemu icons (https://github.com/Lukewh/quickemu-icons)\f[] 🎨
|
||||
.SS Quickgui for Ubuntu
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
sudo\ add\-apt\-repository\ ppa:yannick\-mauray/quickgui
|
||||
sudo\ apt\ update
|
||||
sudo\ apt\ install\ quickgui
|
||||
\f[]
|
||||
.fi
|
||||
.SS Ubuntu Guest
|
||||
.PP
|
||||
\f[C]quickget\f[] will automatically download an Ubuntu release and
|
||||
create the virtual machine configuration.
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
quickget\ ubuntu\ focal
|
||||
quickemu\ \-\-vm\ ubuntu\-focal.conf
|
||||
\f[]
|
||||
.fi
|
||||
.IP \[bu] 2
|
||||
Complete the installation as normal.
|
||||
.IP \[bu] 2
|
||||
Post\-install:
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
Install the SPICE agent (\f[C]spice\-vdagent\f[]) to enable copy/paste
|
||||
and USB redirection
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
\f[C]sudo\ apt\ install\ spice\-vdagent\f[]
|
||||
.RE
|
||||
.IP \[bu] 2
|
||||
Install the SPICE WebDAV agent (\f[C]spice\-webdavd\f[]) to enable file
|
||||
sharing.
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
\f[C]sudo\ apt\ install\ spice\-webdavd\f[]
|
||||
.RE
|
||||
.RE
|
||||
.SS Ubuntu devel (daily\-live) images
|
||||
.PP
|
||||
\f[C]quickget\f[] can also download/refresh devel images via
|
||||
\f[C]zsync\f[] for Ubuntu developers and testers.
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
quickget\ ubuntu\ devel
|
||||
quickemu\ \-\-vm\ ubuntu\-devel.conf
|
||||
\f[]
|
||||
.fi
|
||||
.PP
|
||||
You can run \f[C]quickget\ ubuntu\ devel\f[] to refresh your daily
|
||||
development image as often as you like, it will even automatically
|
||||
switch to a new series.
|
||||
.SS Ubuntu Flavours
|
||||
.PP
|
||||
All the official Ubuntu flavours are supported, just replace
|
||||
\f[C]ubuntu\f[] with your preferred flavour.
|
||||
.IP \[bu] 2
|
||||
\f[C]kubuntu\f[] (Kubuntu)
|
||||
.IP \[bu] 2
|
||||
\f[C]lubuntu\f[] (Lubuntu)
|
||||
.IP \[bu] 2
|
||||
\f[C]ubuntu\-budgie\f[] (Ubuntu Budgie)
|
||||
.IP \[bu] 2
|
||||
\f[C]ubuntu\-kylin\f[] (Ubuntu Kylin)
|
||||
.IP \[bu] 2
|
||||
\f[C]ubuntu\-mate\f[] (Ubuntu MATE)
|
||||
.IP \[bu] 2
|
||||
\f[C]ubuntu\-studio\f[] (Ubuntu Studio)
|
||||
.IP \[bu] 2
|
||||
\f[C]ubuntu\f[] (Ubuntu)
|
||||
.IP \[bu] 2
|
||||
\f[C]xubuntu\f[] (Xubuntu)
|
||||
.SS Other Linux Guests
|
||||
.PP
|
||||
\f[C]quickget\f[] also supports:
|
||||
.IP \[bu] 2
|
||||
\f[C]alma\f[] (Alma Linux)
|
||||
.IP \[bu] 2
|
||||
\f[C]alpine\f[] (Alpine Linux)
|
||||
.IP \[bu] 2
|
||||
\f[C]archlinux\f[] (Arch Linux)
|
||||
.IP \[bu] 2
|
||||
\f[C]arcolinux\f[] (Arco Linux)
|
||||
.IP \[bu] 2
|
||||
\f[C]cachyos\f[] (CachyOS)
|
||||
.IP \[bu] 2
|
||||
\f[C]debian\f[] (Debian)
|
||||
.IP \[bu] 2
|
||||
\f[C]elementary\f[] (elementary OS)
|
||||
.IP \[bu] 2
|
||||
\f[C]fedora\f[] (Fedora)
|
||||
.IP \[bu] 2
|
||||
\f[C]garuda\f[] (Garuda Linux)
|
||||
.IP \[bu] 2
|
||||
\f[C]gentoo\f[] (Gentoo)
|
||||
.IP \[bu] 2
|
||||
\f[C]haiku\f[] (Haiku)
|
||||
.IP \[bu] 2
|
||||
\f[C]kali\f[] (Kali)
|
||||
.IP \[bu] 2
|
||||
\f[C]kdeneon\f[] (KDE Neon)
|
||||
.IP \[bu] 2
|
||||
\f[C]kolibrios\f[] (KolibriOS)
|
||||
.IP \[bu] 2
|
||||
\f[C]linuxmint\-cinnamon\f[] (Linux Mint Cinnamon)
|
||||
.IP \[bu] 2
|
||||
\f[C]linuxmint\-mate\f[] (Linux Mint MATE)
|
||||
.IP \[bu] 2
|
||||
\f[C]linuxmint\-xfce\f[] (Linux Mint XFCE)
|
||||
.IP \[bu] 2
|
||||
\f[C]manjaro\-budgie\f[] (Manjaro Budgie)
|
||||
.IP \[bu] 2
|
||||
\f[C]manjaro\-cinnamon\f[] (Manjaro Cinnamon)
|
||||
.IP \[bu] 2
|
||||
\f[C]manjaro\-deepin\f[] (Manjaro Deepin)
|
||||
.IP \[bu] 2
|
||||
\f[C]manjaro\-gnome\f[] (Manjaro Gnome)
|
||||
.IP \[bu] 2
|
||||
\f[C]manjaro\-i3\f[] (Manjaro i3)
|
||||
.IP \[bu] 2
|
||||
\f[C]manjaro\-kde\f[] (Manjaro KDE)
|
||||
.IP \[bu] 2
|
||||
\f[C]manjaro\-mate\f[] (Manjaro MATE)
|
||||
.IP \[bu] 2
|
||||
\f[C]manjaro\-xfce\f[] (Manjaro XFCE)
|
||||
.IP \[bu] 2
|
||||
\f[C]mxlinux\-fluxbox\f[] (MX Linux Fluxbox)
|
||||
.IP \[bu] 2
|
||||
\f[C]mxlinux\-kde\f[] (MX Linux KDE)
|
||||
.IP \[bu] 2
|
||||
\f[C]mxlinux\-xfce\f[] (MX Linux XFCE)
|
||||
.IP \[bu] 2
|
||||
\f[C]nixos\-gnome\f[] (NixOS Gnome)
|
||||
.IP \[bu] 2
|
||||
\f[C]nixos\-minimal\f[] (NixOS Minimal)
|
||||
.IP \[bu] 2
|
||||
\f[C]nixos\-plasma5\f[] (NixOS KDE)
|
||||
.IP \[bu] 2
|
||||
\f[C]opensuse\f[] (openSUSE)
|
||||
.IP \[bu] 2
|
||||
\f[C]oraclelinux\f[] (Oracle Linux)
|
||||
.IP \[bu] 2
|
||||
\f[C]popos\f[] (Pop!_OS)
|
||||
.IP \[bu] 2
|
||||
\f[C]regolith\f[] (Regolith Linux)
|
||||
.IP \[bu] 2
|
||||
\f[C]rockylinux\f[] (Rocky Linux)
|
||||
.IP \[bu] 2
|
||||
\f[C]solus\f[] (Solus)
|
||||
.IP \[bu] 2
|
||||
\f[C]tails\f[] (Tails)
|
||||
.IP \[bu] 2
|
||||
\f[C]void\f[] (Void Linux)
|
||||
.IP \[bu] 2
|
||||
\f[C]zorin\f[] (Zorin OS)
|
||||
.SS BSD Guest Support
|
||||
.PP
|
||||
\f[C]quickget\f[] also supports:
|
||||
.IP \[bu] 2
|
||||
\f[C]freebsd\f[] (FreeBSD)
|
||||
.IP \[bu] 2
|
||||
\f[C]openbsd\f[] (OpenBSD)
|
||||
.PP
|
||||
Or you can download a Linux image and manually create a VM
|
||||
configuration.
|
||||
.IP \[bu] 2
|
||||
Download a .iso image of a Linux distribution
|
||||
.IP \[bu] 2
|
||||
Create a VM configuration file; for example
|
||||
\f[C]debian\-bullseye.conf\f[]
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
guest_os="linux"
|
||||
disk_img="debian\-bullseye/disk.qcow2"
|
||||
iso="debian\-bullseye/firmware\-11.0.0\-amd64\-DVD\-1.iso"
|
||||
\f[]
|
||||
.fi
|
||||
.PP
|
||||
If you already have a collection of ISOs downloaded you can have
|
||||
\f[C]quickget\f[] find and copy your existing file into the VM
|
||||
directory.
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
\-\-isodir\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ base\ path\ beneath\ which\ to\ find\ local\ ISO\ copy
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ if\ a\ matching\ file\ is\ found\ it\ will\ be\ copied\ to\ the\ VM\ directory
|
||||
\-\-localiso\ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ optional\ local\ ISO\ filename\ \-\ defaults\ to\ target\ filename
|
||||
\f[]
|
||||
.fi
|
||||
.PP
|
||||
\f[C]quickget\f[] will then continue to \f[C]wget\f[] or \f[C]zsync\f[]
|
||||
using that file as a prior copy.
|
||||
If the target file exists in the VM directory \f[C]quickget\f[] will
|
||||
raise an error if you run it with \f[C]\-\-isodir\f[]
|
||||
.IP \[bu] 2
|
||||
Use \f[C]quickemu\f[] to start the virtual machine:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
quickemu\ \-\-vm\ debian\-bullseye.conf
|
||||
\f[]
|
||||
.fi
|
||||
.IP \[bu] 2
|
||||
Complete the installation as normal.
|
||||
.IP \[bu] 2
|
||||
Post\-install:
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
Install the SPICE agent (\f[C]spice\-vdagent\f[]) to enable copy/paste
|
||||
and USB redirection.
|
||||
.IP \[bu] 2
|
||||
Install the SPICE WebDAV agent (\f[C]spice\-webdavd\f[]) to enable file
|
||||
sharing.
|
||||
.RE
|
||||
.SS macOS Guest
|
||||
.PP
|
||||
\f[C]quickget\f[] automatically downloads a macOS recovery image and
|
||||
creates a virtual machine configuration.
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
quickget\ macos\ catalina
|
||||
quickemu\ \-\-vm\ macos\-catalina.conf
|
||||
\f[]
|
||||
.fi
|
||||
.PP
|
||||
macOS \f[C]high\-sierra\f[], \f[C]mojave\f[], \f[C]catalina\f[],
|
||||
\f[C]big\-sur\f[] and \f[C]monterey\f[] are supported.
|
||||
.IP \[bu] 2
|
||||
Use cursor keys and enter key to select the \f[B]macOS Base System\f[]
|
||||
.IP \[bu] 2
|
||||
From \f[B]macOS Utilities\f[]
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
Click \f[B]Disk Utility\f[] and \f[B]Continue\f[]
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
On macOS Catalina, Big Sur & Monterey
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
Select \f[C]Apple\ Inc.\ VirtIO\ Block\ Media\f[] from the list and
|
||||
click \f[B]Erase\f[].
|
||||
.RE
|
||||
.IP \[bu] 2
|
||||
On macOS Mojave and High Sierra
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
Select \f[C]QEMU\ HARDDISK\ Media\f[] (~103.08GB) from the list and
|
||||
click \f[B]Erase\f[].
|
||||
.RE
|
||||
.RE
|
||||
.IP \[bu] 2
|
||||
Enter a \f[C]Name:\f[] for the disk and click \f[B]Erase\f[].
|
||||
.IP \[bu] 2
|
||||
Click \f[B]Done\f[].
|
||||
.IP \[bu] 2
|
||||
Close Disk Utility
|
||||
.RE
|
||||
.IP \[bu] 2
|
||||
From \f[B]macOS Utilities\f[]
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
Click \f[B]Reinstall macOS\f[] and \f[B]Continue\f[]
|
||||
.RE
|
||||
.IP \[bu] 2
|
||||
Complete the installation as you normally would.
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
On the first reboot use cursor keys and enter key to select \f[B]macOS
|
||||
Installer\f[]
|
||||
.IP \[bu] 2
|
||||
On the subsequent reboots use cursor keys and enter key to select the
|
||||
disk you named
|
||||
.RE
|
||||
.PP
|
||||
The default macOS configuration looks like this:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
guest_os="macos"
|
||||
img="macos\-catalina/RecoveryImage.img"
|
||||
disk_img="macos\-catalina/disk.qcow2"
|
||||
macos_release="catalina"
|
||||
\f[]
|
||||
.fi
|
||||
.IP \[bu] 2
|
||||
\f[C]guest_os="macos"\f[] instructs Quickemu to optimise for macOS.
|
||||
.IP \[bu] 2
|
||||
\f[C]macos_release="catalina"\f[] instructs Quickemu to optimise for a
|
||||
particular macOS release.
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
For example VirtIO Network and Memory Ballooning are available in Big
|
||||
Sur and newer, but not previous releases.
|
||||
.IP \[bu] 2
|
||||
And VirtIO Block Media (disks) are supported/stable in Catalina and
|
||||
newer.
|
||||
.RE
|
||||
.SS macOS compatibility
|
||||
.PP
|
||||
There are some considerations when running macOS via Quickemu.
|
||||
.IP \[bu] 2
|
||||
Supported macOS releases:
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
High Sierra
|
||||
.IP \[bu] 2
|
||||
Mojave
|
||||
.IP \[bu] 2
|
||||
Catalina \f[B](Recommended)\f[]
|
||||
.IP \[bu] 2
|
||||
Big Sur
|
||||
.IP \[bu] 2
|
||||
Monterey
|
||||
.RE
|
||||
.IP \[bu] 2
|
||||
\f[C]quickemu\f[] will automatically download the required
|
||||
OpenCore (https://github.com/acidanthera/OpenCorePkg) bootloader and
|
||||
OVMF firmware from OSX\-KVM (https://github.com/kholia/OSX-KVM).
|
||||
.IP \[bu] 2
|
||||
Optimised by default, but no GPU acceleration is available.
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
Host CPU vendor is detected and guest CPU is optimised accordingly.
|
||||
.IP \[bu] 2
|
||||
VirtIO Block
|
||||
Media (https://www.kraxel.org/blog/2019/06/macos-qemu-guest/) is used
|
||||
for the system disk where supported.
|
||||
.IP \[bu] 2
|
||||
VirtIO \f[C]usb\-tablet\f[] (http://philjordan.eu/osx-virt/) is used for
|
||||
the mouse.
|
||||
.IP \[bu] 2
|
||||
VirtIO Network (\f[C]virtio\-net\f[]) is supported and enabled on macOS
|
||||
Big Sur and newer but previous releases use \f[C]vmxnet3\f[].
|
||||
.IP \[bu] 2
|
||||
VirtIO Memory Ballooning is supported and enabled on macOS Big Sur and
|
||||
newer but disabled for other support macOS releases.
|
||||
.RE
|
||||
.IP \[bu] 2
|
||||
USB host and SPICE pass\-through is:
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
UHCI (USB 2.0) on macOS Catalina and earlier.
|
||||
.IP \[bu] 2
|
||||
XHCI (USB 3.0) on macOS Big Sur and newer.
|
||||
.RE
|
||||
.IP \[bu] 2
|
||||
Display resolution can only be changed via macOS System Preferences.
|
||||
.IP \[bu] 2
|
||||
Full Duplex audio works on macOS High Sierra, Mojave and Catalina.
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
\f[B]macOS Big Sur and Monterey have no audio at all\f[].
|
||||
.RE
|
||||
.IP \[bu] 2
|
||||
File sharing between guest and host is available via
|
||||
virtio\-9p (https://wiki.qemu.org/Documentation/9psetup) and SPICE
|
||||
webdavd (https://gitlab.gnome.org/GNOME/phodav/-/merge_requests/24).
|
||||
.IP \[bu] 2
|
||||
Copy/paste via SPICE agent is \f[B]not available on macOS\f[].
|
||||
.SS Windows 8.1, 10 & 11 Guests
|
||||
.PP
|
||||
\f[C]quickget\f[] can automatically download Windows 8.1, Windows
|
||||
10 (https://www.microsoft.com/en-gb/software-download/windows10ISO) 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/)
|
||||
and creates a virtual machine configuration.
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
quickget\ windows\ 11
|
||||
quickemu\ \-\-vm\ windows\-11.conf
|
||||
\f[]
|
||||
.fi
|
||||
.IP \[bu] 2
|
||||
Complete the installation as you normally would.
|
||||
.IP \[bu] 2
|
||||
All relevant drivers and services should be installed automatically.
|
||||
.SS Regional versions
|
||||
.PP
|
||||
By default \f[C]quickget\f[] will download the \f[I]\[lq]English
|
||||
International\[rq]\f[] release, but you can optionally specify one of
|
||||
the supported languages: For example:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
quickget\ windows\ 11\ "Chinese\ (Traditional)"
|
||||
\f[]
|
||||
.fi
|
||||
.PP
|
||||
The default Windows 11 configuration looks like this:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
guest_os="windows"
|
||||
disk_img="windows\-11/disk.qcow2"
|
||||
iso="windows\-11/Win11_EnglishInternational_x64.iso"
|
||||
fixed_iso="windows\-11/virtio\-win.iso"
|
||||
tpm="on"
|
||||
\f[]
|
||||
.fi
|
||||
.IP \[bu] 2
|
||||
\f[C]guest_os="windows"\f[] instructs \f[C]quickemu\f[] to optimise for
|
||||
Windows.
|
||||
.IP \[bu] 2
|
||||
\f[C]fixed_iso=\f[] specifies the ISO image that provides VirtIO
|
||||
drivers.
|
||||
.IP \[bu] 2
|
||||
\f[C]tpm="on"\f[] instructs \f[C]quickemu\f[] to create a software
|
||||
emulated TPM device using \f[C]swtpm\f[].
|
||||
.SS BSD Guests
|
||||
.PP
|
||||
\f[C]quickemu\f[] supports FreeBSD and OpenBSD.
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
quickget\ freebsd\ 13_0
|
||||
quickemu\ \-\-vm\ freebsd\-13_0.conf
|
||||
\f[]
|
||||
.fi
|
||||
.SS Other Guests
|
||||
.IP \[bu] 2
|
||||
\f[C]android\f[] (Android x86)
|
||||
.SS Haiku Guests
|
||||
.PP
|
||||
\f[C]quickemu\f[] supports Haiku (https://www.haiku-os.org/).
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
quickget\ quickget\ haiku\ r1beta3\-x86_64
|
||||
quickemu\ \-\-vm\ haiku\-r1beta3\-x86_64.conf
|
||||
\f[]
|
||||
.fi
|
||||
.PP
|
||||
At the moment the only way to share files between host and a Haiku guest
|
||||
is by using SSH (having a SSH server running on the host):
|
||||
.PP
|
||||
On guest:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
scp\ example.txt\ user\@host\-local\-ip:/home/user\ #\ sending\ a\ file\ from\ guest\ to\ host
|
||||
scp\ user\@host\-local\-ip:/home/user/example.txt\ .\ #\ receiving\ a\ file\ from\ host\ to\ guest
|
||||
\f[]
|
||||
.fi
|
||||
.PP
|
||||
\f[C]quickget\f[] cannot automatically download and create virtual
|
||||
machines for Haiku nightly versions, but they work if the ISO and
|
||||
configuration are set up manually.
|
||||
.SH All the options
|
||||
.PP
|
||||
Here are the usage instructions:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
|
||||
|
||||
Usage
|
||||
\ \ quickemu\ \-\-vm\ ubuntu.conf
|
||||
|
||||
You\ can\ also\ pass\ optional\ parameters
|
||||
\ \ \-\-accessible\ \ \ \ \ \ \ \ \ \ \ \ :\ Select\ accessible\ facilitation.\ \[aq]braille\[aq]\ (default\ \-\ currently\ requires\ \-\-display\ sdl\ )
|
||||
\ \ \-\-delete\-disk\ \ \ \ \ \ \ \ \ \ \ :\ Delete\ the\ disk\ image\ and\ EFI\ variables
|
||||
\ \ \-\-delete\-vm\ \ \ \ \ \ \ \ \ \ \ \ \ :\ Delete\ the\ entire\ VM\ and\ it\[aq]s\ configuration
|
||||
\ \ \-\-display\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ Select\ display\ backend.\ \[aq]sdl\[aq]\ (default),\ \[aq]gtk\[aq],\ \[aq]none\[aq],\ or\ \[aq]spice\[aq]
|
||||
\ \ \-\-fullscreen\ \ \ \ \ \ \ \ \ \ \ \ :\ Starts\ VM\ in\ full\ screen\ mode\ (Ctl+Alt+f\ to\ exit)
|
||||
\ \ \-\-ignore\-msrs\-always\ \ \ \ :\ Configure\ KVM\ to\ always\ ignore\ unhandled\ machine\-specific\ registers
|
||||
\ \ \-\-screen\ <screen>\ \ \ \ \ \ \ :\ Use\ specified\ screen\ to\ determine\ the\ window\ size.
|
||||
\ \ \-\-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.
|
||||
\ \ \-\-version\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ Print\ version
|
||||
\f[]
|
||||
.fi
|
||||
.SS Desktop shortcuts
|
||||
.PP
|
||||
Desktop shortcuts can be created for a VM, the shortcuts are saved in
|
||||
\f[C]~/.local/share/applications\f[].
|
||||
Here is an example of how to create a shortcut.
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
quickemu\ \-\-vm\ ubuntu\-focal\-desktop.conf\ \-\-shortcut
|
||||
\f[]
|
||||
.fi
|
||||
.SS Screen and window size (Linux guests only)
|
||||
.PP
|
||||
\f[C]qemu\f[] will always default to the primary monitor to display the
|
||||
VM's window.
|
||||
.PP
|
||||
Without the \f[C]\-\-screen\f[] option, \f[C]quickemu\f[] will look for
|
||||
the size of the smallest monitor, and use a size that fits on said
|
||||
monitor.
|
||||
.PP
|
||||
The \f[C]\-\-screen\f[] option forces \f[C]quickemu\f[] to use the size
|
||||
of the given monitor to compute the size of the window.
|
||||
\f[B]It won't use that monitor to display the VM's window if it's not
|
||||
the primary monitor\f[].
|
||||
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.
|
||||
.PP
|
||||
The \f[C]\-\-screen\f[] option is also useful with the
|
||||
\f[C]\-\-fullscreen\f[] option, again because \f[C]qemu\f[] 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.
|
||||
.PP
|
||||
To know which screen to use, type:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
xrandr\ \-\-listmonitors\ |\ grep\ \-v\ Monitors
|
||||
\f[]
|
||||
.fi
|
||||
.PP
|
||||
The command will output something like this:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
\ 0:\ +*HDMI\-0\ 2560/597x1440/336+1920+0\ \ HDMI\-0
|
||||
\ 1:\ +DVI\-D\-0\ 1920/527x1080/296+0+0\ \ DVI\-D\-0
|
||||
\f[]
|
||||
.fi
|
||||
.PP
|
||||
The first number is what needs to be passed to the \f[C]\-\-screen\f[]
|
||||
option.
|
||||
.PP
|
||||
For example:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
quickemu\ \-\-vm\ vm.conf\ \-\-screen\ 0
|
||||
\f[]
|
||||
.fi
|
||||
.PP
|
||||
The above uses the 2560x1440 screen to compute the size of the window,
|
||||
which Quickemu sizes to 2048x1152.
|
||||
Without the \f[C]\-\-screen\f[] option, Quickemu would have used the
|
||||
1920x1080 monitor which results in a window size of 1664x936.
|
||||
.SH References
|
||||
.PP
|
||||
Useful reference that assisted the development of Quickemu.
|
||||
.IP \[bu] 2
|
||||
General
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
QEMU's documentation! (https://qemu.readthedocs.io/en/latest/)
|
||||
.IP \[bu] 2
|
||||
<https://pve.proxmox.com/wiki/Qemu/KVM_Virtual_Machines>
|
||||
.IP \[bu] 2
|
||||
<https://www.kraxel.org/blog/2020/01/qemu-sound-audiodev/>
|
||||
.RE
|
||||
.IP \[bu] 2
|
||||
macOS
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
<https://www.nicksherlock.com/2020/06/installing-macos-big-sur-on-proxmox/>
|
||||
.IP \[bu] 2
|
||||
<https://passthroughpo.st/mac-os-adds-early-support-for-virtio-qemu/>
|
||||
.IP \[bu] 2
|
||||
<https://github.com/kholia/OSX-KVM>
|
||||
.IP \[bu] 2
|
||||
<https://github.com/thenickdude/KVM-Opencore>
|
||||
.IP \[bu] 2
|
||||
<https://github.com/acidanthera/OpenCorePkg/tree/master/Utilities/macrecovery>
|
||||
.IP \[bu] 2
|
||||
<https://www.kraxel.org/blog/2017/09/running-macos-as-guest-in-kvm/>
|
||||
.IP \[bu] 2
|
||||
<https://www.nicksherlock.com/2017/10/passthrough-of-advanced-cpu-features-for-macos-high-sierra-guests/>
|
||||
.IP \[bu] 2
|
||||
<http://philjordan.eu/osx-virt/>
|
||||
.IP \[bu] 2
|
||||
<https://github.com/Dids/clover-builder>
|
||||
.IP \[bu] 2
|
||||
OpenCore Configurator (https://mackie100projects.altervista.org)
|
||||
.RE
|
||||
.IP \[bu] 2
|
||||
Windows
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
<https://www.heiko-sieger.info/running-windows-10-on-linux-using-kvm-with-vga-passthrough/>
|
||||
.IP \[bu] 2
|
||||
<https://leduccc.medium.com/improving-the-performance-of-a-windows-10-guest-on-qemu-a5b3f54d9cf5>
|
||||
.IP \[bu] 2
|
||||
<https://frontpagelinux.com/tutorials/how-to-use-linux-kvm-to-optimize-your-windows-10-virtual-machine/>
|
||||
.IP \[bu] 2
|
||||
<https://turlucode.com/qemu-command-line-args/>
|
||||
.IP \[bu] 2
|
||||
<https://github.com/pbatard/Fido>
|
||||
.IP \[bu] 2
|
||||
<https://www.catapultsystems.com/blogs/create-zero-touch-windows-10-iso/>
|
||||
.RE
|
||||
.IP \[bu] 2
|
||||
TPM
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
<https://qemu-project.gitlab.io/qemu/specs/tpm.html>
|
||||
.IP \[bu] 2
|
||||
<https://www.tecklyfe.com/how-to-create-a-windows-11-virtual-machine-in-qemu/>
|
||||
.RE
|
||||
.IP \[bu] 2
|
||||
9p & virtiofs
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
<https://wiki.qemu.org/Documentation/9p>
|
||||
.IP \[bu] 2
|
||||
<https://wiki.qemu.org/Documentation/9psetup>
|
||||
.IP \[bu] 2
|
||||
<https://www.kraxel.org/blog/2019/06/macos-qemu-guest/>
|
||||
.IP \[bu] 2
|
||||
<https://superuser.com/questions/628169/how-to-share-a-directory-with-the-host-without-networking-in-qemu>
|
||||
.IP \[bu] 2
|
||||
<https://virtio-fs.gitlab.io/>
|
||||
.RE
|
||||
.SH AUTHORS
|
||||
.PP
|
||||
Written by Martin Wimpress.
|
||||
.SH BUGS
|
||||
.PP
|
||||
Submit bug reports online at:
|
||||
<https://github.com/quickemu-project/quickemu/issues>
|
||||
.SH SEE ALSO
|
||||
.PP
|
||||
Full sources at: <https://github.com/quickemu-project/quickemu>
|
||||
.PP
|
||||
quickemu_conf(1), quickget(1), quickgui(1)
|
||||
.SH AUTHORS
|
||||
Martin Wimpress.
|
650
docs/quickemu.1.md
Normal file
650
docs/quickemu.1.md
Normal file
@ -0,0 +1,650 @@
|
||||
---
|
||||
author: Martin Wimpress
|
||||
date: 'January 7, 2022'
|
||||
footer: quickemu
|
||||
header: Quickemu User Manual
|
||||
section: 1
|
||||
title: QUICKEMU
|
||||
---
|
||||
|
||||
NAME
|
||||
====
|
||||
|
||||
quickemu - A quick VM builder and manager
|
||||
|
||||
SYNOPSIS
|
||||
========
|
||||
|
||||
**quickemu** \[*OPTION*\]...
|
||||
|
||||
DESCRIPTION
|
||||
===========
|
||||
|
||||
**quickemu** will create and run highly optimised desktop virtual
|
||||
machines for Linux, macOS and Windows
|
||||
|
||||
OPTIONS
|
||||
=======
|
||||
|
||||
**--vm**
|
||||
: vm configuration file
|
||||
|
||||
You can also pass optional parameters
|
||||
|
||||
**--delete**
|
||||
: Delete the disk image.
|
||||
|
||||
**--display**
|
||||
: Select display backend. 'sdl' (default), 'gtk', 'none' or 'spice'
|
||||
|
||||
**--fullscreen**
|
||||
: Starts VM in full screen mode (Ctl+Alt+f to exit)
|
||||
|
||||
**--ignore-msrs-always**
|
||||
: Configure KVM to always ignore unhandled machine-specific registers
|
||||
|
||||
**--screen \<screen\>**
|
||||
: Use specified screen to determine the window size.
|
||||
|
||||
**--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.
|
||||
|
||||
**--version**
|
||||
: Print version
|
||||
|
||||
EXAMPLES
|
||||
========
|
||||
|
||||
**quickemu --vm ubuntu-mate-impish.conf**
|
||||
: Launches the VM specified in the file *ubuntu-mate-impish.conf*
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
Quickly create and run highly optimised desktop virtual machines for
|
||||
Linux, macOS and Windows; with just two commands. You decide what
|
||||
operating system you want to run and Quickemu will figure out the best
|
||||
way to do it for you. For example:
|
||||
|
||||
``` {.bash}
|
||||
quickget ubuntu-mate impish
|
||||
quickemu --vm ubuntu-mate-impish.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** Monterey, Big Sur, Catalina, Mojave & High Sierra
|
||||
|
||||
- **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)**
|
||||
- [Fedora](https://getfedora.org/) & openSUSE
|
||||
([Leap](https://get.opensuse.org/leap/),
|
||||
[Tumbleweed](https://get.opensuse.org/tumbleweed/),
|
||||
[MicroOS](https://microos.opensuse.org/))
|
||||
- [Linux Mint](https://linuxmint.com/) (Cinnamon, MATE, and XFCE),
|
||||
[elementary OS](https://elementary.io/),
|
||||
[Pop!\_OS](https://pop.system76.com/)
|
||||
- [Arch Linux](https://www.archlinux.org/),
|
||||
[Kali](https://www.kali.org/),[Garuda](https://garudalinux.org/),
|
||||
[ZorinOS](https://zorin.com/os/) & [NixOS](https://nixos.org/)
|
||||
- [Regolith Linux](https://regolith-linux.org/) (Release 1.6 and
|
||||
latest 2.0.0 pre-release )
|
||||
|
||||
- [FreeBSD](https://www.freebsd.org/) &
|
||||
[OpenBSD](https://www.openbsd.org/)
|
||||
|
||||
- Full SPICE support including host/guest clipboard sharing
|
||||
- VirtIO-webdavd file sharing for Linux and Windows 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
|
||||
- Samba file sharing for Linux, macOS and Windows guests (*if `smbd`
|
||||
is installed on the host*)
|
||||
- VirGL acceleration
|
||||
- USB device pass-through
|
||||
- Smartcard pass-through
|
||||
- Automatic SSH port forwarding to guests
|
||||
- Network port forwarding
|
||||
- Full duplex audio
|
||||
- EFI (with or without SecureBoot) and Legacy BIOS boot
|
||||
- Graphical user interfaces available
|
||||
|
||||
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.
|
||||
|
||||
We have a Discord for this project:
|
||||
[](https://discord.gg/sNmz3uw)
|
||||
|
||||
See this (old) video where I explain some of my motivations for creating
|
||||
Quickemu.
|
||||
|
||||
[](https://www.youtube.com/watch?v=AOTYWEgw0hI)
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
- [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*)
|
||||
- [Coreutils](https://www.gnu.org/software/coreutils/)
|
||||
- [EDK II](https://github.com/tianocore/edk2)
|
||||
- [grep](https://www.gnu.org/software/grep/)
|
||||
- [jq](https://stedolan.github.io/jq/)
|
||||
- [LSB](https://wiki.linuxfoundation.org/lsb/start)
|
||||
- [procps](https://gitlab.com/procps-ng/procps)
|
||||
- [python3](https://www.python.org/)
|
||||
- [macrecovery](https://github.com/acidanthera/OpenCorePkg/tree/master/Utilities/macrecovery)
|
||||
- [mkisofs](http://cdrtools.sourceforge.net/private/cdrecord.html)
|
||||
- [usbutils](https://github.com/gregkh/usbutils)
|
||||
- [util-linux](https://github.com/karelzak/util-linux)
|
||||
- [sed](https://www.gnu.org/software/sed/)
|
||||
- [spicy](https://gitlab.freedesktop.org/spice/spice-gtk)
|
||||
- [swtpm](https://github.com/stefanberger/swtpm)
|
||||
- [Wget](https://www.gnu.org/software/wget/)
|
||||
- [xdg-user-dirs](https://www.freedesktop.org/wiki/Software/xdg-user-dirs/)
|
||||
- [xrandr](https://gitlab.freedesktop.org/xorg/app/xrandr)
|
||||
- [zsync](http://zsync.moria.org.uk/)
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
Graphical User Interfaces
|
||||
-------------------------
|
||||
|
||||
While `quickemu` and `quickget` are designed for the terminal, a
|
||||
graphical user interface is also available:
|
||||
|
||||
- **[Quickgui](https://github.com/quickgui/quickgui)** by [Mark
|
||||
Johnson](https://github.com/marxjohnson) and [Yannick
|
||||
Mauray](https://github.com/ymauray).
|
||||
|
||||
Many thanks to [Luke Wesley-Holley](https://github.com/Lukewh) and
|
||||
[Philipp Kiemle](https://github.com/daPhipz) for creating the
|
||||
**[Quickemu icons](https://github.com/Lukewh/quickemu-icons)** 🎨
|
||||
|
||||
### Quickgui for Ubuntu
|
||||
|
||||
``` {.bash}
|
||||
sudo add-apt-repository ppa:yannick-mauray/quickgui
|
||||
sudo apt update
|
||||
sudo apt install quickgui
|
||||
```
|
||||
|
||||
Ubuntu Guest
|
||||
------------
|
||||
|
||||
`quickget` will automatically download an Ubuntu release and create the
|
||||
virtual machine configuration.
|
||||
|
||||
``` {.bash}
|
||||
quickget ubuntu focal
|
||||
quickemu --vm ubuntu-focal.conf
|
||||
```
|
||||
|
||||
- Complete the installation as normal.
|
||||
- Post-install:
|
||||
- Install the SPICE agent (`spice-vdagent`) to enable copy/paste
|
||||
and USB redirection
|
||||
- `sudo apt install spice-vdagent`
|
||||
- Install the SPICE WebDAV agent (`spice-webdavd`) to enable file
|
||||
sharing.
|
||||
- `sudo apt install spice-webdavd`
|
||||
|
||||
### Ubuntu devel (daily-live) images
|
||||
|
||||
`quickget` can also download/refresh devel images via `zsync` for Ubuntu
|
||||
developers and testers.
|
||||
|
||||
``` {.bash}
|
||||
quickget ubuntu devel
|
||||
quickemu --vm ubuntu-devel.conf
|
||||
```
|
||||
|
||||
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` (Kubuntu)
|
||||
- `lubuntu` (Lubuntu)
|
||||
- `ubuntu-budgie` (Ubuntu Budgie)
|
||||
- `ubuntu-kylin` (Ubuntu Kylin)
|
||||
- `ubuntu-mate` (Ubuntu MATE)
|
||||
- `ubuntu-studio` (Ubuntu Studio)
|
||||
- `ubuntu` (Ubuntu)
|
||||
- `xubuntu` (Xubuntu)
|
||||
|
||||
Other Linux Guests
|
||||
------------------
|
||||
|
||||
`quickget` also supports:
|
||||
|
||||
- `alma` (Alma Linux)
|
||||
- `alpine` (Alpine Linux)
|
||||
- `archlinux` (Arch Linux)
|
||||
- `arcolinux` (Arco Linux)
|
||||
- `cachyos` (CachyOS)
|
||||
- `debian` (Debian)
|
||||
- `elementary` (elementary OS)
|
||||
- `fedora` (Fedora)
|
||||
- `garuda` (Garuda Linux)
|
||||
- `gentoo` (Gentoo)
|
||||
- `haiku` (Haiku)
|
||||
- `kali` (Kali)
|
||||
- `kdeneon` (KDE Neon)
|
||||
- `kolibrios` (KolibriOS)
|
||||
- `linuxmint-cinnamon` (Linux Mint Cinnamon)
|
||||
- `linuxmint-mate` (Linux Mint MATE)
|
||||
- `linuxmint-xfce` (Linux Mint XFCE)
|
||||
- `manjaro-budgie` (Manjaro Budgie)
|
||||
- `manjaro-cinnamon` (Manjaro Cinnamon)
|
||||
- `manjaro-deepin` (Manjaro Deepin)
|
||||
- `manjaro-gnome` (Manjaro Gnome)
|
||||
- `manjaro-i3` (Manjaro i3)
|
||||
- `manjaro-kde` (Manjaro KDE)
|
||||
- `manjaro-mate` (Manjaro MATE)
|
||||
- `manjaro-xfce` (Manjaro XFCE)
|
||||
- `mxlinux-fluxbox` (MX Linux Fluxbox)
|
||||
- `mxlinux-kde` (MX Linux KDE)
|
||||
- `mxlinux-xfce` (MX Linux XFCE)
|
||||
- `nixos-gnome` (NixOS Gnome)
|
||||
- `nixos-minimal` (NixOS Minimal)
|
||||
- `nixos-plasma5` (NixOS KDE)
|
||||
- `opensuse` (openSUSE)
|
||||
- `oraclelinux` (Oracle Linux)
|
||||
- `popos` (Pop!\_OS)
|
||||
- `regolith` (Regolith Linux)
|
||||
- `rockylinux` (Rocky Linux)
|
||||
- `solus` (Solus)
|
||||
- `tails` (Tails)
|
||||
- `void` (Void Linux)
|
||||
- `zorin` (Zorin OS)
|
||||
|
||||
### BSD Guest Support
|
||||
|
||||
`quickget` also supports:
|
||||
|
||||
- `freebsd` (FreeBSD)
|
||||
- `openbsd` (OpenBSD)
|
||||
|
||||
Or you can download a Linux image and manually create a VM
|
||||
configuration.
|
||||
|
||||
- Download a .iso image of a Linux distribution
|
||||
- Create a VM configuration file; for example `debian-bullseye.conf`
|
||||
|
||||
``` {.bash}
|
||||
guest_os="linux"
|
||||
disk_img="debian-bullseye/disk.qcow2"
|
||||
iso="debian-bullseye/firmware-11.0.0-amd64-DVD-1.iso"
|
||||
```
|
||||
|
||||
If you already have a collection of ISOs downloaded you can have
|
||||
`quickget` find and copy your existing file into the VM directory.
|
||||
|
||||
``` {.text}
|
||||
--isodir : base path beneath which to find local ISO copy
|
||||
if a matching file is found it will be copied to the VM directory
|
||||
--localiso : optional local ISO filename - defaults to target filename
|
||||
```
|
||||
|
||||
`quickget` will then continue to `wget` or `zsync` using that file as a
|
||||
prior copy. If the target file exists in the VM directory `quickget`
|
||||
will raise an error if you run it with `--isodir`
|
||||
|
||||
- Use `quickemu` to start the virtual machine:
|
||||
|
||||
``` {.bash}
|
||||
quickemu --vm debian-bullseye.conf
|
||||
```
|
||||
|
||||
- Complete the installation as normal.
|
||||
- Post-install:
|
||||
- Install the SPICE agent (`spice-vdagent`) to enable copy/paste
|
||||
and USB redirection.
|
||||
- Install the SPICE WebDAV agent (`spice-webdavd`) to enable file
|
||||
sharing.
|
||||
|
||||
macOS Guest
|
||||
-----------
|
||||
|
||||
`quickget` automatically downloads a macOS recovery image and creates a
|
||||
virtual machine configuration.
|
||||
|
||||
``` {.bash}
|
||||
quickget macos catalina
|
||||
quickemu --vm macos-catalina.conf
|
||||
```
|
||||
|
||||
macOS `high-sierra`, `mojave`, `catalina`, `big-sur` and `monterey` are
|
||||
supported.
|
||||
|
||||
- Use cursor keys and enter key to select the **macOS Base System**
|
||||
- From **macOS Utilities**
|
||||
- Click **Disk Utility** and **Continue**
|
||||
- On macOS Catalina, Big Sur & Monterey
|
||||
- Select `Apple Inc. VirtIO Block Media` from the list and
|
||||
click **Erase**.
|
||||
- On macOS Mojave and High Sierra
|
||||
- Select `QEMU HARDDISK Media` (\~103.08GB) from the list
|
||||
and click **Erase**.
|
||||
- Enter a `Name:` for the disk and click **Erase**.
|
||||
- Click **Done**.
|
||||
- Close Disk Utility
|
||||
- From **macOS Utilities**
|
||||
- Click **Reinstall macOS** and **Continue**
|
||||
- Complete the installation as you normally would.
|
||||
- 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
|
||||
|
||||
The default macOS configuration looks like this:
|
||||
|
||||
``` {.bash}
|
||||
guest_os="macos"
|
||||
img="macos-catalina/RecoveryImage.img"
|
||||
disk_img="macos-catalina/disk.qcow2"
|
||||
macos_release="catalina"
|
||||
```
|
||||
|
||||
- `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 and newer, but not previous releases.
|
||||
- And VirtIO Block Media (disks) are supported/stable in Catalina
|
||||
and newer.
|
||||
|
||||
### macOS compatibility
|
||||
|
||||
There are some considerations when running macOS via Quickemu.
|
||||
|
||||
- Supported macOS releases:
|
||||
- High Sierra
|
||||
- Mojave
|
||||
- Catalina **(Recommended)**
|
||||
- Big Sur
|
||||
- Monterey
|
||||
- `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).
|
||||
- Optimised by default, but no GPU acceleration is available.
|
||||
- Host CPU vendor is detected and guest CPU is optimised
|
||||
accordingly.
|
||||
- [VirtIO Block
|
||||
Media](https://www.kraxel.org/blog/2019/06/macos-qemu-guest/) is
|
||||
used for the system disk where supported.
|
||||
- [VirtIO `usb-tablet`](http://philjordan.eu/osx-virt/) is used
|
||||
for the mouse.
|
||||
- VirtIO Network (`virtio-net`) is supported and enabled on macOS
|
||||
Big Sur and newer but previous releases use `vmxnet3`.
|
||||
- VirtIO Memory Ballooning is supported and enabled on macOS Big
|
||||
Sur and newer but disabled for other support macOS releases.
|
||||
- USB host and SPICE pass-through is:
|
||||
- UHCI (USB 2.0) on macOS Catalina and earlier.
|
||||
- XHCI (USB 3.0) on macOS Big Sur and newer.
|
||||
- Display resolution can only be changed via macOS System Preferences.
|
||||
- Full Duplex audio works on macOS High Sierra, Mojave and Catalina.
|
||||
- **macOS Big Sur and Monterey have no audio at all**.
|
||||
- File sharing between guest and host is available via
|
||||
[virtio-9p](https://wiki.qemu.org/Documentation/9psetup) and [SPICE
|
||||
webdavd](https://gitlab.gnome.org/GNOME/phodav/-/merge_requests/24).
|
||||
- Copy/paste via SPICE agent is **not available on macOS**.
|
||||
|
||||
Windows 8.1, 10 & 11 Guests
|
||||
---------------------------
|
||||
|
||||
`quickget` can automatically download Windows 8.1, [Windows
|
||||
10](https://www.microsoft.com/en-gb/software-download/windows10ISO) 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/)
|
||||
and creates a virtual machine configuration.
|
||||
|
||||
``` {.bash}
|
||||
quickget windows 11
|
||||
quickemu --vm windows-11.conf
|
||||
```
|
||||
|
||||
- Complete the installation as you normally would.
|
||||
- All relevant drivers and services should be installed automatically.
|
||||
|
||||
### Regional versions
|
||||
|
||||
By default `quickget` will download the *"English International"*
|
||||
release, but you can optionally specify one of the supported languages:
|
||||
For example:
|
||||
|
||||
``` {.bash}
|
||||
quickget windows 11 "Chinese (Traditional)"
|
||||
```
|
||||
|
||||
The default Windows 11 configuration looks like this:
|
||||
|
||||
``` {.bash}
|
||||
guest_os="windows"
|
||||
disk_img="windows-11/disk.qcow2"
|
||||
iso="windows-11/Win11_EnglishInternational_x64.iso"
|
||||
fixed_iso="windows-11/virtio-win.iso"
|
||||
tpm="on"
|
||||
```
|
||||
|
||||
- `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`.
|
||||
|
||||
BSD Guests
|
||||
----------
|
||||
|
||||
`quickemu` supports FreeBSD and OpenBSD.
|
||||
|
||||
``` {.bash}
|
||||
quickget freebsd 13_0
|
||||
quickemu --vm freebsd-13_0.conf
|
||||
```
|
||||
|
||||
Other Guests
|
||||
------------
|
||||
|
||||
- `android` (Android x86)
|
||||
|
||||
Haiku Guests
|
||||
------------
|
||||
|
||||
`quickemu` supports [Haiku](https://www.haiku-os.org/).
|
||||
|
||||
``` {.bash}
|
||||
quickget quickget haiku r1beta3-x86_64
|
||||
quickemu --vm haiku-r1beta3-x86_64.conf
|
||||
```
|
||||
|
||||
At the moment the only way to share files between host and a Haiku guest
|
||||
is by using SSH (having a SSH server running on the host):
|
||||
|
||||
On guest:
|
||||
|
||||
``` {.bash}
|
||||
scp example.txt user@host-local-ip:/home/user # sending a file from guest to host
|
||||
scp user@host-local-ip:/home/user/example.txt . # receiving a file from host to guest
|
||||
```
|
||||
|
||||
`quickget` cannot automatically download and create virtual machines for
|
||||
Haiku nightly versions, but they work if the ISO and configuration are
|
||||
set up manually.
|
||||
|
||||
All the options
|
||||
===============
|
||||
|
||||
Here are the usage instructions:
|
||||
|
||||
``` {.bash}
|
||||
|
||||
|
||||
Usage
|
||||
quickemu --vm ubuntu.conf
|
||||
|
||||
You can also pass optional parameters
|
||||
--accessible : Select accessible facilitation. 'braille' (default - currently requires --display sdl )
|
||||
--delete-disk : Delete the disk image and EFI variables
|
||||
--delete-vm : Delete the entire VM and it's configuration
|
||||
--display : Select display backend. 'sdl' (default), 'gtk', 'none', or 'spice'
|
||||
--fullscreen : Starts VM in full screen mode (Ctl+Alt+f to exit)
|
||||
--ignore-msrs-always : Configure KVM to always ignore unhandled machine-specific registers
|
||||
--screen <screen> : Use specified screen to determine the window size.
|
||||
--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.
|
||||
--version : Print version
|
||||
|
||||
```
|
||||
|
||||
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
|
||||
```
|
||||
|
||||
Screen and window size (Linux guests only)
|
||||
------------------------------------------
|
||||
|
||||
`qemu` will always default to the primary monitor to display the VM's
|
||||
window.
|
||||
|
||||
Without the `--screen` option, `quickemu` will look for the size of the
|
||||
smallest monitor, and use a size that fits on said monitor.
|
||||
|
||||
The `--screen` option forces `quickemu` to use the size of the given
|
||||
monitor to compute the size of the window. **It won't use that monitor
|
||||
to display the VM's 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.
|
||||
|
||||
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.
|
||||
|
||||
To know which screen to use, type:
|
||||
|
||||
``` {.bash}
|
||||
xrandr --listmonitors | grep -v Monitors
|
||||
```
|
||||
|
||||
The command will output something like this:
|
||||
|
||||
``` {.bash}
|
||||
0: +*HDMI-0 2560/597x1440/336+1920+0 HDMI-0
|
||||
1: +DVI-D-0 1920/527x1080/296+0+0 DVI-D-0
|
||||
```
|
||||
|
||||
The first number is what needs to be passed to the `--screen` option.
|
||||
|
||||
For example:
|
||||
|
||||
``` {.bash}
|
||||
quickemu --vm vm.conf --screen 0
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
Useful reference that assisted the development of Quickemu.
|
||||
|
||||
- General
|
||||
- [QEMU's documentation!](https://qemu.readthedocs.io/en/latest/)
|
||||
- <https://pve.proxmox.com/wiki/Qemu/KVM_Virtual_Machines>
|
||||
- <https://www.kraxel.org/blog/2020/01/qemu-sound-audiodev/>
|
||||
- macOS
|
||||
- <https://www.nicksherlock.com/2020/06/installing-macos-big-sur-on-proxmox/>
|
||||
- <https://passthroughpo.st/mac-os-adds-early-support-for-virtio-qemu/>
|
||||
- <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/>
|
||||
- <https://www.nicksherlock.com/2017/10/passthrough-of-advanced-cpu-features-for-macos-high-sierra-guests/>
|
||||
- <http://philjordan.eu/osx-virt/>
|
||||
- <https://github.com/Dids/clover-builder>
|
||||
- [OpenCore
|
||||
Configurator](https://mackie100projects.altervista.org)
|
||||
- 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/>
|
||||
- <https://turlucode.com/qemu-command-line-args/>
|
||||
- <https://github.com/pbatard/Fido>
|
||||
- <https://www.catapultsystems.com/blogs/create-zero-touch-windows-10-iso/>
|
||||
- TPM
|
||||
- <https://qemu-project.gitlab.io/qemu/specs/tpm.html>
|
||||
- <https://www.tecklyfe.com/how-to-create-a-windows-11-virtual-machine-in-qemu/>
|
||||
- 9p & virtiofs
|
||||
- <https://wiki.qemu.org/Documentation/9p>
|
||||
- <https://wiki.qemu.org/Documentation/9psetup>
|
||||
- <https://www.kraxel.org/blog/2019/06/macos-qemu-guest/>
|
||||
- <https://superuser.com/questions/628169/how-to-share-a-directory-with-the-host-without-networking-in-qemu>
|
||||
- <https://virtio-fs.gitlab.io/>
|
||||
|
||||
AUTHORS
|
||||
=======
|
||||
|
||||
Written by Martin Wimpress.
|
||||
|
||||
BUGS
|
||||
====
|
||||
|
||||
Submit bug reports online at:
|
||||
<https://github.com/quickemu-project/quickemu/issues>
|
||||
|
||||
SEE ALSO
|
||||
========
|
||||
|
||||
Full sources at: <https://github.com/quickemu-project/quickemu>
|
||||
|
||||
quickemu\_conf(1), quickget(1), quickgui(1)
|
247
docs/quickemu_conf.1
Normal file
247
docs/quickemu_conf.1
Normal file
@ -0,0 +1,247 @@
|
||||
.\" Automatically generated by Pandoc 2.2.3.2
|
||||
.\"
|
||||
.TH "QUICKEMU_CONF" "1" "January 7, 2022" "quickemu_conf" "Quickemu Configuration Manual"
|
||||
.hy
|
||||
.SH NAME
|
||||
.PP
|
||||
quickemu_conf \- Options and parameters in the quickemu <vm>.conf
|
||||
.SH DESCRIPTION
|
||||
.PP
|
||||
\f[B]quickemu\f[] will create and run highly optimised desktop virtual
|
||||
machines for Linux, macOS and Windows.
|
||||
It uses sensible defaults, but many configuration options can be
|
||||
overridden in the required configuration file, which will as a minimum
|
||||
specify the path to the installation ISO and QEMU disk for the installed
|
||||
VM
|
||||
.SH OPTIONS
|
||||
.PP
|
||||
These are the options and defaults for the <vm>.conf file
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
#\ Lowercase\ variables\ are\ used\ in\ the\ VM\ config\ file\ only
|
||||
boot="efi"
|
||||
bridge=""
|
||||
cpu_cores=""
|
||||
disk_img=""
|
||||
disk_size=""
|
||||
fixed_iso=""
|
||||
floppy=""
|
||||
guest_os="linux"
|
||||
img=""
|
||||
iso=""
|
||||
macos_release=""
|
||||
port_forwards=()
|
||||
preallocation="off"
|
||||
ram=""
|
||||
secureboot="off"
|
||||
tpm="off"
|
||||
usb_devices=()
|
||||
\f[]
|
||||
.fi
|
||||
.SH EXAMPLES
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
guest_os="linux"
|
||||
disk_img="debian\-bullseye/disk.qcow2"
|
||||
iso="debian\-bullseye/firmware\-11.0.0\-amd64\-DVD\-1.iso"
|
||||
\f[]
|
||||
.fi
|
||||
.PP
|
||||
The default macOS configuration looks like this:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
guest_os="macos"
|
||||
img="macos\-catalina/RecoveryImage.img"
|
||||
disk_img="macos\-catalina/disk.qcow2"
|
||||
macos_release="catalina"
|
||||
\f[]
|
||||
.fi
|
||||
.IP \[bu] 2
|
||||
\f[C]guest_os="macos"\f[] instructs Quickemu to optimise for macOS.
|
||||
.IP \[bu] 2
|
||||
\f[C]macos_release="catalina"\f[] instructs Quickemu to optimise for a
|
||||
particular macOS release.
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
For example VirtIO Network and Memory Ballooning are available in Big
|
||||
Sur and newer, but not previous releases.
|
||||
.IP \[bu] 2
|
||||
And VirtIO Block Media (disks) are supported/stable in Catalina and
|
||||
newer.
|
||||
.RE
|
||||
.PP
|
||||
The default Windows 11 configuration looks like this:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
guest_os="windows"
|
||||
disk_img="windows\-11/disk.qcow2"
|
||||
iso="windows\-11/Win11_EnglishInternational_x64.iso"
|
||||
fixed_iso="windows\-11/virtio\-win.iso"
|
||||
tpm="on"
|
||||
\f[]
|
||||
.fi
|
||||
.IP \[bu] 2
|
||||
\f[C]guest_os="windows"\f[] instructs \f[C]quickemu\f[] to optimise for
|
||||
Windows.
|
||||
.IP \[bu] 2
|
||||
\f[C]fixed_iso=\f[] specifies the ISO image that provides VirtIO
|
||||
drivers.
|
||||
.IP \[bu] 2
|
||||
\f[C]tpm="on"\f[] instructs \f[C]quickemu\f[] to create a software
|
||||
emulated TPM device using \f[C]swtpm\f[].
|
||||
.SH BIOS and EFI
|
||||
.PP
|
||||
Since Quickemu 2.1.0 \f[C]efi\f[] 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.
|
||||
.IP \[bu] 2
|
||||
\f[C]boot="legacy"\f[] \- Enable Legacy BIOS boot
|
||||
.SH Tuning CPU cores, RAM & disks
|
||||
.PP
|
||||
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.
|
||||
.PP
|
||||
Add additional lines to your virtual machine configuration:
|
||||
.IP \[bu] 2
|
||||
\f[C]cpu_cores="4"\f[] \- Specify the number of CPU cores allocated to
|
||||
the VM
|
||||
.IP \[bu] 2
|
||||
\f[C]ram="4G"\f[] \- Specify the amount of RAM to allocate to the VM
|
||||
.IP \[bu] 2
|
||||
\f[C]disk_size="16G"\f[] \- Specify the size of the virtual disk
|
||||
allocated to the VM
|
||||
.SS Disk preallocation
|
||||
.PP
|
||||
Preallocation mode (allowed values: \f[C]off\f[] (default),
|
||||
\f[C]metadata\f[], \f[C]falloc\f[], \f[C]full\f[]).
|
||||
An image with preallocated metadata is initially larger but can improve
|
||||
performance when the image needs to grow.
|
||||
.PP
|
||||
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.
|
||||
.IP \[bu] 2
|
||||
\f[C]preallocation="metadata"\f[]
|
||||
.SS CD\-ROM disks
|
||||
.PP
|
||||
If you want to expose an ISO image from the host to guest add the
|
||||
following line to the VM configuration:
|
||||
.IP \[bu] 2
|
||||
\f[C]fixed_iso="/path/to/image.iso"\f[]
|
||||
.SS Floppy disks
|
||||
.PP
|
||||
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:
|
||||
.IP \[bu] 2
|
||||
\f[C]floppy="/path/to/floppy.img"\f[]
|
||||
.SH File Sharing
|
||||
.PP
|
||||
All File Sharing options will only expose \f[C]~/Public\f[] (or
|
||||
localised variations) for the current user to the guest VMs.
|
||||
.SS Samba 🐧 🍏 🪟
|
||||
.PP
|
||||
If \f[C]smbd\f[] is available on the host, Quickemu will automatically
|
||||
enable the built\-in QEMU support for exposing a Samba share from the
|
||||
host to the guest.
|
||||
.PP
|
||||
You can install the minimal Samba components on Ubuntu using:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
sudo\ apt\ install\ \-\-no\-install\-recommends\ samba
|
||||
\f[]
|
||||
.fi
|
||||
.SS SPICE WebDAV 🐧 🪟
|
||||
.IP \[bu] 2
|
||||
TBD
|
||||
.SS VirtIO\-9P 🐧 🍏
|
||||
.IP \[bu] 2
|
||||
TBD
|
||||
.SH Network port forwarding
|
||||
.PP
|
||||
Add an additional line to your virtual machine configuration.
|
||||
For example:
|
||||
.IP \[bu] 2
|
||||
\f[C]port_forwards=("8123:8123"\ "8888:80")\f[]
|
||||
.PP
|
||||
In the example above:
|
||||
.IP \[bu] 2
|
||||
Port 8123 on the host is forwarded to port 8123 on the guest.
|
||||
.IP \[bu] 2
|
||||
Port 8888 on the host is forwarded to port 80 on the guest.
|
||||
.SH Bridged networking
|
||||
.PP
|
||||
Connect your virtual machine to a preconfigured network bridge.
|
||||
Add an additional line to your virtual machine configuration
|
||||
.IP \[bu] 2
|
||||
\f[C]bridge="br0"\f[]
|
||||
.SH USB redirection
|
||||
.PP
|
||||
Quickemu supports USB redirection via SPICE pass\-through and host
|
||||
pass\-through.
|
||||
.SS SPICE redirection (recommended)
|
||||
.PP
|
||||
Using SPICE for USB pass\-through is easiest as it doesn't require any
|
||||
elevated permission, start Quickemu with \f[C]\-\-display\ spice\f[] and
|
||||
then select \f[C]Input\f[] \->
|
||||
\f[C]Select\ USB\ Device\ for\ redirection\f[] from the menu to choose
|
||||
which device(s) you want to attach to the guest.
|
||||
.SS Host redirection \f[B]NOT Recommended\f[]
|
||||
.PP
|
||||
\f[B]USB host redirection is not recommended\f[], it is provided purely
|
||||
for backwards compatibility to older versions of Quickemu.
|
||||
Using SPICE is preferred, see above.
|
||||
.PP
|
||||
Add an additional line to your virtual machine configuration.
|
||||
For example:
|
||||
.IP \[bu] 2
|
||||
\f[C]usb_devices=("046d:082d"\ "046d:085e")\f[]
|
||||
.PP
|
||||
In the example above:
|
||||
.IP \[bu] 2
|
||||
The USB device with vendor_id 046d and product_id 082d will be exposed
|
||||
to the guest.
|
||||
.IP \[bu] 2
|
||||
The USB device with vendor_id 046d and product_id 085e will be exposed
|
||||
to the guest.
|
||||
.PP
|
||||
If the USB devices are not writable, \f[C]quickemu\f[] will display the
|
||||
appropriate commands to modify the USB device(s) access permissions,
|
||||
like this:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
\ \-\ USB:\ \ \ \ \ \ Host\ pass\-through\ requested:
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \-\ Sennheiser\ Communications\ EPOS\ GTW\ 270\ on\ bus\ 001\ device\ 005\ needs\ permission\ changes:
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ sudo\ chown\ \-v\ root:user\ /dev/bus/usb/001/005
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ERROR!\ USB\ permission\ changes\ are\ required\ 👆
|
||||
\f[]
|
||||
.fi
|
||||
.SH TPM
|
||||
.PP
|
||||
Since Quickemu 2.2.0 a software emulated TPM device can be added to
|
||||
guest virtual machines.
|
||||
Just add \f[C]tpm="on"\f[] to your VM configuration.
|
||||
\f[C]quickget\f[] will automatically add this line to Windows 11 virtual
|
||||
machines.
|
||||
.SH AUTHORS
|
||||
.PP
|
||||
Written by Martin Wimpress.
|
||||
.SH BUGS
|
||||
.PP
|
||||
Submit bug reports online at:
|
||||
<https://github.com/quickemu-project/quickemu/issues>
|
||||
.SH SEE ALSO
|
||||
.PP
|
||||
Full sources at: <https://github.com/quickemu-project/quickemu>
|
||||
.PP
|
||||
quickget(1), quickemu(1), quickgui(1
|
||||
.SH AUTHORS
|
||||
Martin Wimpress.
|
262
docs/quickemu_conf.1.md
Normal file
262
docs/quickemu_conf.1.md
Normal file
@ -0,0 +1,262 @@
|
||||
---
|
||||
author: Martin Wimpress
|
||||
date: 'January 7, 2022'
|
||||
footer: 'quickemu\_conf'
|
||||
header: Quickemu Configuration Manual
|
||||
section: 1
|
||||
title: 'QUICKEMU\_CONF'
|
||||
---
|
||||
|
||||
NAME
|
||||
====
|
||||
|
||||
quickemu\_conf - Options and parameters in the quickemu \<vm\>.conf
|
||||
|
||||
DESCRIPTION
|
||||
===========
|
||||
|
||||
**quickemu** will create and run highly optimised desktop virtual
|
||||
machines for Linux, macOS and Windows. It uses sensible defaults, but
|
||||
many configuration options can be overridden in the required
|
||||
configuration file, which will as a minimum specify the path to the
|
||||
installation ISO and QEMU disk for the installed VM
|
||||
|
||||
OPTIONS
|
||||
=======
|
||||
|
||||
These are the options and defaults for the \<vm\>.conf file
|
||||
|
||||
``` {.bash}
|
||||
# Lowercase variables are used in the VM config file only
|
||||
boot="efi"
|
||||
bridge=""
|
||||
cpu_cores=""
|
||||
disk_img=""
|
||||
disk_size=""
|
||||
fixed_iso=""
|
||||
floppy=""
|
||||
guest_os="linux"
|
||||
img=""
|
||||
iso=""
|
||||
macos_release=""
|
||||
port_forwards=()
|
||||
preallocation="off"
|
||||
ram=""
|
||||
secureboot="off"
|
||||
tpm="off"
|
||||
usb_devices=()
|
||||
```
|
||||
|
||||
EXAMPLES
|
||||
========
|
||||
|
||||
``` {.bash}
|
||||
guest_os="linux"
|
||||
disk_img="debian-bullseye/disk.qcow2"
|
||||
iso="debian-bullseye/firmware-11.0.0-amd64-DVD-1.iso"
|
||||
```
|
||||
|
||||
The default macOS configuration looks like this:
|
||||
|
||||
``` {.bash}
|
||||
guest_os="macos"
|
||||
img="macos-catalina/RecoveryImage.img"
|
||||
disk_img="macos-catalina/disk.qcow2"
|
||||
macos_release="catalina"
|
||||
```
|
||||
|
||||
- `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 and newer, but not previous releases.
|
||||
- And VirtIO Block Media (disks) are supported/stable in Catalina
|
||||
and newer.
|
||||
|
||||
The default Windows 11 configuration looks like this:
|
||||
|
||||
``` {.bash}
|
||||
guest_os="windows"
|
||||
disk_img="windows-11/disk.qcow2"
|
||||
iso="windows-11/Win11_EnglishInternational_x64.iso"
|
||||
fixed_iso="windows-11/virtio-win.iso"
|
||||
tpm="on"
|
||||
```
|
||||
|
||||
- `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`.
|
||||
|
||||
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
|
||||
=============================
|
||||
|
||||
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
|
||||
- `disk_size="16G"` - Specify the size of the virtual disk allocated
|
||||
to the VM
|
||||
|
||||
Disk preallocation
|
||||
------------------
|
||||
|
||||
Preallocation mode (allowed values: `off` (default), `metadata`,
|
||||
`falloc`, `full`). An image with preallocated metadata is initially
|
||||
larger but can improve performance when the image needs to grow.
|
||||
|
||||
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"`
|
||||
|
||||
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"`
|
||||
|
||||
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"`
|
||||
|
||||
File Sharing
|
||||
============
|
||||
|
||||
All File Sharing options will only expose `~/Public` (or localised
|
||||
variations) for the current user to the guest VMs.
|
||||
|
||||
Samba 🐧 🍏 🪟
|
||||
-----------
|
||||
|
||||
If `smbd` is available on the host, Quickemu will automatically enable
|
||||
the built-in QEMU support for exposing a Samba share from the host to
|
||||
the guest.
|
||||
|
||||
You can install the minimal Samba components on Ubuntu using:
|
||||
|
||||
``` {.bash}
|
||||
sudo apt install --no-install-recommends samba
|
||||
```
|
||||
|
||||
SPICE WebDAV 🐧 🪟
|
||||
----------------
|
||||
|
||||
- TBD
|
||||
|
||||
VirtIO-9P 🐧 🍏
|
||||
-------------
|
||||
|
||||
- TBD
|
||||
|
||||
Network port forwarding
|
||||
=======================
|
||||
|
||||
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.
|
||||
|
||||
Bridged networking
|
||||
==================
|
||||
|
||||
Connect your virtual machine to a preconfigured network bridge. Add an
|
||||
additional line to your virtual machine configuration
|
||||
|
||||
- `bridge="br0"`
|
||||
|
||||
USB redirection
|
||||
===============
|
||||
|
||||
Quickemu supports USB redirection via SPICE pass-through and host
|
||||
pass-through.
|
||||
|
||||
SPICE redirection (recommended)
|
||||
-------------------------------
|
||||
|
||||
Using SPICE for USB pass-through is easiest as it doesn't require any
|
||||
elevated permission, start Quickemu with `--display spice` and then
|
||||
select `Input` -\> `Select USB Device for redirection` from the menu to
|
||||
choose which device(s) you want to attach to the guest.
|
||||
|
||||
Host redirection **NOT Recommended**
|
||||
------------------------------------
|
||||
|
||||
**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 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:
|
||||
sudo chown -v root:user /dev/bus/usb/001/005
|
||||
ERROR! USB permission changes are required 👆
|
||||
|
||||
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.
|
||||
|
||||
AUTHORS
|
||||
=======
|
||||
|
||||
Written by Martin Wimpress.
|
||||
|
||||
BUGS
|
||||
====
|
||||
|
||||
Submit bug reports online at:
|
||||
<https://github.com/quickemu-project/quickemu/issues>
|
||||
|
||||
SEE ALSO
|
||||
========
|
||||
|
||||
Full sources at: <https://github.com/quickemu-project/quickemu>
|
||||
|
||||
quickget(1), quickemu(1), quickgui(1
|
494
docs/quickget.1
Normal file
494
docs/quickget.1
Normal file
@ -0,0 +1,494 @@
|
||||
.\" Automatically generated by Pandoc 2.2.3.2
|
||||
.\"
|
||||
.TH "QUICKGET" "1" "January 7, 2022" "quickget" "Quickget User Manual"
|
||||
.hy
|
||||
.SH NAME
|
||||
.PP
|
||||
quickget \- download and prepare materials for building a quickemu VM
|
||||
.SH SYNOPSIS
|
||||
.PP
|
||||
\f[B]quickget\f[] [\f[I]os\f[]] [\f[I]release\f[]] [\f[I]variant\f[]] |
|
||||
[\f[I]OPTION\f[]]*
|
||||
.SH DESCRIPTION
|
||||
.PP
|
||||
\f[B]quickget\f[] will download the requisite materials and prepare a
|
||||
configuration for \f[C]quickemu\f[] to use to build and run
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.B \f[B]version | \-version | \[en]version\f[]
|
||||
show version (from Quickemu)
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B \f[B]list | list_csv | list_json\f[]
|
||||
provide a csv list of all supported guest OSes, versions and variants.
|
||||
.RS
|
||||
.RE
|
||||
.TP
|
||||
.B \f[B][OS] [Release] [Variant]\f[]
|
||||
specify the OS and release (and optional variant) if insufficient input
|
||||
is provided a list of missing options will be reported and the script
|
||||
will exit.
|
||||
Variants may not apply and will be defaulted if not provided.
|
||||
.RS
|
||||
.RE
|
||||
.SH NOTES
|
||||
.SS Ubuntu Guest
|
||||
.PP
|
||||
\f[C]quickget\f[] will automatically download an Ubuntu release and
|
||||
create the virtual machine configuration.
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
quickget\ ubuntu\ focal
|
||||
quickemu\ \-\-vm\ ubuntu\-focal.conf
|
||||
\f[]
|
||||
.fi
|
||||
.IP \[bu] 2
|
||||
Complete the installation as normal.
|
||||
.IP \[bu] 2
|
||||
Post\-install:
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
Install the SPICE agent (\f[C]spice\-vdagent\f[]) to enable copy/paste
|
||||
and USB redirection
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
\f[C]sudo\ apt\ install\ spice\-vdagent\f[]
|
||||
.RE
|
||||
.IP \[bu] 2
|
||||
Install the SPICE WebDAV agent (\f[C]spice\-webdavd\f[]) to enable file
|
||||
sharing.
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
\f[C]sudo\ apt\ install\ spice\-webdavd\f[]
|
||||
.RE
|
||||
.RE
|
||||
.SS Ubuntu devel (daily\-live) images
|
||||
.PP
|
||||
\f[C]quickget\f[] can also download/refresh devel images via
|
||||
\f[C]zsync\f[] for Ubuntu developers and testers.
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
quickget\ ubuntu\ devel
|
||||
quickemu\ \-\-vm\ ubuntu\-devel.conf
|
||||
\f[]
|
||||
.fi
|
||||
.PP
|
||||
You can run \f[C]quickget\ ubuntu\ devel\f[] to refresh your daily
|
||||
development image as often as you like, it will even automatically
|
||||
switch to a new series.
|
||||
.SS Ubuntu Flavours
|
||||
.PP
|
||||
All the official Ubuntu flavours are supported, just replace
|
||||
\f[C]ubuntu\f[] with your preferred flavour.
|
||||
.IP \[bu] 2
|
||||
\f[C]kubuntu\f[] (Kubuntu)
|
||||
.IP \[bu] 2
|
||||
\f[C]lubuntu\f[] (Lubuntu)
|
||||
.IP \[bu] 2
|
||||
\f[C]ubuntu\-budgie\f[] (Ubuntu Budgie)
|
||||
.IP \[bu] 2
|
||||
\f[C]ubuntu\-kylin\f[] (Ubuntu Kylin)
|
||||
.IP \[bu] 2
|
||||
\f[C]ubuntu\-mate\f[] (Ubuntu MATE)
|
||||
.IP \[bu] 2
|
||||
\f[C]ubuntu\-studio\f[] (Ubuntu Studio)
|
||||
.IP \[bu] 2
|
||||
\f[C]ubuntu\f[] (Ubuntu)
|
||||
.IP \[bu] 2
|
||||
\f[C]xubuntu\f[] (Xubuntu)
|
||||
.SS Other Linux Guests
|
||||
.PP
|
||||
\f[C]quickget\f[] also supports:
|
||||
.IP \[bu] 2
|
||||
\f[C]alma\f[] (Alma Linux)
|
||||
.IP \[bu] 2
|
||||
\f[C]alpine\f[] (Alpine Linux)
|
||||
.IP \[bu] 2
|
||||
\f[C]archlinux\f[] (Arch Linux)
|
||||
.IP \[bu] 2
|
||||
\f[C]arcolinux\f[] (Arco Linux)
|
||||
.IP \[bu] 2
|
||||
\f[C]cachyos\f[] (CachyOS)
|
||||
.IP \[bu] 2
|
||||
\f[C]debian\f[] (Debian)
|
||||
.IP \[bu] 2
|
||||
\f[C]elementary\f[] (elementary OS)
|
||||
.IP \[bu] 2
|
||||
\f[C]fedora\f[] (Fedora)
|
||||
.IP \[bu] 2
|
||||
\f[C]garuda\f[] (Garuda Linux)
|
||||
.IP \[bu] 2
|
||||
\f[C]gentoo\f[] (Gentoo)
|
||||
.IP \[bu] 2
|
||||
\f[C]haiku\f[] (Haiku)
|
||||
.IP \[bu] 2
|
||||
\f[C]kali\f[] (Kali)
|
||||
.IP \[bu] 2
|
||||
\f[C]kdeneon\f[] (KDE Neon)
|
||||
.IP \[bu] 2
|
||||
\f[C]kolibrios\f[] (KolibriOS)
|
||||
.IP \[bu] 2
|
||||
\f[C]linuxmint\-cinnamon\f[] (Linux Mint Cinnamon)
|
||||
.IP \[bu] 2
|
||||
\f[C]linuxmint\-mate\f[] (Linux Mint MATE)
|
||||
.IP \[bu] 2
|
||||
\f[C]linuxmint\-xfce\f[] (Linux Mint XFCE)
|
||||
.IP \[bu] 2
|
||||
\f[C]manjaro\-budgie\f[] (Manjaro Budgie)
|
||||
.IP \[bu] 2
|
||||
\f[C]manjaro\-cinnamon\f[] (Manjaro Cinnamon)
|
||||
.IP \[bu] 2
|
||||
\f[C]manjaro\-deepin\f[] (Manjaro Deepin)
|
||||
.IP \[bu] 2
|
||||
\f[C]manjaro\-gnome\f[] (Manjaro Gnome)
|
||||
.IP \[bu] 2
|
||||
\f[C]manjaro\-i3\f[] (Manjaro i3)
|
||||
.IP \[bu] 2
|
||||
\f[C]manjaro\-kde\f[] (Manjaro KDE)
|
||||
.IP \[bu] 2
|
||||
\f[C]manjaro\-mate\f[] (Manjaro MATE)
|
||||
.IP \[bu] 2
|
||||
\f[C]manjaro\-xfce\f[] (Manjaro XFCE)
|
||||
.IP \[bu] 2
|
||||
\f[C]mxlinux\-fluxbox\f[] (MX Linux Fluxbox)
|
||||
.IP \[bu] 2
|
||||
\f[C]mxlinux\-kde\f[] (MX Linux KDE)
|
||||
.IP \[bu] 2
|
||||
\f[C]mxlinux\-xfce\f[] (MX Linux XFCE)
|
||||
.IP \[bu] 2
|
||||
\f[C]nixos\-gnome\f[] (NixOS Gnome)
|
||||
.IP \[bu] 2
|
||||
\f[C]nixos\-minimal\f[] (NixOS Minimal)
|
||||
.IP \[bu] 2
|
||||
\f[C]nixos\-plasma5\f[] (NixOS KDE)
|
||||
.IP \[bu] 2
|
||||
\f[C]opensuse\f[] (openSUSE)
|
||||
.IP \[bu] 2
|
||||
\f[C]oraclelinux\f[] (Oracle Linux)
|
||||
.IP \[bu] 2
|
||||
\f[C]popos\f[] (Pop!_OS)
|
||||
.IP \[bu] 2
|
||||
\f[C]regolith\f[] (Regolith Linux)
|
||||
.IP \[bu] 2
|
||||
\f[C]rockylinux\f[] (Rocky Linux)
|
||||
.IP \[bu] 2
|
||||
\f[C]solus\f[] (Solus)
|
||||
.IP \[bu] 2
|
||||
\f[C]tails\f[] (Tails)
|
||||
.IP \[bu] 2
|
||||
\f[C]void\f[] (Void Linux)
|
||||
.IP \[bu] 2
|
||||
\f[C]zorin\f[] (Zorin OS)
|
||||
.SS BSD Guest Support
|
||||
.PP
|
||||
\f[C]quickget\f[] also supports:
|
||||
.IP \[bu] 2
|
||||
\f[C]freebsd\f[] (FreeBSD)
|
||||
.IP \[bu] 2
|
||||
\f[C]openbsd\f[] (OpenBSD)
|
||||
.PP
|
||||
Or you can download a Linux image and manually create a VM
|
||||
configuration.
|
||||
.IP \[bu] 2
|
||||
Download a .iso image of a Linux distribution
|
||||
.IP \[bu] 2
|
||||
Create a VM configuration file; for example
|
||||
\f[C]debian\-bullseye.conf\f[]
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
guest_os="linux"
|
||||
disk_img="debian\-bullseye/disk.qcow2"
|
||||
iso="debian\-bullseye/firmware\-11.0.0\-amd64\-DVD\-1.iso"
|
||||
\f[]
|
||||
.fi
|
||||
.PP
|
||||
If you already have a collection of ISOs downloaded you can have
|
||||
\f[C]quickget\f[] find and copy your existing file into the VM
|
||||
directory.
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
\-\-isodir\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ base\ path\ beneath\ which\ to\ find\ local\ ISO\ copy
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ if\ a\ matching\ file\ is\ found\ it\ will\ be\ copied\ to\ the\ VM\ directory
|
||||
\-\-localiso\ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ optional\ local\ ISO\ filename\ \-\ defaults\ to\ target\ filename
|
||||
\f[]
|
||||
.fi
|
||||
.PP
|
||||
\f[C]quickget\f[] will then continue to \f[C]wget\f[] or \f[C]zsync\f[]
|
||||
using that file as a prior copy.
|
||||
If the target file exists in the VM directory \f[C]quickget\f[] will
|
||||
raise an error if you run it with \f[C]\-\-isodir\f[]
|
||||
.IP \[bu] 2
|
||||
Use \f[C]quickemu\f[] to start the virtual machine:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
quickemu\ \-\-vm\ debian\-bullseye.conf
|
||||
\f[]
|
||||
.fi
|
||||
.IP \[bu] 2
|
||||
Complete the installation as normal.
|
||||
.IP \[bu] 2
|
||||
Post\-install:
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
Install the SPICE agent (\f[C]spice\-vdagent\f[]) to enable copy/paste
|
||||
and USB redirection.
|
||||
.IP \[bu] 2
|
||||
Install the SPICE WebDAV agent (\f[C]spice\-webdavd\f[]) to enable file
|
||||
sharing.
|
||||
.RE
|
||||
.SS macOS Guest
|
||||
.PP
|
||||
\f[C]quickget\f[] automatically downloads a macOS recovery image and
|
||||
creates a virtual machine configuration.
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
quickget\ macos\ catalina
|
||||
quickemu\ \-\-vm\ macos\-catalina.conf
|
||||
\f[]
|
||||
.fi
|
||||
.PP
|
||||
macOS \f[C]high\-sierra\f[], \f[C]mojave\f[], \f[C]catalina\f[],
|
||||
\f[C]big\-sur\f[] and \f[C]monterey\f[] are supported.
|
||||
.IP \[bu] 2
|
||||
Use cursor keys and enter key to select the \f[B]macOS Base System\f[]
|
||||
.IP \[bu] 2
|
||||
From \f[B]macOS Utilities\f[]
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
Click \f[B]Disk Utility\f[] and \f[B]Continue\f[]
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
On macOS Catalina, Big Sur & Monterey
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
Select \f[C]Apple\ Inc.\ VirtIO\ Block\ Media\f[] from the list and
|
||||
click \f[B]Erase\f[].
|
||||
.RE
|
||||
.IP \[bu] 2
|
||||
On macOS Mojave and High Sierra
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
Select \f[C]QEMU\ HARDDISK\ Media\f[] (~103.08GB) from the list and
|
||||
click \f[B]Erase\f[].
|
||||
.RE
|
||||
.RE
|
||||
.IP \[bu] 2
|
||||
Enter a \f[C]Name:\f[] for the disk and click \f[B]Erase\f[].
|
||||
.IP \[bu] 2
|
||||
Click \f[B]Done\f[].
|
||||
.IP \[bu] 2
|
||||
Close Disk Utility
|
||||
.RE
|
||||
.IP \[bu] 2
|
||||
From \f[B]macOS Utilities\f[]
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
Click \f[B]Reinstall macOS\f[] and \f[B]Continue\f[]
|
||||
.RE
|
||||
.IP \[bu] 2
|
||||
Complete the installation as you normally would.
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
On the first reboot use cursor keys and enter key to select \f[B]macOS
|
||||
Installer\f[]
|
||||
.IP \[bu] 2
|
||||
On the subsequent reboots use cursor keys and enter key to select the
|
||||
disk you named
|
||||
.RE
|
||||
.PP
|
||||
The default macOS configuration looks like this:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
guest_os="macos"
|
||||
img="macos\-catalina/RecoveryImage.img"
|
||||
disk_img="macos\-catalina/disk.qcow2"
|
||||
macos_release="catalina"
|
||||
\f[]
|
||||
.fi
|
||||
.IP \[bu] 2
|
||||
\f[C]guest_os="macos"\f[] instructs Quickemu to optimise for macOS.
|
||||
.IP \[bu] 2
|
||||
\f[C]macos_release="catalina"\f[] instructs Quickemu to optimise for a
|
||||
particular macOS release.
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
For example VirtIO Network and Memory Ballooning are available in Big
|
||||
Sur and newer, but not previous releases.
|
||||
.IP \[bu] 2
|
||||
And VirtIO Block Media (disks) are supported/stable in Catalina and
|
||||
newer.
|
||||
.RE
|
||||
.SS macOS compatibility
|
||||
.PP
|
||||
There are some considerations when running macOS via Quickemu.
|
||||
.IP \[bu] 2
|
||||
Supported macOS releases:
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
High Sierra
|
||||
.IP \[bu] 2
|
||||
Mojave
|
||||
.IP \[bu] 2
|
||||
Catalina \f[B](Recommended)\f[]
|
||||
.IP \[bu] 2
|
||||
Big Sur
|
||||
.IP \[bu] 2
|
||||
Monterey
|
||||
.RE
|
||||
.IP \[bu] 2
|
||||
\f[C]quickemu\f[] will automatically download the required
|
||||
OpenCore (https://github.com/acidanthera/OpenCorePkg) bootloader and
|
||||
OVMF firmware from OSX\-KVM (https://github.com/kholia/OSX-KVM).
|
||||
.IP \[bu] 2
|
||||
Optimised by default, but no GPU acceleration is available.
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
Host CPU vendor is detected and guest CPU is optimised accordingly.
|
||||
.IP \[bu] 2
|
||||
VirtIO Block
|
||||
Media (https://www.kraxel.org/blog/2019/06/macos-qemu-guest/) is used
|
||||
for the system disk where supported.
|
||||
.IP \[bu] 2
|
||||
VirtIO \f[C]usb\-tablet\f[] (http://philjordan.eu/osx-virt/) is used for
|
||||
the mouse.
|
||||
.IP \[bu] 2
|
||||
VirtIO Network (\f[C]virtio\-net\f[]) is supported and enabled on macOS
|
||||
Big Sur and newer but previous releases use \f[C]vmxnet3\f[].
|
||||
.IP \[bu] 2
|
||||
VirtIO Memory Ballooning is supported and enabled on macOS Big Sur and
|
||||
newer but disabled for other support macOS releases.
|
||||
.RE
|
||||
.IP \[bu] 2
|
||||
USB host and SPICE pass\-through is:
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
UHCI (USB 2.0) on macOS Catalina and earlier.
|
||||
.IP \[bu] 2
|
||||
XHCI (USB 3.0) on macOS Big Sur and newer.
|
||||
.RE
|
||||
.IP \[bu] 2
|
||||
Display resolution can only be changed via macOS System Preferences.
|
||||
.IP \[bu] 2
|
||||
Full Duplex audio works on macOS High Sierra, Mojave and Catalina.
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
\f[B]macOS Big Sur and Monterey have no audio at all\f[].
|
||||
.RE
|
||||
.IP \[bu] 2
|
||||
File sharing between guest and host is available via
|
||||
virtio\-9p (https://wiki.qemu.org/Documentation/9psetup) and SPICE
|
||||
webdavd (https://gitlab.gnome.org/GNOME/phodav/-/merge_requests/24).
|
||||
.IP \[bu] 2
|
||||
Copy/paste via SPICE agent is \f[B]not available on macOS\f[].
|
||||
.SS Windows 8.1, 10 & 11 Guests
|
||||
.PP
|
||||
\f[C]quickget\f[] can automatically download Windows 8.1, Windows
|
||||
10 (https://www.microsoft.com/en-gb/software-download/windows10ISO) 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/)
|
||||
and creates a virtual machine configuration.
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
quickget\ windows\ 11
|
||||
quickemu\ \-\-vm\ windows\-11.conf
|
||||
\f[]
|
||||
.fi
|
||||
.IP \[bu] 2
|
||||
Complete the installation as you normally would.
|
||||
.IP \[bu] 2
|
||||
All relevant drivers and services should be installed automatically.
|
||||
.SS Regional versions
|
||||
.PP
|
||||
By default \f[C]quickget\f[] will download the \f[I]\[lq]English
|
||||
International\[rq]\f[] release, but you can optionally specify one of
|
||||
the supported languages: For example:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
quickget\ windows\ 11\ "Chinese\ (Traditional)"
|
||||
\f[]
|
||||
.fi
|
||||
.PP
|
||||
The default Windows 11 configuration looks like this:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
guest_os="windows"
|
||||
disk_img="windows\-11/disk.qcow2"
|
||||
iso="windows\-11/Win11_EnglishInternational_x64.iso"
|
||||
fixed_iso="windows\-11/virtio\-win.iso"
|
||||
tpm="on"
|
||||
\f[]
|
||||
.fi
|
||||
.IP \[bu] 2
|
||||
\f[C]guest_os="windows"\f[] instructs \f[C]quickemu\f[] to optimise for
|
||||
Windows.
|
||||
.IP \[bu] 2
|
||||
\f[C]fixed_iso=\f[] specifies the ISO image that provides VirtIO
|
||||
drivers.
|
||||
.IP \[bu] 2
|
||||
\f[C]tpm="on"\f[] instructs \f[C]quickemu\f[] to create a software
|
||||
emulated TPM device using \f[C]swtpm\f[].
|
||||
.SS BSD Guests
|
||||
.PP
|
||||
\f[C]quickemu\f[] supports FreeBSD and OpenBSD.
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
quickget\ freebsd\ 13_0
|
||||
quickemu\ \-\-vm\ freebsd\-13_0.conf
|
||||
\f[]
|
||||
.fi
|
||||
.SS Other Guests
|
||||
.IP \[bu] 2
|
||||
\f[C]android\f[] (Android x86)
|
||||
.SS Haiku Guests
|
||||
.PP
|
||||
\f[C]quickemu\f[] supports Haiku (https://www.haiku-os.org/).
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
quickget\ quickget\ haiku\ r1beta3\-x86_64
|
||||
quickemu\ \-\-vm\ haiku\-r1beta3\-x86_64.conf
|
||||
\f[]
|
||||
.fi
|
||||
.PP
|
||||
At the moment the only way to share files between host and a Haiku guest
|
||||
is by using SSH (having a SSH server running on the host):
|
||||
.PP
|
||||
On guest:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
scp\ example.txt\ user\@host\-local\-ip:/home/user\ #\ sending\ a\ file\ from\ guest\ to\ host
|
||||
scp\ user\@host\-local\-ip:/home/user/example.txt\ .\ #\ receiving\ a\ file\ from\ host\ to\ guest
|
||||
\f[]
|
||||
.fi
|
||||
.PP
|
||||
\f[C]quickget\f[] cannot automatically download and create virtual
|
||||
machines for Haiku nightly versions, but they work if the ISO and
|
||||
configuration are set up manually.
|
||||
.SH AUTHORS
|
||||
.PP
|
||||
Written by Martin Wimpress.
|
||||
.SH BUGS
|
||||
.PP
|
||||
Submit bug reports online at:
|
||||
<https://github.com/quickemu-project/quickemu/issues>
|
||||
.SH SEE ALSO
|
||||
.PP
|
||||
Full sources at: <https://github.com/quickemu-project/quickemu>
|
||||
.PP
|
||||
quickemu(1),quickemu_conf(1) quickgui(1)
|
||||
.SH AUTHORS
|
||||
Martin Wimpress.
|
370
docs/quickget.1.md
Normal file
370
docs/quickget.1.md
Normal file
@ -0,0 +1,370 @@
|
||||
---
|
||||
author: Martin Wimpress
|
||||
date: 'January 7, 2022'
|
||||
footer: quickget
|
||||
header: Quickget User Manual
|
||||
section: 1
|
||||
title: QUICKGET
|
||||
---
|
||||
|
||||
NAME
|
||||
====
|
||||
|
||||
quickget - download and prepare materials for building a quickemu VM
|
||||
|
||||
SYNOPSIS
|
||||
========
|
||||
|
||||
**quickget** \[*os*\] \[*release*\] \[*variant*\] \| \[*OPTION*\]\*
|
||||
|
||||
DESCRIPTION
|
||||
===========
|
||||
|
||||
**quickget** will download the requisite materials and prepare a
|
||||
configuration for `quickemu` to use to build and run
|
||||
|
||||
OPTIONS
|
||||
=======
|
||||
|
||||
**version \| -version \| --version**
|
||||
: show version (from Quickemu)
|
||||
|
||||
**list \| list\_csv \| list\_json**
|
||||
: provide a csv list of all supported guest OSes, versions and
|
||||
variants.
|
||||
|
||||
**\[OS\] \[Release\] \[Variant\]**
|
||||
: specify the OS and release (and optional variant) if insufficient
|
||||
input is provided a list of missing options will be reported and the
|
||||
script will exit. Variants may not apply and will be defaulted if
|
||||
not provided.
|
||||
|
||||
NOTES
|
||||
=====
|
||||
|
||||
Ubuntu Guest
|
||||
------------
|
||||
|
||||
`quickget` will automatically download an Ubuntu release and create the
|
||||
virtual machine configuration.
|
||||
|
||||
``` {.bash}
|
||||
quickget ubuntu focal
|
||||
quickemu --vm ubuntu-focal.conf
|
||||
```
|
||||
|
||||
- Complete the installation as normal.
|
||||
- Post-install:
|
||||
- Install the SPICE agent (`spice-vdagent`) to enable copy/paste
|
||||
and USB redirection
|
||||
- `sudo apt install spice-vdagent`
|
||||
- Install the SPICE WebDAV agent (`spice-webdavd`) to enable file
|
||||
sharing.
|
||||
- `sudo apt install spice-webdavd`
|
||||
|
||||
### Ubuntu devel (daily-live) images
|
||||
|
||||
`quickget` can also download/refresh devel images via `zsync` for Ubuntu
|
||||
developers and testers.
|
||||
|
||||
``` {.bash}
|
||||
quickget ubuntu devel
|
||||
quickemu --vm ubuntu-devel.conf
|
||||
```
|
||||
|
||||
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` (Kubuntu)
|
||||
- `lubuntu` (Lubuntu)
|
||||
- `ubuntu-budgie` (Ubuntu Budgie)
|
||||
- `ubuntu-kylin` (Ubuntu Kylin)
|
||||
- `ubuntu-mate` (Ubuntu MATE)
|
||||
- `ubuntu-studio` (Ubuntu Studio)
|
||||
- `ubuntu` (Ubuntu)
|
||||
- `xubuntu` (Xubuntu)
|
||||
|
||||
Other Linux Guests
|
||||
------------------
|
||||
|
||||
`quickget` also supports:
|
||||
|
||||
- `alma` (Alma Linux)
|
||||
- `alpine` (Alpine Linux)
|
||||
- `archlinux` (Arch Linux)
|
||||
- `arcolinux` (Arco Linux)
|
||||
- `cachyos` (CachyOS)
|
||||
- `debian` (Debian)
|
||||
- `elementary` (elementary OS)
|
||||
- `fedora` (Fedora)
|
||||
- `garuda` (Garuda Linux)
|
||||
- `gentoo` (Gentoo)
|
||||
- `haiku` (Haiku)
|
||||
- `kali` (Kali)
|
||||
- `kdeneon` (KDE Neon)
|
||||
- `kolibrios` (KolibriOS)
|
||||
- `linuxmint-cinnamon` (Linux Mint Cinnamon)
|
||||
- `linuxmint-mate` (Linux Mint MATE)
|
||||
- `linuxmint-xfce` (Linux Mint XFCE)
|
||||
- `manjaro-budgie` (Manjaro Budgie)
|
||||
- `manjaro-cinnamon` (Manjaro Cinnamon)
|
||||
- `manjaro-deepin` (Manjaro Deepin)
|
||||
- `manjaro-gnome` (Manjaro Gnome)
|
||||
- `manjaro-i3` (Manjaro i3)
|
||||
- `manjaro-kde` (Manjaro KDE)
|
||||
- `manjaro-mate` (Manjaro MATE)
|
||||
- `manjaro-xfce` (Manjaro XFCE)
|
||||
- `mxlinux-fluxbox` (MX Linux Fluxbox)
|
||||
- `mxlinux-kde` (MX Linux KDE)
|
||||
- `mxlinux-xfce` (MX Linux XFCE)
|
||||
- `nixos-gnome` (NixOS Gnome)
|
||||
- `nixos-minimal` (NixOS Minimal)
|
||||
- `nixos-plasma5` (NixOS KDE)
|
||||
- `opensuse` (openSUSE)
|
||||
- `oraclelinux` (Oracle Linux)
|
||||
- `popos` (Pop!\_OS)
|
||||
- `regolith` (Regolith Linux)
|
||||
- `rockylinux` (Rocky Linux)
|
||||
- `solus` (Solus)
|
||||
- `tails` (Tails)
|
||||
- `void` (Void Linux)
|
||||
- `zorin` (Zorin OS)
|
||||
|
||||
### BSD Guest Support
|
||||
|
||||
`quickget` also supports:
|
||||
|
||||
- `freebsd` (FreeBSD)
|
||||
- `openbsd` (OpenBSD)
|
||||
|
||||
Or you can download a Linux image and manually create a VM
|
||||
configuration.
|
||||
|
||||
- Download a .iso image of a Linux distribution
|
||||
- Create a VM configuration file; for example `debian-bullseye.conf`
|
||||
|
||||
``` {.bash}
|
||||
guest_os="linux"
|
||||
disk_img="debian-bullseye/disk.qcow2"
|
||||
iso="debian-bullseye/firmware-11.0.0-amd64-DVD-1.iso"
|
||||
```
|
||||
|
||||
If you already have a collection of ISOs downloaded you can have
|
||||
`quickget` find and copy your existing file into the VM directory.
|
||||
|
||||
``` {.text}
|
||||
--isodir : base path beneath which to find local ISO copy
|
||||
if a matching file is found it will be copied to the VM directory
|
||||
--localiso : optional local ISO filename - defaults to target filename
|
||||
```
|
||||
|
||||
`quickget` will then continue to `wget` or `zsync` using that file as a
|
||||
prior copy. If the target file exists in the VM directory `quickget`
|
||||
will raise an error if you run it with `--isodir`
|
||||
|
||||
- Use `quickemu` to start the virtual machine:
|
||||
|
||||
``` {.bash}
|
||||
quickemu --vm debian-bullseye.conf
|
||||
```
|
||||
|
||||
- Complete the installation as normal.
|
||||
- Post-install:
|
||||
- Install the SPICE agent (`spice-vdagent`) to enable copy/paste
|
||||
and USB redirection.
|
||||
- Install the SPICE WebDAV agent (`spice-webdavd`) to enable file
|
||||
sharing.
|
||||
|
||||
macOS Guest
|
||||
-----------
|
||||
|
||||
`quickget` automatically downloads a macOS recovery image and creates a
|
||||
virtual machine configuration.
|
||||
|
||||
``` {.bash}
|
||||
quickget macos catalina
|
||||
quickemu --vm macos-catalina.conf
|
||||
```
|
||||
|
||||
macOS `high-sierra`, `mojave`, `catalina`, `big-sur` and `monterey` are
|
||||
supported.
|
||||
|
||||
- Use cursor keys and enter key to select the **macOS Base System**
|
||||
- From **macOS Utilities**
|
||||
- Click **Disk Utility** and **Continue**
|
||||
- On macOS Catalina, Big Sur & Monterey
|
||||
- Select `Apple Inc. VirtIO Block Media` from the list and
|
||||
click **Erase**.
|
||||
- On macOS Mojave and High Sierra
|
||||
- Select `QEMU HARDDISK Media` (\~103.08GB) from the list
|
||||
and click **Erase**.
|
||||
- Enter a `Name:` for the disk and click **Erase**.
|
||||
- Click **Done**.
|
||||
- Close Disk Utility
|
||||
- From **macOS Utilities**
|
||||
- Click **Reinstall macOS** and **Continue**
|
||||
- Complete the installation as you normally would.
|
||||
- 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
|
||||
|
||||
The default macOS configuration looks like this:
|
||||
|
||||
``` {.bash}
|
||||
guest_os="macos"
|
||||
img="macos-catalina/RecoveryImage.img"
|
||||
disk_img="macos-catalina/disk.qcow2"
|
||||
macos_release="catalina"
|
||||
```
|
||||
|
||||
- `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 and newer, but not previous releases.
|
||||
- And VirtIO Block Media (disks) are supported/stable in Catalina
|
||||
and newer.
|
||||
|
||||
### macOS compatibility
|
||||
|
||||
There are some considerations when running macOS via Quickemu.
|
||||
|
||||
- Supported macOS releases:
|
||||
- High Sierra
|
||||
- Mojave
|
||||
- Catalina **(Recommended)**
|
||||
- Big Sur
|
||||
- Monterey
|
||||
- `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).
|
||||
- Optimised by default, but no GPU acceleration is available.
|
||||
- Host CPU vendor is detected and guest CPU is optimised
|
||||
accordingly.
|
||||
- [VirtIO Block
|
||||
Media](https://www.kraxel.org/blog/2019/06/macos-qemu-guest/) is
|
||||
used for the system disk where supported.
|
||||
- [VirtIO `usb-tablet`](http://philjordan.eu/osx-virt/) is used
|
||||
for the mouse.
|
||||
- VirtIO Network (`virtio-net`) is supported and enabled on macOS
|
||||
Big Sur and newer but previous releases use `vmxnet3`.
|
||||
- VirtIO Memory Ballooning is supported and enabled on macOS Big
|
||||
Sur and newer but disabled for other support macOS releases.
|
||||
- USB host and SPICE pass-through is:
|
||||
- UHCI (USB 2.0) on macOS Catalina and earlier.
|
||||
- XHCI (USB 3.0) on macOS Big Sur and newer.
|
||||
- Display resolution can only be changed via macOS System Preferences.
|
||||
- Full Duplex audio works on macOS High Sierra, Mojave and Catalina.
|
||||
- **macOS Big Sur and Monterey have no audio at all**.
|
||||
- File sharing between guest and host is available via
|
||||
[virtio-9p](https://wiki.qemu.org/Documentation/9psetup) and [SPICE
|
||||
webdavd](https://gitlab.gnome.org/GNOME/phodav/-/merge_requests/24).
|
||||
- Copy/paste via SPICE agent is **not available on macOS**.
|
||||
|
||||
Windows 8.1, 10 & 11 Guests
|
||||
---------------------------
|
||||
|
||||
`quickget` can automatically download Windows 8.1, [Windows
|
||||
10](https://www.microsoft.com/en-gb/software-download/windows10ISO) 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/)
|
||||
and creates a virtual machine configuration.
|
||||
|
||||
``` {.bash}
|
||||
quickget windows 11
|
||||
quickemu --vm windows-11.conf
|
||||
```
|
||||
|
||||
- Complete the installation as you normally would.
|
||||
- All relevant drivers and services should be installed automatically.
|
||||
|
||||
### Regional versions
|
||||
|
||||
By default `quickget` will download the *"English International"*
|
||||
release, but you can optionally specify one of the supported languages:
|
||||
For example:
|
||||
|
||||
``` {.bash}
|
||||
quickget windows 11 "Chinese (Traditional)"
|
||||
```
|
||||
|
||||
The default Windows 11 configuration looks like this:
|
||||
|
||||
``` {.bash}
|
||||
guest_os="windows"
|
||||
disk_img="windows-11/disk.qcow2"
|
||||
iso="windows-11/Win11_EnglishInternational_x64.iso"
|
||||
fixed_iso="windows-11/virtio-win.iso"
|
||||
tpm="on"
|
||||
```
|
||||
|
||||
- `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`.
|
||||
|
||||
BSD Guests
|
||||
----------
|
||||
|
||||
`quickemu` supports FreeBSD and OpenBSD.
|
||||
|
||||
``` {.bash}
|
||||
quickget freebsd 13_0
|
||||
quickemu --vm freebsd-13_0.conf
|
||||
```
|
||||
|
||||
Other Guests
|
||||
------------
|
||||
|
||||
- `android` (Android x86)
|
||||
|
||||
Haiku Guests
|
||||
------------
|
||||
|
||||
`quickemu` supports [Haiku](https://www.haiku-os.org/).
|
||||
|
||||
``` {.bash}
|
||||
quickget quickget haiku r1beta3-x86_64
|
||||
quickemu --vm haiku-r1beta3-x86_64.conf
|
||||
```
|
||||
|
||||
At the moment the only way to share files between host and a Haiku guest
|
||||
is by using SSH (having a SSH server running on the host):
|
||||
|
||||
On guest:
|
||||
|
||||
``` {.bash}
|
||||
scp example.txt user@host-local-ip:/home/user # sending a file from guest to host
|
||||
scp user@host-local-ip:/home/user/example.txt . # receiving a file from host to guest
|
||||
```
|
||||
|
||||
`quickget` cannot automatically download and create virtual machines for
|
||||
Haiku nightly versions, but they work if the ISO and configuration are
|
||||
set up manually.
|
||||
|
||||
AUTHORS
|
||||
=======
|
||||
|
||||
Written by Martin Wimpress.
|
||||
|
||||
BUGS
|
||||
====
|
||||
|
||||
Submit bug reports online at:
|
||||
<https://github.com/quickemu-project/quickemu/issues>
|
||||
|
||||
SEE ALSO
|
||||
========
|
||||
|
||||
Full sources at: <https://github.com/quickemu-project/quickemu>
|
||||
|
||||
quickemu(1),quickemu\_conf(1) quickgui(1)
|
Loading…
Reference in New Issue
Block a user