Merge upstream
This commit is contained in:
commit
87de0697bc
336
README.md
336
README.md
@ -8,17 +8,16 @@
|
|||||||
<div align="center"><img src=".github/screenshot.png" alt="Quickemu Screenshot" /></div>
|
<div align="center"><img src=".github/screenshot.png" alt="Quickemu Screenshot" /></div>
|
||||||
<p align="center">Made with 💝 for <img src=".github/tux.png" align="top" width="18" /></p>
|
<p align="center">Made with 💝 for <img src=".github/tux.png" align="top" width="18" /></p>
|
||||||
|
|
||||||
Introduction
|
## Introduction
|
||||||
------------
|
|
||||||
|
|
||||||
Quickly create and run highly optimised desktop virtual machines for
|
Quickly create and run highly optimised desktop virtual machines for
|
||||||
Linux, macOS and Windows; with just two commands. You decide what
|
Linux, macOS and Windows; with just two commands. You decide what
|
||||||
operating system you want to run and Quickemu will figure out the best
|
operating system you want to run and Quickemu will figure out the best
|
||||||
way to do it for you. For example:
|
way to do it for you. For example:
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
quickget ubuntu-mate 21.10
|
quickget ubuntu-mate 22.04
|
||||||
quickemu --vm ubuntu-mate-21.10-.conf
|
quickemu --vm ubuntu-mate-22.04.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
The original objective of the project was to enable quick testing of
|
The original objective of the project was to enable quick testing of
|
||||||
@ -28,8 +27,7 @@ and no elevated permissions are required to run the virtual machines.
|
|||||||
**Quickemu now also includes comprehensive support for macOS and
|
**Quickemu now also includes comprehensive support for macOS and
|
||||||
Windows**.
|
Windows**.
|
||||||
|
|
||||||
Features
|
## Features
|
||||||
--------
|
|
||||||
|
|
||||||
- **macOS** Monterey, Big Sur, Catalina, Mojave & High Sierra
|
- **macOS** Monterey, Big Sur, Catalina, Mojave & High Sierra
|
||||||
- **Windows** 8.1, 10 and 11 including TPM 2.0
|
- **Windows** 8.1, 10 and 11 including TPM 2.0
|
||||||
@ -67,8 +65,7 @@ Quickemu.
|
|||||||
[](https://www.youtube.com/watch?v=AOTYWEgw0hI)
|
QEMU](https://img.youtube.com/vi/AOTYWEgw0hI/0.jpg)](https://www.youtube.com/watch?v=AOTYWEgw0hI)
|
||||||
|
|
||||||
Requirements
|
## Requirements
|
||||||
------------
|
|
||||||
|
|
||||||
- [QEMU](https://www.qemu.org/) (*6.0.0 or newer*) **with GTK, SDL,
|
- [QEMU](https://www.qemu.org/) (*6.0.0 or newer*) **with GTK, SDL,
|
||||||
SPICE & VirtFS support**
|
SPICE & VirtFS support**
|
||||||
@ -93,11 +90,37 @@ Requirements
|
|||||||
- [zsync](http://zsync.moria.org.uk/)
|
- [zsync](http://zsync.moria.org.uk/)
|
||||||
- [unzip](http://www.info-zip.org/UnZip.html)
|
- [unzip](http://www.info-zip.org/UnZip.html)
|
||||||
|
|
||||||
Usage
|
### Installing Requirements
|
||||||
=====
|
|
||||||
|
|
||||||
Graphical User Interfaces
|
For Ubuntu, Arch and nixos systems the
|
||||||
-------------------------
|
[ppa](https://launchpad.net/~flexiondotorg/+archive/ubuntu/quickemu),
|
||||||
|
[AUR](https://aur.archlinux.org/packages/quickemu) or
|
||||||
|
[nix](https://github.com/NixOS/nixpkgs/tree/master/pkgs/development/quickemu)
|
||||||
|
packaging will take care of the dependencies. For other host
|
||||||
|
distributions or operating systems it will be necessary to install the
|
||||||
|
above requirements or their equivalents.
|
||||||
|
|
||||||
|
These examples may save a little typing
|
||||||
|
|
||||||
|
Debian:
|
||||||
|
|
||||||
|
sudo apt install qemu bash coreutils ovmf grep jq lsb procps python3 genisoimage usbutils util-linux sed spice-client-gtk swtpm wget xdg-user-dirs zsync unzip
|
||||||
|
|
||||||
|
Fedora:
|
||||||
|
|
||||||
|
sudo dnf install qemu bash coreutils edk2-tools grep jq lsb procps python3 genisoimage usbutils util-linux sed spice-gtk-tools swtpm wget xdg-user-dirs xrandr unzip
|
||||||
|
|
||||||
|
MacOS:
|
||||||
|
|
||||||
|
This is a work in progress (see [issue
|
||||||
|
248](https://github.com/quickemu-project/quickemu/issues/248) for other
|
||||||
|
steps and changes that may enable running on MacOS)
|
||||||
|
|
||||||
|
brew install qemu bash coreutils grep jq python@3.10 cdrtools gnu-sed spice-gtk wget zsync
|
||||||
|
|
||||||
|
# Usage
|
||||||
|
|
||||||
|
## Graphical User Interfaces
|
||||||
|
|
||||||
While `quickemu` and `quickget` are designed for the terminal, a
|
While `quickemu` and `quickget` are designed for the terminal, a
|
||||||
graphical user interface is also available:
|
graphical user interface is also available:
|
||||||
@ -112,33 +135,30 @@ Many thanks to [Luke Wesley-Holley](https://github.com/Lukewh) and
|
|||||||
|
|
||||||
### Quickgui for Ubuntu
|
### Quickgui for Ubuntu
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
sudo add-apt-repository ppa:yannick-mauray/quickgui
|
sudo add-apt-repository ppa:yannick-mauray/quickgui
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install quickgui
|
sudo apt install quickgui
|
||||||
```
|
```
|
||||||
|
|
||||||
Install Quickemu
|
# Install Quickemu
|
||||||
================
|
|
||||||
|
|
||||||
Ubuntu
|
## Ubuntu
|
||||||
------
|
|
||||||
|
|
||||||
Quickemu is available from a PPA for Ubuntu users. The Quickemu PPA also
|
Quickemu is available from a PPA for Ubuntu users. The Quickemu PPA also
|
||||||
includes a back port of QEMU 6.0.0 for 20.04 (Focal) and 21.04
|
includes a back port of QEMU 6.0.0 for 20.04 (Focal) and 21.04
|
||||||
(Hirsute). To install Quickemu and all the dependencies run the
|
(Hirsute). To install Quickemu and all the dependencies run the
|
||||||
following in a terminal:
|
following in a terminal:
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
sudo apt-add-repository ppa:flexiondotorg/quickemu
|
sudo apt-add-repository ppa:flexiondotorg/quickemu
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install quickemu
|
sudo apt install quickemu
|
||||||
```
|
```
|
||||||
|
|
||||||
Other Linux
|
## Other Linux
|
||||||
-----------
|
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
git clone --depth=1 https://github.com/wimpysworld/quickemu
|
git clone --depth=1 https://github.com/wimpysworld/quickemu
|
||||||
cd quickemu
|
cd quickemu
|
||||||
```
|
```
|
||||||
@ -160,15 +180,14 @@ status](https://repology.org/badge/vertical-allrepos/quickemu.svg)](https://repo
|
|||||||
[](https://repology.org/project/quickgui/versions)
|
status](https://repology.org/badge/vertical-allrepos/quickgui.svg)](https://repology.org/project/quickgui/versions)
|
||||||
|
|
||||||
Ubuntu Guest
|
## Ubuntu Guest
|
||||||
------------
|
|
||||||
|
|
||||||
`quickget` will automatically download an Ubuntu release and create the
|
`quickget` will automatically download an Ubuntu release and create the
|
||||||
virtual machine configuration.
|
virtual machine configuration.
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
quickget ubuntu 20.04
|
quickget ubuntu 22.04
|
||||||
quickemu --vm ubuntu-20.04.conf
|
quickemu --vm ubuntu-22.04.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
- Complete the installation as normal.
|
- Complete the installation as normal.
|
||||||
@ -185,7 +204,7 @@ quickemu --vm ubuntu-20.04.conf
|
|||||||
`quickget` can also download/refresh devel images via `zsync` for Ubuntu
|
`quickget` can also download/refresh devel images via `zsync` for Ubuntu
|
||||||
developers and testers.
|
developers and testers.
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
quickget ubuntu devel
|
quickget ubuntu devel
|
||||||
quickemu --vm ubuntu-devel.conf
|
quickemu --vm ubuntu-devel.conf
|
||||||
```
|
```
|
||||||
@ -208,8 +227,7 @@ with your preferred flavour.
|
|||||||
- `ubuntu` (Ubuntu)
|
- `ubuntu` (Ubuntu)
|
||||||
- `xubuntu` (Xubuntu)
|
- `xubuntu` (Xubuntu)
|
||||||
|
|
||||||
Other Operating Systems
|
## Other Operating Systems
|
||||||
-----------------------
|
|
||||||
|
|
||||||
`quickget` also supports:
|
`quickget` also supports:
|
||||||
|
|
||||||
@ -218,11 +236,15 @@ Other Operating Systems
|
|||||||
- `android` (Android x86)
|
- `android` (Android x86)
|
||||||
- `archlinux` (Arch Linux)
|
- `archlinux` (Arch Linux)
|
||||||
- `arcolinux` (Arco Linux)
|
- `arcolinux` (Arco Linux)
|
||||||
|
- `batocera` (Batocera)
|
||||||
- `cachyos` (CachyOS)
|
- `cachyos` (CachyOS)
|
||||||
|
- `centos-stream` (CentOS Stream)
|
||||||
- `debian` (Debian)
|
- `debian` (Debian)
|
||||||
|
- `deepin` (Deepin)
|
||||||
- `devuan` (Devuan)
|
- `devuan` (Devuan)
|
||||||
- `dragonflybsd` (DragonFlyBSD)
|
- `dragonflybsd` (DragonFlyBSD)
|
||||||
- `elementary` (elementary OS)
|
- `elementary` (elementary OS)
|
||||||
|
- `endeavouros` (EndeavourOS)
|
||||||
- `fedora` (Fedora)
|
- `fedora` (Fedora)
|
||||||
- `freebsd` (FreeBSD)
|
- `freebsd` (FreeBSD)
|
||||||
- `freedos` (FreeDOS)
|
- `freedos` (FreeDOS)
|
||||||
@ -234,6 +256,7 @@ Other Operating Systems
|
|||||||
- `kdeneon` (KDE Neon)
|
- `kdeneon` (KDE Neon)
|
||||||
- `kolibrios` (KolibriOS)
|
- `kolibrios` (KolibriOS)
|
||||||
- `linuxmint` (Linux Mint)
|
- `linuxmint` (Linux Mint)
|
||||||
|
- `lmde` (Linux Mint Debian Edition)
|
||||||
- `manjaro` (Manjaro)
|
- `manjaro` (Manjaro)
|
||||||
- `mxlinux` (MX Linux)
|
- `mxlinux` (MX Linux)
|
||||||
- `netboot` (netboot.xyz)
|
- `netboot` (netboot.xyz)
|
||||||
@ -243,6 +266,7 @@ Other Operating Systems
|
|||||||
- `opensuse` (openSUSE)
|
- `opensuse` (openSUSE)
|
||||||
- `oraclelinux` (Oracle Linux)
|
- `oraclelinux` (Oracle Linux)
|
||||||
- `popos` (Pop!\_OS)
|
- `popos` (Pop!\_OS)
|
||||||
|
- `reactos` (ReactOS)
|
||||||
- `regolith` (Regolith Linux)
|
- `regolith` (Regolith Linux)
|
||||||
- `rockylinux` (Rocky Linux)
|
- `rockylinux` (Rocky Linux)
|
||||||
- `slackware` (Slackware)
|
- `slackware` (Slackware)
|
||||||
@ -257,7 +281,7 @@ configuration.
|
|||||||
- Download a .iso image of a Linux distribution
|
- Download a .iso image of a Linux distribution
|
||||||
- Create a VM configuration file; for example `debian-bullseye.conf`
|
- Create a VM configuration file; for example `debian-bullseye.conf`
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
guest_os="linux"
|
guest_os="linux"
|
||||||
disk_img="debian-bullseye/disk.qcow2"
|
disk_img="debian-bullseye/disk.qcow2"
|
||||||
iso="debian-bullseye/firmware-11.0.0-amd64-DVD-1.iso"
|
iso="debian-bullseye/firmware-11.0.0-amd64-DVD-1.iso"
|
||||||
@ -265,7 +289,7 @@ iso="debian-bullseye/firmware-11.0.0-amd64-DVD-1.iso"
|
|||||||
|
|
||||||
- Use `quickemu` to start the virtual machine:
|
- Use `quickemu` to start the virtual machine:
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
quickemu --vm debian-bullseye.conf
|
quickemu --vm debian-bullseye.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -276,13 +300,12 @@ quickemu --vm debian-bullseye.conf
|
|||||||
- Install the SPICE WebDAV agent (`spice-webdavd`) to enable file
|
- Install the SPICE WebDAV agent (`spice-webdavd`) to enable file
|
||||||
sharing.
|
sharing.
|
||||||
|
|
||||||
macOS Guest
|
## macOS Guest
|
||||||
-----------
|
|
||||||
|
|
||||||
`quickget` automatically downloads a macOS recovery image and creates a
|
`quickget` automatically downloads a macOS recovery image and creates a
|
||||||
virtual machine configuration.
|
virtual machine configuration.
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
quickget macos catalina
|
quickget macos catalina
|
||||||
quickemu --vm macos-catalina.conf
|
quickemu --vm macos-catalina.conf
|
||||||
```
|
```
|
||||||
@ -312,7 +335,7 @@ supported.
|
|||||||
|
|
||||||
The default macOS configuration looks like this:
|
The default macOS configuration looks like this:
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
guest_os="macos"
|
guest_os="macos"
|
||||||
img="macos-catalina/RecoveryImage.img"
|
img="macos-catalina/RecoveryImage.img"
|
||||||
disk_img="macos-catalina/disk.qcow2"
|
disk_img="macos-catalina/disk.qcow2"
|
||||||
@ -356,15 +379,35 @@ There are some considerations when running macOS via Quickemu.
|
|||||||
- UHCI (USB 2.0) on macOS Catalina and earlier.
|
- UHCI (USB 2.0) on macOS Catalina and earlier.
|
||||||
- XHCI (USB 3.0) on macOS Big Sur and newer.
|
- XHCI (USB 3.0) on macOS Big Sur and newer.
|
||||||
- Display resolution can only be changed via macOS System Preferences.
|
- Display resolution can only be changed via macOS System Preferences.
|
||||||
- Full Duplex audio works on macOS High Sierra, Mojave and Catalina.
|
- **Full Duplex audio requires [VoodooHDA
|
||||||
- **macOS Big Sur and Monterey have no audio at all**.
|
OC](https://github.com/chris1111/VoodooHDA-OC) or pass-through a USB
|
||||||
|
audio-device to the macOS guest VM**.
|
||||||
|
- NOTE! [Gatekeeper](https://disable-gatekeeper.github.io/) and
|
||||||
|
[System Integrity Protection
|
||||||
|
(SIP)](https://developer.apple.com/documentation/security/disabling_and_enabling_system_integrity_protection)
|
||||||
|
need to be disabled to install VoodooHDA OC
|
||||||
- File sharing between guest and host is available via
|
- File sharing between guest and host is available via
|
||||||
[virtio-9p](https://wiki.qemu.org/Documentation/9psetup) and [SPICE
|
[virtio-9p](https://wiki.qemu.org/Documentation/9psetup) and [SPICE
|
||||||
webdavd](https://gitlab.gnome.org/GNOME/phodav/-/merge_requests/24).
|
webdavd](https://gitlab.gnome.org/GNOME/phodav/-/merge_requests/24).
|
||||||
- Copy/paste via SPICE agent is **not available on macOS**.
|
- Copy/paste via SPICE agent is **not available on macOS**.
|
||||||
|
|
||||||
Windows 8.1, 10 & 11 Guests
|
### macOS App Store
|
||||||
---------------------------
|
|
||||||
|
If you see *"Your device or computer could not be verified"* when you
|
||||||
|
try to login to the App Store, make sure that your wired ethernet device
|
||||||
|
is `en0`. Use `ifconfig` in a terminal to verify this.
|
||||||
|
|
||||||
|
If the wired ethernet device is not `en0`, then then go to *System
|
||||||
|
Preferences* -\> *Network*, delete all the network devices and apply the
|
||||||
|
changes. Next, open a terminal and run the following:
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
sudo rm /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist
|
||||||
|
```
|
||||||
|
|
||||||
|
Now reboot, and the App Store should work.
|
||||||
|
|
||||||
|
## Windows 8.1, 10 & 11 Guests
|
||||||
|
|
||||||
`quickget` can automatically download Windows 8.1, [Windows
|
`quickget` can automatically download Windows 8.1, [Windows
|
||||||
10](https://www.microsoft.com/en-gb/software-download/windows10ISO) and
|
10](https://www.microsoft.com/en-gb/software-download/windows10ISO) and
|
||||||
@ -374,13 +417,17 @@ with the [VirtIO drivers for
|
|||||||
Windows](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/)
|
Windows](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/)
|
||||||
and creates a virtual machine configuration.
|
and creates a virtual machine configuration.
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
quickget windows 11
|
quickget windows 11
|
||||||
quickemu --vm windows-11.conf
|
quickemu --vm windows-11.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
- Complete the installation as you normally would.
|
- Complete the installation as you normally would.
|
||||||
- All relevant drivers and services should be installed automatically.
|
- All relevant drivers and services should be installed automatically.
|
||||||
|
- A local adminstrator user account is automatically created, with
|
||||||
|
these credentials:
|
||||||
|
- Username: `Quickemu`
|
||||||
|
- Password: `quickemu`
|
||||||
|
|
||||||
### Regional versions
|
### Regional versions
|
||||||
|
|
||||||
@ -388,18 +435,19 @@ By default `quickget` will download the *"English International"*
|
|||||||
release, but you can optionally specify one of the supported languages:
|
release, but you can optionally specify one of the supported languages:
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
quickget windows 11 "Chinese (Traditional)"
|
quickget windows 11 "Chinese (Traditional)"
|
||||||
```
|
```
|
||||||
|
|
||||||
The default Windows 11 configuration looks like this:
|
The default Windows 11 configuration looks like this:
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
guest_os="windows"
|
guest_os="windows"
|
||||||
disk_img="windows-11/disk.qcow2"
|
disk_img="windows-11/disk.qcow2"
|
||||||
iso="windows-11/Win11_EnglishInternational_x64.iso"
|
iso="windows-11/Win11_EnglishInternational_x64.iso"
|
||||||
fixed_iso="windows-11/virtio-win.iso"
|
fixed_iso="windows-11/virtio-win.iso"
|
||||||
tpm="on"
|
tpm="on"
|
||||||
|
secureboot="on"
|
||||||
```
|
```
|
||||||
|
|
||||||
- `guest_os="windows"` instructs `quickemu` to optimise for Windows.
|
- `guest_os="windows"` instructs `quickemu` to optimise for Windows.
|
||||||
@ -407,8 +455,7 @@ tpm="on"
|
|||||||
- `tpm="on"` instructs `quickemu` to create a software emulated TPM
|
- `tpm="on"` instructs `quickemu` to create a software emulated TPM
|
||||||
device using `swtpm`.
|
device using `swtpm`.
|
||||||
|
|
||||||
SPICE
|
# SPICE
|
||||||
=====
|
|
||||||
|
|
||||||
The following features are available while using the SPICE protocol:
|
The following features are available while using the SPICE protocol:
|
||||||
|
|
||||||
@ -420,49 +467,49 @@ To use SPICE add `--display spice` to the Quickemu invocation, this
|
|||||||
requires that the `spicy` client is installed, available from the
|
requires that the `spicy` client is installed, available from the
|
||||||
`spice-client-gtk` package in Debian/Ubuntu.
|
`spice-client-gtk` package in Debian/Ubuntu.
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
quickemu --vm ubuntu-20.04.conf --display spice
|
quickemu --vm ubuntu-22.04.conf --display spice
|
||||||
```
|
```
|
||||||
|
|
||||||
Headless
|
To enable copy/paste with a Windows guest, install [SPICE Windows guest
|
||||||
--------
|
tools](https://www.spice-space.org/download.html) in the guest VM.
|
||||||
|
|
||||||
|
## Headless
|
||||||
|
|
||||||
To start a VM with SPICE enabled, but no display attached use
|
To start a VM with SPICE enabled, but no display attached use
|
||||||
`--display none`. This requires that the `spicy` client is installed,
|
`--display none`. This requires that the `spicy` client is installed,
|
||||||
available from the `spice-client-gtk` package in Debian/Ubuntu to
|
available from the `spice-client-gtk` package in Debian/Ubuntu to
|
||||||
connect to the running VM
|
connect to the running VM
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
quickemu --vm ubuntu-20.04.conf --display none
|
quickemu --vm ubuntu-22.04.conf --display none
|
||||||
```
|
```
|
||||||
|
|
||||||
You can also use the `.ports` file in the VM directory to lookup what
|
You can also use the `.ports` file in the VM directory to lookup what
|
||||||
SSH and SPICE ports the VM is connected to.
|
SSH and SPICE ports the VM is connected to.
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
cat ubuntu-20.04/ubuntu-20.04.ports
|
cat ubuntu-22.04/ubuntu-22.04.ports
|
||||||
```
|
```
|
||||||
|
|
||||||
If, for example, the SSH port is set to 22220, and assuming your VM has
|
If, for example, the SSH port is set to 22220, and assuming your VM has
|
||||||
a started SSH service (details vary by OS), you can typically SSH into
|
a started SSH service (details vary by OS), you can typically SSH into
|
||||||
it from the host as follows:
|
it from the host as follows:
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
ssh -p 22220 your_vm_user@localhost
|
ssh -p 22220 your_vm_user@localhost
|
||||||
```
|
```
|
||||||
|
|
||||||
Accessibility
|
# Accessibility
|
||||||
=============
|
|
||||||
|
|
||||||
Qemu provides support for using BrlAPI to display braille output on a
|
Qemu provides support for using BrlAPI to display braille output on a
|
||||||
real or fake device.
|
real or fake device.
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
quickemu --vm ubuntu-21.10.conf --braille --display sdl
|
quickemu --vm ubuntu-22.04.conf --braille --display sdl
|
||||||
```
|
```
|
||||||
|
|
||||||
BIOS and EFI
|
# BIOS and EFI
|
||||||
============
|
|
||||||
|
|
||||||
Since Quickemu 2.1.0 `efi` is the default boot option. If you want to
|
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
|
override this behaviour then add the following line to you VM
|
||||||
@ -470,8 +517,7 @@ configuration to enable legacy BIOS.
|
|||||||
|
|
||||||
- `boot="legacy"` - Enable Legacy BIOS boot
|
- `boot="legacy"` - Enable Legacy BIOS boot
|
||||||
|
|
||||||
Tuning CPU cores, RAM & disks
|
# Tuning CPU cores, RAM & disks
|
||||||
=============================
|
|
||||||
|
|
||||||
By default, Quickemu will calculate the number of CPUs cores and RAM to
|
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
|
allocate to a VM based on the specifications of your host computer. You
|
||||||
@ -486,8 +532,7 @@ Add additional lines to your virtual machine configuration:
|
|||||||
- `disk_size="16G"` - Specify the size of the virtual disk allocated
|
- `disk_size="16G"` - Specify the size of the virtual disk allocated
|
||||||
to the VM
|
to the VM
|
||||||
|
|
||||||
Disk preallocation
|
## Disk preallocation
|
||||||
------------------
|
|
||||||
|
|
||||||
Preallocation mode (allowed values: `off` (default), `metadata`,
|
Preallocation mode (allowed values: `off` (default), `metadata`,
|
||||||
`falloc`, `full`). An image with preallocated metadata is initially
|
`falloc`, `full`). An image with preallocated metadata is initially
|
||||||
@ -499,16 +544,14 @@ configuration.
|
|||||||
|
|
||||||
- `preallocation="metadata"`
|
- `preallocation="metadata"`
|
||||||
|
|
||||||
CD-ROM disks
|
## CD-ROM disks
|
||||||
------------
|
|
||||||
|
|
||||||
If you want to expose an ISO image from the host to guest add the
|
If you want to expose an ISO image from the host to guest add the
|
||||||
following line to the VM configuration:
|
following line to the VM configuration:
|
||||||
|
|
||||||
- `fixed_iso="/path/to/image.iso"`
|
- `fixed_iso="/path/to/image.iso"`
|
||||||
|
|
||||||
Floppy disks
|
## Floppy disks
|
||||||
------------
|
|
||||||
|
|
||||||
If you're like [Alan Pope](https://popey.com) you'll probably want to
|
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
|
mount a floppy disk image in the guest. To do so add the following line
|
||||||
@ -516,14 +559,12 @@ to the VM configuration:
|
|||||||
|
|
||||||
- `floppy="/path/to/floppy.img"`
|
- `floppy="/path/to/floppy.img"`
|
||||||
|
|
||||||
File Sharing
|
# File Sharing
|
||||||
============
|
|
||||||
|
|
||||||
All File Sharing options will only expose `~/Public` (or localised
|
All File Sharing options will only expose `~/Public` (or localised
|
||||||
variations) for the current user to the guest VMs.
|
variations) for the current user to the guest VMs.
|
||||||
|
|
||||||
Samba 🐧 🍏 🪟
|
## Samba 🐧 🍏 🪟
|
||||||
-----------
|
|
||||||
|
|
||||||
If `smbd` is available on the host, Quickemu will automatically enable
|
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 built-in QEMU support for exposing a Samba share from the host to
|
||||||
@ -531,22 +572,28 @@ the guest.
|
|||||||
|
|
||||||
You can install the minimal Samba components on Ubuntu using:
|
You can install the minimal Samba components on Ubuntu using:
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
sudo apt install --no-install-recommends samba
|
sudo apt install --no-install-recommends samba
|
||||||
```
|
```
|
||||||
|
|
||||||
SPICE WebDAV 🐧 🪟
|
If everything is set up correctly, the `smbd` address will be printed
|
||||||
----------------
|
when the virtual machine is started. For example:
|
||||||
|
|
||||||
|
- smbd: On guest: smb://10.0.2.4/qemu
|
||||||
|
|
||||||
|
If using a Windows guest, right-click on "This PC", click "Add a network
|
||||||
|
location", and paste this address, removing `smb:` and replacing forward
|
||||||
|
slashes with backslashes (in this example `\\10.0.2.4\qemu`).
|
||||||
|
|
||||||
|
## SPICE WebDAV 🐧 🪟
|
||||||
|
|
||||||
- TBD
|
- TBD
|
||||||
|
|
||||||
VirtIO-9P 🐧 🍏
|
## VirtIO-9P 🐧 🍏
|
||||||
-------------
|
|
||||||
|
|
||||||
- TBD
|
- TBD
|
||||||
|
|
||||||
Network port forwarding
|
# Network port forwarding
|
||||||
=======================
|
|
||||||
|
|
||||||
Add an additional line to your virtual machine configuration. For
|
Add an additional line to your virtual machine configuration. For
|
||||||
example:
|
example:
|
||||||
@ -558,30 +605,54 @@ In the example above:
|
|||||||
- Port 8123 on the host is forwarded to port 8123 on the guest.
|
- 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.
|
- Port 8888 on the host is forwarded to port 80 on the guest.
|
||||||
|
|
||||||
Bridged networking
|
# Disable networking
|
||||||
==================
|
|
||||||
|
To completely disable all network interfaces in a guest VM add this
|
||||||
|
additional line to your virtual machine configuration:
|
||||||
|
|
||||||
|
- `network="none"`
|
||||||
|
|
||||||
|
# Restricted networking
|
||||||
|
|
||||||
|
You can isolate the guest from the host (and broader network) using the
|
||||||
|
restrict option, which will restrict networking to just the guest and
|
||||||
|
any virtual devices.
|
||||||
|
|
||||||
|
This can be used to prevent software running inside the guest from
|
||||||
|
phoning home while still providing a network inside the guest. Add this
|
||||||
|
additional line to your virtual machine configuration:
|
||||||
|
|
||||||
|
- `network="restrict"`
|
||||||
|
|
||||||
|
# Bridged networking
|
||||||
|
|
||||||
Connect your virtual machine to a preconfigured network bridge. Add an
|
Connect your virtual machine to a preconfigured network bridge. Add an
|
||||||
additional line to your virtual machine configuration
|
additional line to your virtual machine configuration:
|
||||||
|
|
||||||
- `bridge="br0"`
|
- `network="br0"`
|
||||||
|
|
||||||
USB redirection
|
If you want to have a persistent MAC address for your bridged network
|
||||||
===============
|
interface in the guest VM you can add `macaddr` to the virtual machine
|
||||||
|
configuration. QEMU requires that the MAC address is in the range:
|
||||||
|
**52:54:00:AB:00:00 - 52:54:00:AB:FF:FF**
|
||||||
|
|
||||||
|
So you can generate your own MAC addresses with:
|
||||||
|
|
||||||
|
- `macaddr="52:54:00:AB:51:AE"`
|
||||||
|
|
||||||
|
# USB redirection
|
||||||
|
|
||||||
Quickemu supports USB redirection via SPICE pass-through and host
|
Quickemu supports USB redirection via SPICE pass-through and host
|
||||||
pass-through.
|
pass-through.
|
||||||
|
|
||||||
SPICE redirection (recommended)
|
## SPICE redirection (recommended)
|
||||||
-------------------------------
|
|
||||||
|
|
||||||
Using SPICE for USB pass-through is easiest as it doesn't require any
|
Using SPICE for USB pass-through is easiest as it doesn't require any
|
||||||
elevated permission, start Quickemu with `--display spice` and then
|
elevated permission, start Quickemu with `--display spice` and then
|
||||||
select `Input` -\> `Select USB Device for redirection` from the menu to
|
select `Input` -\> `Select USB Device for redirection` from the menu to
|
||||||
choose which device(s) you want to attach to the guest.
|
choose which device(s) you want to attach to the guest.
|
||||||
|
|
||||||
Host redirection **NOT Recommended**
|
## Host redirection **NOT Recommended**
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
**USB host redirection is not recommended**, it is provided purely for
|
**USB host redirection is not recommended**, it is provided purely for
|
||||||
backwards compatibility to older versions of Quickemu. Using SPICE is
|
backwards compatibility to older versions of Quickemu. Using SPICE is
|
||||||
@ -594,9 +665,9 @@ example:
|
|||||||
|
|
||||||
In the example above:
|
In the example above:
|
||||||
|
|
||||||
- The USB device with vendor\_id 046d and product\_id 082d will be
|
- The USB device with vendor_id 046d and product_id 082d will be
|
||||||
exposed to the guest.
|
exposed to the guest.
|
||||||
- The USB device with vendor\_id 046d and product\_id 085e will be
|
- The USB device with vendor_id 046d and product_id 085e will be
|
||||||
exposed to the guest.
|
exposed to the guest.
|
||||||
|
|
||||||
If the USB devices are not writable, `quickemu` will display the
|
If the USB devices are not writable, `quickemu` will display the
|
||||||
@ -608,55 +679,79 @@ like this:
|
|||||||
sudo chown -v root:user /dev/bus/usb/001/005
|
sudo chown -v root:user /dev/bus/usb/001/005
|
||||||
ERROR! USB permission changes are required 👆
|
ERROR! USB permission changes are required 👆
|
||||||
|
|
||||||
TPM
|
# TPM
|
||||||
===
|
|
||||||
|
|
||||||
Since Quickemu 2.2.0 a software emulated TPM device can be added to
|
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.
|
guest virtual machines. Just add `tpm="on"` to your VM configuration.
|
||||||
`quickget` will automatically add this line to Windows 11 virtual
|
`quickget` will automatically add this line to Windows 11 virtual
|
||||||
machines.
|
machines.
|
||||||
|
|
||||||
All the options
|
# All the options
|
||||||
===============
|
|
||||||
|
|
||||||
Here are the usage instructions:
|
Here are the usage instructions:
|
||||||
|
|
||||||
``` {.bash}
|
<!-- [[[cog
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
import cog
|
||||||
|
# cannot use check_result() because of non-zero return
|
||||||
|
result=subprocess.run(["./quickemu", "--help"], capture_output=True, text=True)
|
||||||
|
help=result.stdout
|
||||||
|
cog.out(f"\n```\n{help}\n```\n")
|
||||||
|
]]] -->
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
Usage
|
Usage
|
||||||
quickemu --vm ubuntu.conf
|
quickemu --vm ubuntu.conf
|
||||||
|
|
||||||
You can also pass optional parameters
|
You can also pass optional parameters
|
||||||
--braille : Enable braille support. Requires SDL.
|
--braille : Enable braille support. Requires SDL.
|
||||||
--delete-disk : Delete the disk image and EFI variables
|
--delete-disk : Delete the disk image and EFI variables
|
||||||
--delete-vm : Delete the entire VM and it's configuration
|
--delete-vm : Delete the entire VM and it's configuration
|
||||||
--display : Select display backend. 'sdl' (default), 'gtk', 'none', or 'spice'
|
--display : Select display backend. 'sdl' (default), 'gtk', 'none', 'spice' or 'spice-app'
|
||||||
--fullscreen : Starts VM in full screen mode (Ctl+Alt+f to exit)
|
--fullscreen : Starts VM in full screen mode (Ctl+Alt+f to exit)
|
||||||
--ignore-msrs-always : Configure KVM to always ignore unhandled machine-specific registers
|
--ignore-msrs-always : Configure KVM to always ignore unhandled machine-specific registers
|
||||||
--screen <screen> : Use specified screen to determine the window size.
|
--screen <screen> : Use specified screen to determine the window size.
|
||||||
--shortcut : Create a desktop shortcut
|
--shortcut : Create a desktop shortcut
|
||||||
--snapshot apply <tag> : Apply/restore a snapshot.
|
--snapshot apply <tag> : Apply/restore a snapshot.
|
||||||
--snapshot create <tag> : Create a snapshot.
|
--snapshot create <tag> : Create a snapshot.
|
||||||
--snapshot delete <tag> : Delete a snapshot.
|
--snapshot delete <tag> : Delete a snapshot.
|
||||||
--snapshot info : Show disk/snapshot info.
|
--snapshot info : Show disk/snapshot info.
|
||||||
--status-quo : Do not commit any changes to disk/snapshot.
|
--status-quo : Do not commit any changes to disk/snapshot.
|
||||||
--version : Print version
|
--viewer <viewer> : Choose an alternative viewer. @Options: 'spicy' (default), 'remote-viewer', 'none'
|
||||||
|
--ssh-port <port> : Set ssh-port manually
|
||||||
|
--spice-port <port> : Set spice-port manually
|
||||||
|
--public-dir <path> : expose share directory. @Options: '' (default: xdg-user-dir PUBLICSHARE), '<directory>', 'none'
|
||||||
|
--monitor <type> : Set monitor connection type. @Options: 'socket' (default), 'telnet', 'none'
|
||||||
|
--monitor-telnet-host <ip/host> : Set telnet host for monitor. (default: 'localhost')
|
||||||
|
--monitor-telnet-port <port> : Set telnet port for monitor. (default: '4440')
|
||||||
|
--monitor-cmd <cmd> : Send command to monitor if available. (Example: system_powerdown)
|
||||||
|
--serial <type> : Set serial connection type. @Options: 'socket' (default), 'telnet', 'none'
|
||||||
|
--serial-telnet-host <ip/host> : Set telnet host for serial. (default: 'localhost')
|
||||||
|
--serial-telnet-port <port> : Set telnet port for serial. (default: '6660')
|
||||||
|
--keyboard <type> : Set keyboard. @Options: 'usb' (default), 'ps2', 'virtio'
|
||||||
|
--keyboard_layout <layout> : Set keyboard layout.
|
||||||
|
--mouse <type> : Set mouse. @Options: 'tablet' (default), 'ps2', 'usb', 'virtio'
|
||||||
|
--usb-controller <type> : Set usb-controller. @Options: 'ehci' (default), 'xhci', 'none'
|
||||||
|
--extra_args <arguments> : Pass additional arguments to qemu
|
||||||
|
--version : Print version
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Desktop shortcuts
|
<!-- [[[end]]] -->
|
||||||
-----------------
|
|
||||||
|
## Desktop shortcuts
|
||||||
|
|
||||||
Desktop shortcuts can be created for a VM, the shortcuts are saved in
|
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
|
`~/.local/share/applications`. Here is an example of how to create a
|
||||||
shortcut.
|
shortcut.
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
quickemu --vm ubuntu-20.04-desktop.conf --shortcut
|
quickemu --vm ubuntu-22.04-desktop.conf --shortcut
|
||||||
```
|
```
|
||||||
|
|
||||||
Screen and window size (Linux guests only)
|
## Screen and window size (Linux guests only)
|
||||||
------------------------------------------
|
|
||||||
|
|
||||||
`qemu` will always default to the primary monitor to display the VM's
|
`qemu` will always default to the primary monitor to display the VM's
|
||||||
window.
|
window.
|
||||||
@ -677,13 +772,13 @@ must match the resolution of the screen.
|
|||||||
|
|
||||||
To know which screen to use, type:
|
To know which screen to use, type:
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
xrandr --listmonitors | grep -v Monitors
|
xrandr --listmonitors | grep -v Monitors
|
||||||
```
|
```
|
||||||
|
|
||||||
The command will output something like this:
|
The command will output something like this:
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
0: +*HDMI-0 2560/597x1440/336+1920+0 HDMI-0
|
0: +*HDMI-0 2560/597x1440/336+1920+0 HDMI-0
|
||||||
1: +DVI-D-0 1920/527x1080/296+0+0 DVI-D-0
|
1: +DVI-D-0 1920/527x1080/296+0+0 DVI-D-0
|
||||||
```
|
```
|
||||||
@ -692,7 +787,7 @@ The first number is what needs to be passed to the `--screen` option.
|
|||||||
|
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
quickemu --vm vm.conf --screen 0
|
quickemu --vm vm.conf --screen 0
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -701,8 +796,7 @@ which Quickemu sizes to 2048x1152. Without the `--screen` option,
|
|||||||
Quickemu would have used the 1920x1080 monitor which results in a window
|
Quickemu would have used the 1920x1080 monitor which results in a window
|
||||||
size of 1664x936.
|
size of 1664x936.
|
||||||
|
|
||||||
References
|
# References
|
||||||
==========
|
|
||||||
|
|
||||||
Useful reference that assisted the development of Quickemu.
|
Useful reference that assisted the development of Quickemu.
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit 3ede604a11b7a666f91bb19705d32d73fb0bd4d7
|
Subproject commit da4705f350bb95c08dfd7e31627285ffc8019045
|
344
docs/quickemu.1
344
docs/quickemu.1
@ -1,6 +1,20 @@
|
|||||||
.\" Automatically generated by Pandoc 2.9.2.1
|
.\" Automatically generated by Pandoc 2.19.2
|
||||||
.\"
|
.\"
|
||||||
.TH "QUICKEMU" "1" "February 20, 2022" "quickemu" "Quickemu User Manual"
|
.\" Define V font for inline verbatim, using C font in formats
|
||||||
|
.\" that render this, and otherwise B font.
|
||||||
|
.ie "\f[CB]x\f[]"x" \{\
|
||||||
|
. ftr V B
|
||||||
|
. ftr VI BI
|
||||||
|
. ftr VB B
|
||||||
|
. ftr VBI BI
|
||||||
|
.\}
|
||||||
|
.el \{\
|
||||||
|
. ftr V CR
|
||||||
|
. ftr VI CI
|
||||||
|
. ftr VB CB
|
||||||
|
. ftr VBI CBI
|
||||||
|
.\}
|
||||||
|
.TH "QUICKEMU" "1" "September 1, 2022" "quickemu" "Quickemu User Manual"
|
||||||
.hy
|
.hy
|
||||||
.SH NAME
|
.SH NAME
|
||||||
.PP
|
.PP
|
||||||
@ -61,8 +75,8 @@ Do not commit any changes to disk/snapshot.
|
|||||||
Print version
|
Print version
|
||||||
.SH EXAMPLES
|
.SH EXAMPLES
|
||||||
.TP
|
.TP
|
||||||
\f[B]quickemu \[en]vm ubuntu-mate-21.10-.conf\f[R]
|
\f[B]quickemu \[en]vm ubuntu-mate-22.04.conf\f[R]
|
||||||
Launches the VM specified in the file \f[I]ubuntu-mate-21.10-.conf\f[R]
|
Launches the VM specified in the file \f[I]ubuntu-mate-22.04.conf\f[R]
|
||||||
.SS Introduction
|
.SS Introduction
|
||||||
.PP
|
.PP
|
||||||
Quickly create and run highly optimised desktop virtual machines for
|
Quickly create and run highly optimised desktop virtual machines for
|
||||||
@ -73,8 +87,8 @@ For example:
|
|||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
quickget ubuntu-mate 21.10
|
quickget ubuntu-mate 22.04
|
||||||
quickemu --vm ubuntu-mate-21.10-.conf
|
quickemu --vm ubuntu-mate-22.04.conf
|
||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
@ -105,7 +119,7 @@ QEMU Guest Agent support (https://wiki.qemu.org/Features/GuestAgent);
|
|||||||
provides access to a system-level agent via standard QMP commands
|
provides access to a system-level agent via standard QMP commands
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Samba file sharing for Linux, macOS and Windows guests (\f[I]if
|
Samba file sharing for Linux, macOS and Windows guests (\f[I]if
|
||||||
\f[CI]smbd\f[I] is installed on the host\f[R])
|
\f[VI]smbd\f[I] is installed on the host\f[R])
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
VirGL acceleration
|
VirGL acceleration
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
@ -181,10 +195,49 @@ xrandr (https://gitlab.freedesktop.org/xorg/app/xrandr)
|
|||||||
zsync (http://zsync.moria.org.uk/)
|
zsync (http://zsync.moria.org.uk/)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
unzip (http://www.info-zip.org/UnZip.html)
|
unzip (http://www.info-zip.org/UnZip.html)
|
||||||
|
.SS Installing Requirements
|
||||||
|
.PP
|
||||||
|
For Ubuntu, Arch and nixos systems the
|
||||||
|
ppa (https://launchpad.net/~flexiondotorg/+archive/ubuntu/quickemu),
|
||||||
|
AUR (https://aur.archlinux.org/packages/quickemu) or
|
||||||
|
nix (https://github.com/NixOS/nixpkgs/tree/master/pkgs/development/quickemu)
|
||||||
|
packaging will take care of the dependencies.
|
||||||
|
For other host distributions or operating systems it will be necessary
|
||||||
|
to install the above requirements or their equivalents.
|
||||||
|
.PP
|
||||||
|
These examples may save a little typing
|
||||||
|
.PP
|
||||||
|
Debian:
|
||||||
|
.IP
|
||||||
|
.nf
|
||||||
|
\f[C]
|
||||||
|
sudo apt install qemu bash coreutils ovmf grep jq lsb procps python3 genisoimage usbutils util-linux sed spice-client-gtk swtpm wget xdg-user-dirs zsync unzip
|
||||||
|
\f[R]
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Fedora:
|
||||||
|
.IP
|
||||||
|
.nf
|
||||||
|
\f[C]
|
||||||
|
sudo dnf install qemu bash coreutils edk2-tools grep jq lsb procps python3 genisoimage usbutils util-linux sed spice-gtk-tools swtpm wget xdg-user-dirs xrandr unzip
|
||||||
|
\f[R]
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
MacOS:
|
||||||
|
.PP
|
||||||
|
This is a work in progress (see issue
|
||||||
|
248 (https://github.com/quickemu-project/quickemu/issues/248) for other
|
||||||
|
steps and changes that may enable running on MacOS)
|
||||||
|
.IP
|
||||||
|
.nf
|
||||||
|
\f[C]
|
||||||
|
brew install qemu bash coreutils grep jq python\[at]3.10 cdrtools gnu-sed spice-gtk wget zsync
|
||||||
|
\f[R]
|
||||||
|
.fi
|
||||||
.SH Usage
|
.SH Usage
|
||||||
.SS Graphical User Interfaces
|
.SS Graphical User Interfaces
|
||||||
.PP
|
.PP
|
||||||
While \f[C]quickemu\f[R] and \f[C]quickget\f[R] are designed for the
|
While \f[V]quickemu\f[R] and \f[V]quickget\f[R] are designed for the
|
||||||
terminal, a graphical user interface is also available:
|
terminal, a graphical user interface is also available:
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[B]Quickgui (https://github.com/quickgui/quickgui)\f[R] by Mark
|
\f[B]Quickgui (https://github.com/quickgui/quickgui)\f[R] by Mark
|
||||||
@ -206,13 +259,13 @@ sudo apt install quickgui
|
|||||||
.fi
|
.fi
|
||||||
.SS Ubuntu Guest
|
.SS Ubuntu Guest
|
||||||
.PP
|
.PP
|
||||||
\f[C]quickget\f[R] will automatically download an Ubuntu release and
|
\f[V]quickget\f[R] will automatically download an Ubuntu release and
|
||||||
create the virtual machine configuration.
|
create the virtual machine configuration.
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
quickget ubuntu 20.04
|
quickget ubuntu 22.04
|
||||||
quickemu --vm ubuntu-20.04.conf
|
quickemu --vm ubuntu-22.04.conf
|
||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
@ -221,24 +274,24 @@ Complete the installation as normal.
|
|||||||
Post-install:
|
Post-install:
|
||||||
.RS 2
|
.RS 2
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Install the SPICE agent (\f[C]spice-vdagent\f[R]) to enable copy/paste
|
Install the SPICE agent (\f[V]spice-vdagent\f[R]) to enable copy/paste
|
||||||
and USB redirection
|
and USB redirection
|
||||||
.RS 2
|
.RS 2
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]sudo apt install spice-vdagent\f[R]
|
\f[V]sudo apt install spice-vdagent\f[R]
|
||||||
.RE
|
.RE
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Install the SPICE WebDAV agent (\f[C]spice-webdavd\f[R]) to enable file
|
Install the SPICE WebDAV agent (\f[V]spice-webdavd\f[R]) to enable file
|
||||||
sharing.
|
sharing.
|
||||||
.RS 2
|
.RS 2
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]sudo apt install spice-webdavd\f[R]
|
\f[V]sudo apt install spice-webdavd\f[R]
|
||||||
.RE
|
.RE
|
||||||
.RE
|
.RE
|
||||||
.SS Ubuntu devel (daily-live) images
|
.SS Ubuntu devel (daily-live) images
|
||||||
.PP
|
.PP
|
||||||
\f[C]quickget\f[R] can also download/refresh devel images via
|
\f[V]quickget\f[R] can also download/refresh devel images via
|
||||||
\f[C]zsync\f[R] for Ubuntu developers and testers.
|
\f[V]zsync\f[R] for Ubuntu developers and testers.
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
@ -247,106 +300,118 @@ quickemu --vm ubuntu-devel.conf
|
|||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
You can run \f[C]quickget ubuntu devel\f[R] to refresh your daily
|
You can run \f[V]quickget ubuntu devel\f[R] to refresh your daily
|
||||||
development image as often as you like, it will even automatically
|
development image as often as you like, it will even automatically
|
||||||
switch to a new series.
|
switch to a new series.
|
||||||
.SS Ubuntu Flavours
|
.SS Ubuntu Flavours
|
||||||
.PP
|
.PP
|
||||||
All the official Ubuntu flavours are supported, just replace
|
All the official Ubuntu flavours are supported, just replace
|
||||||
\f[C]ubuntu\f[R] with your preferred flavour.
|
\f[V]ubuntu\f[R] with your preferred flavour.
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]kubuntu\f[R] (Kubuntu)
|
\f[V]kubuntu\f[R] (Kubuntu)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]lubuntu\f[R] (Lubuntu)
|
\f[V]lubuntu\f[R] (Lubuntu)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]ubuntu-budgie\f[R] (Ubuntu Budgie)
|
\f[V]ubuntu-budgie\f[R] (Ubuntu Budgie)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]ubuntukylin\f[R] (Ubuntu Kylin)
|
\f[V]ubuntukylin\f[R] (Ubuntu Kylin)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]ubuntu-mate\f[R] (Ubuntu MATE)
|
\f[V]ubuntu-mate\f[R] (Ubuntu MATE)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]ubuntustudio\f[R] (Ubuntu Studio)
|
\f[V]ubuntustudio\f[R] (Ubuntu Studio)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]ubuntu\f[R] (Ubuntu)
|
\f[V]ubuntu\f[R] (Ubuntu)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]xubuntu\f[R] (Xubuntu)
|
\f[V]xubuntu\f[R] (Xubuntu)
|
||||||
.SS Other Operating Systems
|
.SS Other Operating Systems
|
||||||
.PP
|
.PP
|
||||||
\f[C]quickget\f[R] also supports:
|
\f[V]quickget\f[R] also supports:
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]alma\f[R] (Alma Linux)
|
\f[V]alma\f[R] (Alma Linux)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]alpine\f[R] (Alpine Linux)
|
\f[V]alpine\f[R] (Alpine Linux)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]android\f[R] (Android x86)
|
\f[V]android\f[R] (Android x86)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]archlinux\f[R] (Arch Linux)
|
\f[V]archlinux\f[R] (Arch Linux)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]arcolinux\f[R] (Arco Linux)
|
\f[V]arcolinux\f[R] (Arco Linux)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]cachyos\f[R] (CachyOS)
|
\f[V]batocera\f[R] (Batocera)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]debian\f[R] (Debian)
|
\f[V]cachyos\f[R] (CachyOS)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]devuan\f[R] (Devuan)
|
\f[V]centos-stream\f[R] (CentOS Stream)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]dragonflybsd\f[R] (DragonFlyBSD)
|
\f[V]debian\f[R] (Debian)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]elementary\f[R] (elementary OS)
|
\f[V]deepin\f[R] (Deepin)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]fedora\f[R] (Fedora)
|
\f[V]devuan\f[R] (Devuan)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]freebsd\f[R] (FreeBSD)
|
\f[V]dragonflybsd\f[R] (DragonFlyBSD)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]freedos\f[R] (FreeDOS)
|
\f[V]elementary\f[R] (elementary OS)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]garuda\f[R] (Garuda Linux)
|
\f[V]endeavouros\f[R] (EndeavourOS)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]gentoo\f[R] (Gentoo)
|
\f[V]fedora\f[R] (Fedora)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]ghostbsd\f[R] (GhostBSD)
|
\f[V]freebsd\f[R] (FreeBSD)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]haiku\f[R] (Haiku)
|
\f[V]freedos\f[R] (FreeDOS)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]kali\f[R] (Kali)
|
\f[V]garuda\f[R] (Garuda Linux)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]kdeneon\f[R] (KDE Neon)
|
\f[V]gentoo\f[R] (Gentoo)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]kolibrios\f[R] (KolibriOS)
|
\f[V]ghostbsd\f[R] (GhostBSD)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]linuxmint\f[R] (Linux Mint)
|
\f[V]haiku\f[R] (Haiku)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]manjaro\f[R] (Manjaro)
|
\f[V]kali\f[R] (Kali)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]mxlinux\f[R] (MX Linux)
|
\f[V]kdeneon\f[R] (KDE Neon)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]netboot\f[R] (netboot.xyz)
|
\f[V]kolibrios\f[R] (KolibriOS)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]netbsd\f[R] (NetBSD)
|
\f[V]linuxmint\f[R] (Linux Mint)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]nixos\f[R] (NixOS)
|
\f[V]lmde\f[R] (Linux Mint Debian Edition)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]openbsd\f[R] (OpenBSD)
|
\f[V]manjaro\f[R] (Manjaro)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]opensuse\f[R] (openSUSE)
|
\f[V]mxlinux\f[R] (MX Linux)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]oraclelinux\f[R] (Oracle Linux)
|
\f[V]netboot\f[R] (netboot.xyz)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]popos\f[R] (Pop!_OS)
|
\f[V]netbsd\f[R] (NetBSD)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]regolith\f[R] (Regolith Linux)
|
\f[V]nixos\f[R] (NixOS)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]rockylinux\f[R] (Rocky Linux)
|
\f[V]openbsd\f[R] (OpenBSD)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]slackware\f[R] (Slackware)
|
\f[V]opensuse\f[R] (openSUSE)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]solus\f[R] (Solus)
|
\f[V]oraclelinux\f[R] (Oracle Linux)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]tails\f[R] (Tails)
|
\f[V]popos\f[R] (Pop!_OS)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]void\f[R] (Void Linux)
|
\f[V]reactos\f[R] (ReactOS)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]zorin\f[R] (Zorin OS)
|
\f[V]regolith\f[R] (Regolith Linux)
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[V]rockylinux\f[R] (Rocky Linux)
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[V]slackware\f[R] (Slackware)
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[V]solus\f[R] (Solus)
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[V]tails\f[R] (Tails)
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[V]void\f[R] (Void Linux)
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[V]zorin\f[R] (Zorin OS)
|
||||||
.PP
|
.PP
|
||||||
Or you can download a Linux image and manually create a VM
|
Or you can download a Linux image and manually create a VM
|
||||||
configuration.
|
configuration.
|
||||||
@ -354,7 +419,7 @@ configuration.
|
|||||||
Download a .iso image of a Linux distribution
|
Download a .iso image of a Linux distribution
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Create a VM configuration file; for example
|
Create a VM configuration file; for example
|
||||||
\f[C]debian-bullseye.conf\f[R]
|
\f[V]debian-bullseye.conf\f[R]
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
@ -364,7 +429,7 @@ iso=\[dq]debian-bullseye/firmware-11.0.0-amd64-DVD-1.iso\[dq]
|
|||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Use \f[C]quickemu\f[R] to start the virtual machine:
|
Use \f[V]quickemu\f[R] to start the virtual machine:
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
@ -377,15 +442,15 @@ Complete the installation as normal.
|
|||||||
Post-install:
|
Post-install:
|
||||||
.RS 2
|
.RS 2
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Install the SPICE agent (\f[C]spice-vdagent\f[R]) to enable copy/paste
|
Install the SPICE agent (\f[V]spice-vdagent\f[R]) to enable copy/paste
|
||||||
and USB redirection.
|
and USB redirection.
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Install the SPICE WebDAV agent (\f[C]spice-webdavd\f[R]) to enable file
|
Install the SPICE WebDAV agent (\f[V]spice-webdavd\f[R]) to enable file
|
||||||
sharing.
|
sharing.
|
||||||
.RE
|
.RE
|
||||||
.SS macOS Guest
|
.SS macOS Guest
|
||||||
.PP
|
.PP
|
||||||
\f[C]quickget\f[R] automatically downloads a macOS recovery image and
|
\f[V]quickget\f[R] automatically downloads a macOS recovery image and
|
||||||
creates a virtual machine configuration.
|
creates a virtual machine configuration.
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
@ -395,8 +460,8 @@ quickemu --vm macos-catalina.conf
|
|||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
macOS \f[C]high-sierra\f[R], \f[C]mojave\f[R], \f[C]catalina\f[R],
|
macOS \f[V]high-sierra\f[R], \f[V]mojave\f[R], \f[V]catalina\f[R],
|
||||||
\f[C]big-sur\f[R] and \f[C]monterey\f[R] are supported.
|
\f[V]big-sur\f[R] and \f[V]monterey\f[R] are supported.
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Use cursor keys and enter key to select the \f[B]macOS Base System\f[R]
|
Use cursor keys and enter key to select the \f[B]macOS Base System\f[R]
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
@ -409,19 +474,19 @@ Click \f[B]Disk Utility\f[R] and \f[B]Continue\f[R]
|
|||||||
On macOS Catalina, Big Sur & Monterey
|
On macOS Catalina, Big Sur & Monterey
|
||||||
.RS 2
|
.RS 2
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Select \f[C]Apple Inc. VirtIO Block Media\f[R] from the list and click
|
Select \f[V]Apple Inc. VirtIO Block Media\f[R] from the list and click
|
||||||
\f[B]Erase\f[R].
|
\f[B]Erase\f[R].
|
||||||
.RE
|
.RE
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
On macOS Mojave and High Sierra
|
On macOS Mojave and High Sierra
|
||||||
.RS 2
|
.RS 2
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Select \f[C]QEMU HARDDISK Media\f[R] (\[ti]103.08GB) from the list and
|
Select \f[V]QEMU HARDDISK Media\f[R] (\[ti]103.08GB) from the list and
|
||||||
click \f[B]Erase\f[R].
|
click \f[B]Erase\f[R].
|
||||||
.RE
|
.RE
|
||||||
.RE
|
.RE
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Enter a \f[C]Name:\f[R] for the disk and click \f[B]Erase\f[R].
|
Enter a \f[V]Name:\f[R] for the disk and click \f[B]Erase\f[R].
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Click \f[B]Done\f[R].
|
Click \f[B]Done\f[R].
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
@ -455,10 +520,10 @@ macos_release=\[dq]catalina\[dq]
|
|||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]guest_os=\[dq]macos\[dq]\f[R] instructs Quickemu to optimise for
|
\f[V]guest_os=\[dq]macos\[dq]\f[R] instructs Quickemu to optimise for
|
||||||
macOS.
|
macOS.
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]macos_release=\[dq]catalina\[dq]\f[R] instructs Quickemu to
|
\f[V]macos_release=\[dq]catalina\[dq]\f[R] instructs Quickemu to
|
||||||
optimise for a particular macOS release.
|
optimise for a particular macOS release.
|
||||||
.RS 2
|
.RS 2
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
@ -486,7 +551,7 @@ Big Sur
|
|||||||
Monterey
|
Monterey
|
||||||
.RE
|
.RE
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]quickemu\f[R] will automatically download the required
|
\f[V]quickemu\f[R] will automatically download the required
|
||||||
OpenCore (https://github.com/acidanthera/OpenCorePkg) bootloader and
|
OpenCore (https://github.com/acidanthera/OpenCorePkg) bootloader and
|
||||||
OVMF firmware from OSX-KVM (https://github.com/kholia/OSX-KVM).
|
OVMF firmware from OSX-KVM (https://github.com/kholia/OSX-KVM).
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
@ -499,11 +564,11 @@ VirtIO Block
|
|||||||
Media (https://www.kraxel.org/blog/2019/06/macos-qemu-guest/) is used
|
Media (https://www.kraxel.org/blog/2019/06/macos-qemu-guest/) is used
|
||||||
for the system disk where supported.
|
for the system disk where supported.
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
VirtIO \f[C]usb-tablet\f[R] (http://philjordan.eu/osx-virt/) is used for
|
VirtIO \f[V]usb-tablet\f[R] (http://philjordan.eu/osx-virt/) is used for
|
||||||
the mouse.
|
the mouse.
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
VirtIO Network (\f[C]virtio-net\f[R]) is supported and enabled on macOS
|
VirtIO Network (\f[V]virtio-net\f[R]) is supported and enabled on macOS
|
||||||
Big Sur and newer but previous releases use \f[C]vmxnet3\f[R].
|
Big Sur and newer but previous releases use \f[V]vmxnet3\f[R].
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
VirtIO Memory Ballooning is supported and enabled on macOS Big Sur and
|
VirtIO Memory Ballooning is supported and enabled on macOS Big Sur and
|
||||||
newer but disabled for other support macOS releases.
|
newer but disabled for other support macOS releases.
|
||||||
@ -519,20 +584,43 @@ XHCI (USB 3.0) on macOS Big Sur and newer.
|
|||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Display resolution can only be changed via macOS System Preferences.
|
Display resolution can only be changed via macOS System Preferences.
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Full Duplex audio works on macOS High Sierra, Mojave and Catalina.
|
\f[B]Full Duplex audio requires VoodooHDA
|
||||||
.RS 2
|
OC (https://github.com/chris1111/VoodooHDA-OC) or pass-through a USB
|
||||||
|
audio-device to the macOS guest VM\f[R].
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[B]macOS Big Sur and Monterey have no audio at all\f[R].
|
NOTE!
|
||||||
.RE
|
Gatekeeper (https://disable-gatekeeper.github.io/) and System Integrity
|
||||||
|
Protection
|
||||||
|
(SIP) (https://developer.apple.com/documentation/security/disabling_and_enabling_system_integrity_protection)
|
||||||
|
need to be disabled to install VoodooHDA OC
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
File sharing between guest and host is available via
|
File sharing between guest and host is available via
|
||||||
virtio-9p (https://wiki.qemu.org/Documentation/9psetup) and SPICE
|
virtio-9p (https://wiki.qemu.org/Documentation/9psetup) and SPICE
|
||||||
webdavd (https://gitlab.gnome.org/GNOME/phodav/-/merge_requests/24).
|
webdavd (https://gitlab.gnome.org/GNOME/phodav/-/merge_requests/24).
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Copy/paste via SPICE agent is \f[B]not available on macOS\f[R].
|
Copy/paste via SPICE agent is \f[B]not available on macOS\f[R].
|
||||||
|
.SS macOS App Store
|
||||||
|
.PP
|
||||||
|
If you see \f[I]\[lq]Your device or computer could not be
|
||||||
|
verified\[rq]\f[R] when you try to login to the App Store, make sure
|
||||||
|
that your wired ethernet device is \f[V]en0\f[R].
|
||||||
|
Use \f[V]ifconfig\f[R] in a terminal to verify this.
|
||||||
|
.PP
|
||||||
|
If the wired ethernet device is not \f[V]en0\f[R], then then go to
|
||||||
|
\f[I]System Preferences\f[R] -> \f[I]Network\f[R], delete all the
|
||||||
|
network devices and apply the changes.
|
||||||
|
Next, open a terminal and run the following:
|
||||||
|
.IP
|
||||||
|
.nf
|
||||||
|
\f[C]
|
||||||
|
sudo rm /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist
|
||||||
|
\f[R]
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Now reboot, and the App Store should work.
|
||||||
.SS Windows 8.1, 10 & 11 Guests
|
.SS Windows 8.1, 10 & 11 Guests
|
||||||
.PP
|
.PP
|
||||||
\f[C]quickget\f[R] can automatically download Windows 8.1, Windows
|
\f[V]quickget\f[R] can automatically download Windows 8.1, Windows
|
||||||
10 (https://www.microsoft.com/en-gb/software-download/windows10ISO) and
|
10 (https://www.microsoft.com/en-gb/software-download/windows10ISO) and
|
||||||
Windows 11 (https://www.microsoft.com/en-gb/software-download/windows11)
|
Windows 11 (https://www.microsoft.com/en-gb/software-download/windows11)
|
||||||
along with the VirtIO drivers for
|
along with the VirtIO drivers for
|
||||||
@ -549,9 +637,18 @@ quickemu --vm windows-11.conf
|
|||||||
Complete the installation as you normally would.
|
Complete the installation as you normally would.
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
All relevant drivers and services should be installed automatically.
|
All relevant drivers and services should be installed automatically.
|
||||||
|
.IP \[bu] 2
|
||||||
|
A local adminstrator user account is automatically created, with these
|
||||||
|
credentials:
|
||||||
|
.RS 2
|
||||||
|
.IP \[bu] 2
|
||||||
|
Username: \f[V]Quickemu\f[R]
|
||||||
|
.IP \[bu] 2
|
||||||
|
Password: \f[V]quickemu\f[R]
|
||||||
|
.RE
|
||||||
.SS Regional versions
|
.SS Regional versions
|
||||||
.PP
|
.PP
|
||||||
By default \f[C]quickget\f[R] will download the \f[I]\[lq]English
|
By default \f[V]quickget\f[R] will download the \f[I]\[lq]English
|
||||||
International\[rq]\f[R] release, but you can optionally specify one of
|
International\[rq]\f[R] release, but you can optionally specify one of
|
||||||
the supported languages: For example:
|
the supported languages: For example:
|
||||||
.IP
|
.IP
|
||||||
@ -570,74 +667,89 @@ disk_img=\[dq]windows-11/disk.qcow2\[dq]
|
|||||||
iso=\[dq]windows-11/Win11_EnglishInternational_x64.iso\[dq]
|
iso=\[dq]windows-11/Win11_EnglishInternational_x64.iso\[dq]
|
||||||
fixed_iso=\[dq]windows-11/virtio-win.iso\[dq]
|
fixed_iso=\[dq]windows-11/virtio-win.iso\[dq]
|
||||||
tpm=\[dq]on\[dq]
|
tpm=\[dq]on\[dq]
|
||||||
|
secureboot=\[dq]on\[dq]
|
||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]guest_os=\[dq]windows\[dq]\f[R] instructs \f[C]quickemu\f[R] to
|
\f[V]guest_os=\[dq]windows\[dq]\f[R] instructs \f[V]quickemu\f[R] to
|
||||||
optimise for Windows.
|
optimise for Windows.
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]fixed_iso=\f[R] specifies the ISO image that provides VirtIO
|
\f[V]fixed_iso=\f[R] specifies the ISO image that provides VirtIO
|
||||||
drivers.
|
drivers.
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]tpm=\[dq]on\[dq]\f[R] instructs \f[C]quickemu\f[R] to create a
|
\f[V]tpm=\[dq]on\[dq]\f[R] instructs \f[V]quickemu\f[R] to create a
|
||||||
software emulated TPM device using \f[C]swtpm\f[R].
|
software emulated TPM device using \f[V]swtpm\f[R].
|
||||||
.SH All the options
|
.SH All the options
|
||||||
.PP
|
.PP
|
||||||
Here are the usage instructions:
|
Here are the usage instructions:
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
|
|
||||||
Usage
|
Usage
|
||||||
quickemu --vm ubuntu.conf
|
quickemu --vm ubuntu.conf
|
||||||
|
|
||||||
You can also pass optional parameters
|
You can also pass optional parameters
|
||||||
--braille : Enable braille support. Requires SDL.
|
--braille : Enable braille support. Requires SDL.
|
||||||
--delete-disk : Delete the disk image and EFI variables
|
--delete-disk : Delete the disk image and EFI variables
|
||||||
--delete-vm : Delete the entire VM and it\[aq]s configuration
|
--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]
|
--display : Select display backend. \[aq]sdl\[aq] (default), \[aq]gtk\[aq], \[aq]none\[aq], \[aq]spice\[aq] or \[aq]spice-app\[aq]
|
||||||
--fullscreen : Starts VM in full screen mode (Ctl+Alt+f to exit)
|
--fullscreen : Starts VM in full screen mode (Ctl+Alt+f to exit)
|
||||||
--ignore-msrs-always : Configure KVM to always ignore unhandled machine-specific registers
|
--ignore-msrs-always : Configure KVM to always ignore unhandled machine-specific registers
|
||||||
--screen <screen> : Use specified screen to determine the window size.
|
--screen <screen> : Use specified screen to determine the window size.
|
||||||
--shortcut : Create a desktop shortcut
|
--shortcut : Create a desktop shortcut
|
||||||
--snapshot apply <tag> : Apply/restore a snapshot.
|
--snapshot apply <tag> : Apply/restore a snapshot.
|
||||||
--snapshot create <tag> : Create a snapshot.
|
--snapshot create <tag> : Create a snapshot.
|
||||||
--snapshot delete <tag> : Delete a snapshot.
|
--snapshot delete <tag> : Delete a snapshot.
|
||||||
--snapshot info : Show disk/snapshot info.
|
--snapshot info : Show disk/snapshot info.
|
||||||
--status-quo : Do not commit any changes to disk/snapshot.
|
--status-quo : Do not commit any changes to disk/snapshot.
|
||||||
--version : Print version
|
--viewer <viewer> : Choose an alternative viewer. \[at]Options: \[aq]spicy\[aq] (default), \[aq]remote-viewer\[aq], \[aq]none\[aq]
|
||||||
|
--ssh-port <port> : Set ssh-port manually
|
||||||
|
--spice-port <port> : Set spice-port manually
|
||||||
|
--public-dir <path> : expose share directory. \[at]Options: \[aq]\[aq] (default: xdg-user-dir PUBLICSHARE), \[aq]<directory>\[aq], \[aq]none\[aq]
|
||||||
|
--monitor <type> : Set monitor connection type. \[at]Options: \[aq]socket\[aq] (default), \[aq]telnet\[aq], \[aq]none\[aq]
|
||||||
|
--monitor-telnet-host <ip/host> : Set telnet host for monitor. (default: \[aq]localhost\[aq])
|
||||||
|
--monitor-telnet-port <port> : Set telnet port for monitor. (default: \[aq]4440\[aq])
|
||||||
|
--monitor-cmd <cmd> : Send command to monitor if available. (Example: system_powerdown)
|
||||||
|
--serial <type> : Set serial connection type. \[at]Options: \[aq]socket\[aq] (default), \[aq]telnet\[aq], \[aq]none\[aq]
|
||||||
|
--serial-telnet-host <ip/host> : Set telnet host for serial. (default: \[aq]localhost\[aq])
|
||||||
|
--serial-telnet-port <port> : Set telnet port for serial. (default: \[aq]6660\[aq])
|
||||||
|
--keyboard <type> : Set keyboard. \[at]Options: \[aq]usb\[aq] (default), \[aq]ps2\[aq], \[aq]virtio\[aq]
|
||||||
|
--keyboard_layout <layout> : Set keyboard layout.
|
||||||
|
--mouse <type> : Set mouse. \[at]Options: \[aq]tablet\[aq] (default), \[aq]ps2\[aq], \[aq]usb\[aq], \[aq]virtio\[aq]
|
||||||
|
--usb-controller <type> : Set usb-controller. \[at]Options: \[aq]ehci\[aq] (default), \[aq]xhci\[aq], \[aq]none\[aq]
|
||||||
|
--extra_args <arguments> : Pass additional arguments to qemu
|
||||||
|
--version : Print version
|
||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.SS Desktop shortcuts
|
.SS Desktop shortcuts
|
||||||
.PP
|
.PP
|
||||||
Desktop shortcuts can be created for a VM, the shortcuts are saved in
|
Desktop shortcuts can be created for a VM, the shortcuts are saved in
|
||||||
\f[C]\[ti]/.local/share/applications\f[R].
|
\f[V]\[ti]/.local/share/applications\f[R].
|
||||||
Here is an example of how to create a shortcut.
|
Here is an example of how to create a shortcut.
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
quickemu --vm ubuntu-20.04-desktop.conf --shortcut
|
quickemu --vm ubuntu-22.04-desktop.conf --shortcut
|
||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.SS Screen and window size (Linux guests only)
|
.SS Screen and window size (Linux guests only)
|
||||||
.PP
|
.PP
|
||||||
\f[C]qemu\f[R] will always default to the primary monitor to display the
|
\f[V]qemu\f[R] will always default to the primary monitor to display the
|
||||||
VM\[cq]s window.
|
VM\[cq]s window.
|
||||||
.PP
|
.PP
|
||||||
Without the \f[C]--screen\f[R] option, \f[C]quickemu\f[R] will look for
|
Without the \f[V]--screen\f[R] option, \f[V]quickemu\f[R] will look for
|
||||||
the size of the smallest monitor, and use a size that fits on said
|
the size of the smallest monitor, and use a size that fits on said
|
||||||
monitor.
|
monitor.
|
||||||
.PP
|
.PP
|
||||||
The \f[C]--screen\f[R] option forces \f[C]quickemu\f[R] to use the size
|
The \f[V]--screen\f[R] option forces \f[V]quickemu\f[R] to use the size
|
||||||
of the given monitor to compute the size of the window.
|
of the given monitor to compute the size of the window.
|
||||||
\f[B]It won\[cq]t use that monitor to display the VM\[cq]s window if
|
\f[B]It won\[cq]t use that monitor to display the VM\[cq]s window if
|
||||||
it\[cq]s not the primary monitor\f[R].
|
it\[cq]s not the primary monitor\f[R].
|
||||||
This is useful if the primary monitor if not the smallest one, and if
|
This is useful if the primary monitor if not the smallest one, and if
|
||||||
the VM\[cq]s window doesn\[cq]t need to be moved around.
|
the VM\[cq]s window doesn\[cq]t need to be moved around.
|
||||||
.PP
|
.PP
|
||||||
The \f[C]--screen\f[R] option is also useful with the
|
The \f[V]--screen\f[R] option is also useful with the
|
||||||
\f[C]--fullscreen\f[R] option, again because \f[C]qemu\f[R] will always
|
\f[V]--fullscreen\f[R] option, again because \f[V]qemu\f[R] will always
|
||||||
use the primary monitor.
|
use the primary monitor.
|
||||||
In order for the fullscreen mode to work properly, the resolution of the
|
In order for the fullscreen mode to work properly, the resolution of the
|
||||||
VM\[cq]s window must match the resolution of the screen.
|
VM\[cq]s window must match the resolution of the screen.
|
||||||
@ -659,7 +771,7 @@ The command will output something like this:
|
|||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
The first number is what needs to be passed to the \f[C]--screen\f[R]
|
The first number is what needs to be passed to the \f[V]--screen\f[R]
|
||||||
option.
|
option.
|
||||||
.PP
|
.PP
|
||||||
For example:
|
For example:
|
||||||
@ -672,7 +784,7 @@ quickemu --vm vm.conf --screen 0
|
|||||||
.PP
|
.PP
|
||||||
The above uses the 2560x1440 screen to compute the size of the window,
|
The above uses the 2560x1440 screen to compute the size of the window,
|
||||||
which Quickemu sizes to 2048x1152.
|
which Quickemu sizes to 2048x1152.
|
||||||
Without the \f[C]--screen\f[R] option, Quickemu would have used the
|
Without the \f[V]--screen\f[R] option, Quickemu would have used the
|
||||||
1920x1080 monitor which results in a window size of 1664x936.
|
1920x1080 monitor which results in a window size of 1664x936.
|
||||||
.SH References
|
.SH References
|
||||||
.PP
|
.PP
|
||||||
|
@ -1,30 +1,26 @@
|
|||||||
---
|
---
|
||||||
author: Martin Wimpress
|
author: Martin Wimpress
|
||||||
date: 'February 20, 2022'
|
date: September 1, 2022
|
||||||
footer: quickemu
|
footer: quickemu
|
||||||
header: Quickemu User Manual
|
header: Quickemu User Manual
|
||||||
section: 1
|
section: 1
|
||||||
title: QUICKEMU
|
title: QUICKEMU
|
||||||
---
|
---
|
||||||
|
|
||||||
NAME
|
# NAME
|
||||||
====
|
|
||||||
|
|
||||||
quickemu - A quick VM builder and manager
|
quickemu - A quick VM builder and manager
|
||||||
|
|
||||||
SYNOPSIS
|
# SYNOPSIS
|
||||||
========
|
|
||||||
|
|
||||||
**quickemu** \[*OPTION*\]...
|
**quickemu** \[*OPTION*\]...
|
||||||
|
|
||||||
DESCRIPTION
|
# DESCRIPTION
|
||||||
===========
|
|
||||||
|
|
||||||
**quickemu** will create and run highly optimised desktop virtual
|
**quickemu** will create and run highly optimised desktop virtual
|
||||||
machines for Linux, macOS and Windows
|
machines for Linux, macOS and Windows
|
||||||
|
|
||||||
OPTIONS
|
# OPTIONS
|
||||||
=======
|
|
||||||
|
|
||||||
**--vm**
|
**--vm**
|
||||||
: vm configuration file
|
: vm configuration file
|
||||||
@ -70,23 +66,21 @@ You can also pass optional parameters
|
|||||||
**--version**
|
**--version**
|
||||||
: Print version
|
: Print version
|
||||||
|
|
||||||
EXAMPLES
|
# EXAMPLES
|
||||||
========
|
|
||||||
|
|
||||||
**quickemu --vm ubuntu-mate-21.10-.conf**
|
**quickemu --vm ubuntu-mate-22.04.conf**
|
||||||
: Launches the VM specified in the file *ubuntu-mate-21.10-.conf*
|
: Launches the VM specified in the file *ubuntu-mate-22.04.conf*
|
||||||
|
|
||||||
Introduction
|
## Introduction
|
||||||
------------
|
|
||||||
|
|
||||||
Quickly create and run highly optimised desktop virtual machines for
|
Quickly create and run highly optimised desktop virtual machines for
|
||||||
Linux, macOS and Windows; with just two commands. You decide what
|
Linux, macOS and Windows; with just two commands. You decide what
|
||||||
operating system you want to run and Quickemu will figure out the best
|
operating system you want to run and Quickemu will figure out the best
|
||||||
way to do it for you. For example:
|
way to do it for you. For example:
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
quickget ubuntu-mate 21.10
|
quickget ubuntu-mate 22.04
|
||||||
quickemu --vm ubuntu-mate-21.10-.conf
|
quickemu --vm ubuntu-mate-22.04.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
The original objective of the project was to enable quick testing of
|
The original objective of the project was to enable quick testing of
|
||||||
@ -96,8 +90,7 @@ and no elevated permissions are required to run the virtual machines.
|
|||||||
**Quickemu now also includes comprehensive support for macOS and
|
**Quickemu now also includes comprehensive support for macOS and
|
||||||
Windows**.
|
Windows**.
|
||||||
|
|
||||||
Features
|
## Features
|
||||||
--------
|
|
||||||
|
|
||||||
- **macOS** Monterey, Big Sur, Catalina, Mojave & High Sierra
|
- **macOS** Monterey, Big Sur, Catalina, Mojave & High Sierra
|
||||||
- **Windows** 8.1, 10 and 11 including TPM 2.0
|
- **Windows** 8.1, 10 and 11 including TPM 2.0
|
||||||
@ -135,8 +128,7 @@ Quickemu.
|
|||||||
[](https://www.youtube.com/watch?v=AOTYWEgw0hI)
|
QEMU](https://img.youtube.com/vi/AOTYWEgw0hI/0.jpg)](https://www.youtube.com/watch?v=AOTYWEgw0hI)
|
||||||
|
|
||||||
Requirements
|
## Requirements
|
||||||
------------
|
|
||||||
|
|
||||||
- [QEMU](https://www.qemu.org/) (*6.0.0 or newer*) **with GTK, SDL,
|
- [QEMU](https://www.qemu.org/) (*6.0.0 or newer*) **with GTK, SDL,
|
||||||
SPICE & VirtFS support**
|
SPICE & VirtFS support**
|
||||||
@ -161,11 +153,37 @@ Requirements
|
|||||||
- [zsync](http://zsync.moria.org.uk/)
|
- [zsync](http://zsync.moria.org.uk/)
|
||||||
- [unzip](http://www.info-zip.org/UnZip.html)
|
- [unzip](http://www.info-zip.org/UnZip.html)
|
||||||
|
|
||||||
Usage
|
### Installing Requirements
|
||||||
=====
|
|
||||||
|
|
||||||
Graphical User Interfaces
|
For Ubuntu, Arch and nixos systems the
|
||||||
-------------------------
|
[ppa](https://launchpad.net/~flexiondotorg/+archive/ubuntu/quickemu),
|
||||||
|
[AUR](https://aur.archlinux.org/packages/quickemu) or
|
||||||
|
[nix](https://github.com/NixOS/nixpkgs/tree/master/pkgs/development/quickemu)
|
||||||
|
packaging will take care of the dependencies. For other host
|
||||||
|
distributions or operating systems it will be necessary to install the
|
||||||
|
above requirements or their equivalents.
|
||||||
|
|
||||||
|
These examples may save a little typing
|
||||||
|
|
||||||
|
Debian:
|
||||||
|
|
||||||
|
sudo apt install qemu bash coreutils ovmf grep jq lsb procps python3 genisoimage usbutils util-linux sed spice-client-gtk swtpm wget xdg-user-dirs zsync unzip
|
||||||
|
|
||||||
|
Fedora:
|
||||||
|
|
||||||
|
sudo dnf install qemu bash coreutils edk2-tools grep jq lsb procps python3 genisoimage usbutils util-linux sed spice-gtk-tools swtpm wget xdg-user-dirs xrandr unzip
|
||||||
|
|
||||||
|
MacOS:
|
||||||
|
|
||||||
|
This is a work in progress (see [issue
|
||||||
|
248](https://github.com/quickemu-project/quickemu/issues/248) for other
|
||||||
|
steps and changes that may enable running on MacOS)
|
||||||
|
|
||||||
|
brew install qemu bash coreutils grep jq python@3.10 cdrtools gnu-sed spice-gtk wget zsync
|
||||||
|
|
||||||
|
# Usage
|
||||||
|
|
||||||
|
## Graphical User Interfaces
|
||||||
|
|
||||||
While `quickemu` and `quickget` are designed for the terminal, a
|
While `quickemu` and `quickget` are designed for the terminal, a
|
||||||
graphical user interface is also available:
|
graphical user interface is also available:
|
||||||
@ -180,21 +198,20 @@ Many thanks to [Luke Wesley-Holley](https://github.com/Lukewh) and
|
|||||||
|
|
||||||
### Quickgui for Ubuntu
|
### Quickgui for Ubuntu
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
sudo add-apt-repository ppa:yannick-mauray/quickgui
|
sudo add-apt-repository ppa:yannick-mauray/quickgui
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install quickgui
|
sudo apt install quickgui
|
||||||
```
|
```
|
||||||
|
|
||||||
Ubuntu Guest
|
## Ubuntu Guest
|
||||||
------------
|
|
||||||
|
|
||||||
`quickget` will automatically download an Ubuntu release and create the
|
`quickget` will automatically download an Ubuntu release and create the
|
||||||
virtual machine configuration.
|
virtual machine configuration.
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
quickget ubuntu 20.04
|
quickget ubuntu 22.04
|
||||||
quickemu --vm ubuntu-20.04.conf
|
quickemu --vm ubuntu-22.04.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
- Complete the installation as normal.
|
- Complete the installation as normal.
|
||||||
@ -211,7 +228,7 @@ quickemu --vm ubuntu-20.04.conf
|
|||||||
`quickget` can also download/refresh devel images via `zsync` for Ubuntu
|
`quickget` can also download/refresh devel images via `zsync` for Ubuntu
|
||||||
developers and testers.
|
developers and testers.
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
quickget ubuntu devel
|
quickget ubuntu devel
|
||||||
quickemu --vm ubuntu-devel.conf
|
quickemu --vm ubuntu-devel.conf
|
||||||
```
|
```
|
||||||
@ -234,8 +251,7 @@ with your preferred flavour.
|
|||||||
- `ubuntu` (Ubuntu)
|
- `ubuntu` (Ubuntu)
|
||||||
- `xubuntu` (Xubuntu)
|
- `xubuntu` (Xubuntu)
|
||||||
|
|
||||||
Other Operating Systems
|
## Other Operating Systems
|
||||||
-----------------------
|
|
||||||
|
|
||||||
`quickget` also supports:
|
`quickget` also supports:
|
||||||
|
|
||||||
@ -244,11 +260,15 @@ Other Operating Systems
|
|||||||
- `android` (Android x86)
|
- `android` (Android x86)
|
||||||
- `archlinux` (Arch Linux)
|
- `archlinux` (Arch Linux)
|
||||||
- `arcolinux` (Arco Linux)
|
- `arcolinux` (Arco Linux)
|
||||||
|
- `batocera` (Batocera)
|
||||||
- `cachyos` (CachyOS)
|
- `cachyos` (CachyOS)
|
||||||
|
- `centos-stream` (CentOS Stream)
|
||||||
- `debian` (Debian)
|
- `debian` (Debian)
|
||||||
|
- `deepin` (Deepin)
|
||||||
- `devuan` (Devuan)
|
- `devuan` (Devuan)
|
||||||
- `dragonflybsd` (DragonFlyBSD)
|
- `dragonflybsd` (DragonFlyBSD)
|
||||||
- `elementary` (elementary OS)
|
- `elementary` (elementary OS)
|
||||||
|
- `endeavouros` (EndeavourOS)
|
||||||
- `fedora` (Fedora)
|
- `fedora` (Fedora)
|
||||||
- `freebsd` (FreeBSD)
|
- `freebsd` (FreeBSD)
|
||||||
- `freedos` (FreeDOS)
|
- `freedos` (FreeDOS)
|
||||||
@ -260,6 +280,7 @@ Other Operating Systems
|
|||||||
- `kdeneon` (KDE Neon)
|
- `kdeneon` (KDE Neon)
|
||||||
- `kolibrios` (KolibriOS)
|
- `kolibrios` (KolibriOS)
|
||||||
- `linuxmint` (Linux Mint)
|
- `linuxmint` (Linux Mint)
|
||||||
|
- `lmde` (Linux Mint Debian Edition)
|
||||||
- `manjaro` (Manjaro)
|
- `manjaro` (Manjaro)
|
||||||
- `mxlinux` (MX Linux)
|
- `mxlinux` (MX Linux)
|
||||||
- `netboot` (netboot.xyz)
|
- `netboot` (netboot.xyz)
|
||||||
@ -269,6 +290,7 @@ Other Operating Systems
|
|||||||
- `opensuse` (openSUSE)
|
- `opensuse` (openSUSE)
|
||||||
- `oraclelinux` (Oracle Linux)
|
- `oraclelinux` (Oracle Linux)
|
||||||
- `popos` (Pop!\_OS)
|
- `popos` (Pop!\_OS)
|
||||||
|
- `reactos` (ReactOS)
|
||||||
- `regolith` (Regolith Linux)
|
- `regolith` (Regolith Linux)
|
||||||
- `rockylinux` (Rocky Linux)
|
- `rockylinux` (Rocky Linux)
|
||||||
- `slackware` (Slackware)
|
- `slackware` (Slackware)
|
||||||
@ -283,7 +305,7 @@ configuration.
|
|||||||
- Download a .iso image of a Linux distribution
|
- Download a .iso image of a Linux distribution
|
||||||
- Create a VM configuration file; for example `debian-bullseye.conf`
|
- Create a VM configuration file; for example `debian-bullseye.conf`
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
guest_os="linux"
|
guest_os="linux"
|
||||||
disk_img="debian-bullseye/disk.qcow2"
|
disk_img="debian-bullseye/disk.qcow2"
|
||||||
iso="debian-bullseye/firmware-11.0.0-amd64-DVD-1.iso"
|
iso="debian-bullseye/firmware-11.0.0-amd64-DVD-1.iso"
|
||||||
@ -291,7 +313,7 @@ iso="debian-bullseye/firmware-11.0.0-amd64-DVD-1.iso"
|
|||||||
|
|
||||||
- Use `quickemu` to start the virtual machine:
|
- Use `quickemu` to start the virtual machine:
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
quickemu --vm debian-bullseye.conf
|
quickemu --vm debian-bullseye.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -302,13 +324,12 @@ quickemu --vm debian-bullseye.conf
|
|||||||
- Install the SPICE WebDAV agent (`spice-webdavd`) to enable file
|
- Install the SPICE WebDAV agent (`spice-webdavd`) to enable file
|
||||||
sharing.
|
sharing.
|
||||||
|
|
||||||
macOS Guest
|
## macOS Guest
|
||||||
-----------
|
|
||||||
|
|
||||||
`quickget` automatically downloads a macOS recovery image and creates a
|
`quickget` automatically downloads a macOS recovery image and creates a
|
||||||
virtual machine configuration.
|
virtual machine configuration.
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
quickget macos catalina
|
quickget macos catalina
|
||||||
quickemu --vm macos-catalina.conf
|
quickemu --vm macos-catalina.conf
|
||||||
```
|
```
|
||||||
@ -338,7 +359,7 @@ supported.
|
|||||||
|
|
||||||
The default macOS configuration looks like this:
|
The default macOS configuration looks like this:
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
guest_os="macos"
|
guest_os="macos"
|
||||||
img="macos-catalina/RecoveryImage.img"
|
img="macos-catalina/RecoveryImage.img"
|
||||||
disk_img="macos-catalina/disk.qcow2"
|
disk_img="macos-catalina/disk.qcow2"
|
||||||
@ -382,15 +403,35 @@ There are some considerations when running macOS via Quickemu.
|
|||||||
- UHCI (USB 2.0) on macOS Catalina and earlier.
|
- UHCI (USB 2.0) on macOS Catalina and earlier.
|
||||||
- XHCI (USB 3.0) on macOS Big Sur and newer.
|
- XHCI (USB 3.0) on macOS Big Sur and newer.
|
||||||
- Display resolution can only be changed via macOS System Preferences.
|
- Display resolution can only be changed via macOS System Preferences.
|
||||||
- Full Duplex audio works on macOS High Sierra, Mojave and Catalina.
|
- **Full Duplex audio requires [VoodooHDA
|
||||||
- **macOS Big Sur and Monterey have no audio at all**.
|
OC](https://github.com/chris1111/VoodooHDA-OC) or pass-through a USB
|
||||||
|
audio-device to the macOS guest VM**.
|
||||||
|
- NOTE! [Gatekeeper](https://disable-gatekeeper.github.io/) and
|
||||||
|
[System Integrity Protection
|
||||||
|
(SIP)](https://developer.apple.com/documentation/security/disabling_and_enabling_system_integrity_protection)
|
||||||
|
need to be disabled to install VoodooHDA OC
|
||||||
- File sharing between guest and host is available via
|
- File sharing between guest and host is available via
|
||||||
[virtio-9p](https://wiki.qemu.org/Documentation/9psetup) and [SPICE
|
[virtio-9p](https://wiki.qemu.org/Documentation/9psetup) and [SPICE
|
||||||
webdavd](https://gitlab.gnome.org/GNOME/phodav/-/merge_requests/24).
|
webdavd](https://gitlab.gnome.org/GNOME/phodav/-/merge_requests/24).
|
||||||
- Copy/paste via SPICE agent is **not available on macOS**.
|
- Copy/paste via SPICE agent is **not available on macOS**.
|
||||||
|
|
||||||
Windows 8.1, 10 & 11 Guests
|
### macOS App Store
|
||||||
---------------------------
|
|
||||||
|
If you see *"Your device or computer could not be verified"* when you
|
||||||
|
try to login to the App Store, make sure that your wired ethernet device
|
||||||
|
is `en0`. Use `ifconfig` in a terminal to verify this.
|
||||||
|
|
||||||
|
If the wired ethernet device is not `en0`, then then go to *System
|
||||||
|
Preferences* -\> *Network*, delete all the network devices and apply the
|
||||||
|
changes. Next, open a terminal and run the following:
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
sudo rm /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist
|
||||||
|
```
|
||||||
|
|
||||||
|
Now reboot, and the App Store should work.
|
||||||
|
|
||||||
|
## Windows 8.1, 10 & 11 Guests
|
||||||
|
|
||||||
`quickget` can automatically download Windows 8.1, [Windows
|
`quickget` can automatically download Windows 8.1, [Windows
|
||||||
10](https://www.microsoft.com/en-gb/software-download/windows10ISO) and
|
10](https://www.microsoft.com/en-gb/software-download/windows10ISO) and
|
||||||
@ -400,13 +441,17 @@ with the [VirtIO drivers for
|
|||||||
Windows](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/)
|
Windows](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/)
|
||||||
and creates a virtual machine configuration.
|
and creates a virtual machine configuration.
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
quickget windows 11
|
quickget windows 11
|
||||||
quickemu --vm windows-11.conf
|
quickemu --vm windows-11.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
- Complete the installation as you normally would.
|
- Complete the installation as you normally would.
|
||||||
- All relevant drivers and services should be installed automatically.
|
- All relevant drivers and services should be installed automatically.
|
||||||
|
- A local adminstrator user account is automatically created, with
|
||||||
|
these credentials:
|
||||||
|
- Username: `Quickemu`
|
||||||
|
- Password: `quickemu`
|
||||||
|
|
||||||
### Regional versions
|
### Regional versions
|
||||||
|
|
||||||
@ -414,18 +459,19 @@ By default `quickget` will download the *"English International"*
|
|||||||
release, but you can optionally specify one of the supported languages:
|
release, but you can optionally specify one of the supported languages:
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
quickget windows 11 "Chinese (Traditional)"
|
quickget windows 11 "Chinese (Traditional)"
|
||||||
```
|
```
|
||||||
|
|
||||||
The default Windows 11 configuration looks like this:
|
The default Windows 11 configuration looks like this:
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
guest_os="windows"
|
guest_os="windows"
|
||||||
disk_img="windows-11/disk.qcow2"
|
disk_img="windows-11/disk.qcow2"
|
||||||
iso="windows-11/Win11_EnglishInternational_x64.iso"
|
iso="windows-11/Win11_EnglishInternational_x64.iso"
|
||||||
fixed_iso="windows-11/virtio-win.iso"
|
fixed_iso="windows-11/virtio-win.iso"
|
||||||
tpm="on"
|
tpm="on"
|
||||||
|
secureboot="on"
|
||||||
```
|
```
|
||||||
|
|
||||||
- `guest_os="windows"` instructs `quickemu` to optimise for Windows.
|
- `guest_os="windows"` instructs `quickemu` to optimise for Windows.
|
||||||
@ -433,47 +479,57 @@ tpm="on"
|
|||||||
- `tpm="on"` instructs `quickemu` to create a software emulated TPM
|
- `tpm="on"` instructs `quickemu` to create a software emulated TPM
|
||||||
device using `swtpm`.
|
device using `swtpm`.
|
||||||
|
|
||||||
All the options
|
# All the options
|
||||||
===============
|
|
||||||
|
|
||||||
Here are the usage instructions:
|
Here are the usage instructions:
|
||||||
|
|
||||||
``` {.bash}
|
|
||||||
|
|
||||||
Usage
|
Usage
|
||||||
quickemu --vm ubuntu.conf
|
quickemu --vm ubuntu.conf
|
||||||
|
|
||||||
You can also pass optional parameters
|
You can also pass optional parameters
|
||||||
--braille : Enable braille support. Requires SDL.
|
--braille : Enable braille support. Requires SDL.
|
||||||
--delete-disk : Delete the disk image and EFI variables
|
--delete-disk : Delete the disk image and EFI variables
|
||||||
--delete-vm : Delete the entire VM and it's configuration
|
--delete-vm : Delete the entire VM and it's configuration
|
||||||
--display : Select display backend. 'sdl' (default), 'gtk', 'none', or 'spice'
|
--display : Select display backend. 'sdl' (default), 'gtk', 'none', 'spice' or 'spice-app'
|
||||||
--fullscreen : Starts VM in full screen mode (Ctl+Alt+f to exit)
|
--fullscreen : Starts VM in full screen mode (Ctl+Alt+f to exit)
|
||||||
--ignore-msrs-always : Configure KVM to always ignore unhandled machine-specific registers
|
--ignore-msrs-always : Configure KVM to always ignore unhandled machine-specific registers
|
||||||
--screen <screen> : Use specified screen to determine the window size.
|
--screen <screen> : Use specified screen to determine the window size.
|
||||||
--shortcut : Create a desktop shortcut
|
--shortcut : Create a desktop shortcut
|
||||||
--snapshot apply <tag> : Apply/restore a snapshot.
|
--snapshot apply <tag> : Apply/restore a snapshot.
|
||||||
--snapshot create <tag> : Create a snapshot.
|
--snapshot create <tag> : Create a snapshot.
|
||||||
--snapshot delete <tag> : Delete a snapshot.
|
--snapshot delete <tag> : Delete a snapshot.
|
||||||
--snapshot info : Show disk/snapshot info.
|
--snapshot info : Show disk/snapshot info.
|
||||||
--status-quo : Do not commit any changes to disk/snapshot.
|
--status-quo : Do not commit any changes to disk/snapshot.
|
||||||
--version : Print version
|
--viewer <viewer> : Choose an alternative viewer. @Options: 'spicy' (default), 'remote-viewer', 'none'
|
||||||
|
--ssh-port <port> : Set ssh-port manually
|
||||||
|
--spice-port <port> : Set spice-port manually
|
||||||
|
--public-dir <path> : expose share directory. @Options: '' (default: xdg-user-dir PUBLICSHARE), '<directory>', 'none'
|
||||||
|
--monitor <type> : Set monitor connection type. @Options: 'socket' (default), 'telnet', 'none'
|
||||||
|
--monitor-telnet-host <ip/host> : Set telnet host for monitor. (default: 'localhost')
|
||||||
|
--monitor-telnet-port <port> : Set telnet port for monitor. (default: '4440')
|
||||||
|
--monitor-cmd <cmd> : Send command to monitor if available. (Example: system_powerdown)
|
||||||
|
--serial <type> : Set serial connection type. @Options: 'socket' (default), 'telnet', 'none'
|
||||||
|
--serial-telnet-host <ip/host> : Set telnet host for serial. (default: 'localhost')
|
||||||
|
--serial-telnet-port <port> : Set telnet port for serial. (default: '6660')
|
||||||
|
--keyboard <type> : Set keyboard. @Options: 'usb' (default), 'ps2', 'virtio'
|
||||||
|
--keyboard_layout <layout> : Set keyboard layout.
|
||||||
|
--mouse <type> : Set mouse. @Options: 'tablet' (default), 'ps2', 'usb', 'virtio'
|
||||||
|
--usb-controller <type> : Set usb-controller. @Options: 'ehci' (default), 'xhci', 'none'
|
||||||
|
--extra_args <arguments> : Pass additional arguments to qemu
|
||||||
|
--version : Print version
|
||||||
|
|
||||||
```
|
## Desktop shortcuts
|
||||||
|
|
||||||
Desktop shortcuts
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
Desktop shortcuts can be created for a VM, the shortcuts are saved in
|
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
|
`~/.local/share/applications`. Here is an example of how to create a
|
||||||
shortcut.
|
shortcut.
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
quickemu --vm ubuntu-20.04-desktop.conf --shortcut
|
quickemu --vm ubuntu-22.04-desktop.conf --shortcut
|
||||||
```
|
```
|
||||||
|
|
||||||
Screen and window size (Linux guests only)
|
## Screen and window size (Linux guests only)
|
||||||
------------------------------------------
|
|
||||||
|
|
||||||
`qemu` will always default to the primary monitor to display the VM's
|
`qemu` will always default to the primary monitor to display the VM's
|
||||||
window.
|
window.
|
||||||
@ -494,13 +550,13 @@ must match the resolution of the screen.
|
|||||||
|
|
||||||
To know which screen to use, type:
|
To know which screen to use, type:
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
xrandr --listmonitors | grep -v Monitors
|
xrandr --listmonitors | grep -v Monitors
|
||||||
```
|
```
|
||||||
|
|
||||||
The command will output something like this:
|
The command will output something like this:
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
0: +*HDMI-0 2560/597x1440/336+1920+0 HDMI-0
|
0: +*HDMI-0 2560/597x1440/336+1920+0 HDMI-0
|
||||||
1: +DVI-D-0 1920/527x1080/296+0+0 DVI-D-0
|
1: +DVI-D-0 1920/527x1080/296+0+0 DVI-D-0
|
||||||
```
|
```
|
||||||
@ -509,7 +565,7 @@ The first number is what needs to be passed to the `--screen` option.
|
|||||||
|
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
quickemu --vm vm.conf --screen 0
|
quickemu --vm vm.conf --screen 0
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -518,8 +574,7 @@ which Quickemu sizes to 2048x1152. Without the `--screen` option,
|
|||||||
Quickemu would have used the 1920x1080 monitor which results in a window
|
Quickemu would have used the 1920x1080 monitor which results in a window
|
||||||
size of 1664x936.
|
size of 1664x936.
|
||||||
|
|
||||||
References
|
# References
|
||||||
==========
|
|
||||||
|
|
||||||
Useful reference that assisted the development of Quickemu.
|
Useful reference that assisted the development of Quickemu.
|
||||||
|
|
||||||
@ -556,20 +611,17 @@ Useful reference that assisted the development of Quickemu.
|
|||||||
- <https://superuser.com/questions/628169/how-to-share-a-directory-with-the-host-without-networking-in-qemu>
|
- <https://superuser.com/questions/628169/how-to-share-a-directory-with-the-host-without-networking-in-qemu>
|
||||||
- <https://virtio-fs.gitlab.io/>
|
- <https://virtio-fs.gitlab.io/>
|
||||||
|
|
||||||
AUTHORS
|
# AUTHORS
|
||||||
=======
|
|
||||||
|
|
||||||
Written by Martin Wimpress.
|
Written by Martin Wimpress.
|
||||||
|
|
||||||
BUGS
|
# BUGS
|
||||||
====
|
|
||||||
|
|
||||||
Submit bug reports online at:
|
Submit bug reports online at:
|
||||||
<https://github.com/quickemu-project/quickemu/issues>
|
<https://github.com/quickemu-project/quickemu/issues>
|
||||||
|
|
||||||
SEE ALSO
|
# SEE ALSO
|
||||||
========
|
|
||||||
|
|
||||||
Full sources at: <https://github.com/quickemu-project/quickemu>
|
Full sources at: <https://github.com/quickemu-project/quickemu>
|
||||||
|
|
||||||
quickemu\_conf(1), quickget(1), quickgui(1)
|
quickemu_conf(1), quickget(1), quickgui(1)
|
||||||
|
@ -1,6 +1,20 @@
|
|||||||
.\" Automatically generated by Pandoc 2.9.2.1
|
.\" Automatically generated by Pandoc 2.19.2
|
||||||
.\"
|
.\"
|
||||||
.TH "QUICKEMU_CONF" "1" "February 20, 2022" "quickemu_conf" "Quickemu Configuration Manual"
|
.\" Define V font for inline verbatim, using C font in formats
|
||||||
|
.\" that render this, and otherwise B font.
|
||||||
|
.ie "\f[CB]x\f[]"x" \{\
|
||||||
|
. ftr V B
|
||||||
|
. ftr VI BI
|
||||||
|
. ftr VB B
|
||||||
|
. ftr VBI BI
|
||||||
|
.\}
|
||||||
|
.el \{\
|
||||||
|
. ftr V CR
|
||||||
|
. ftr VI CI
|
||||||
|
. ftr VB CB
|
||||||
|
. ftr VBI CBI
|
||||||
|
.\}
|
||||||
|
.TH "QUICKEMU_CONF" "1" "September 1, 2022" "quickemu_conf" "Quickemu Configuration Manual"
|
||||||
.hy
|
.hy
|
||||||
.SH NAME
|
.SH NAME
|
||||||
.PP
|
.PP
|
||||||
@ -21,7 +35,6 @@ These are the options and defaults for the <vm>.conf file
|
|||||||
\f[C]
|
\f[C]
|
||||||
# Lowercase variables are used in the VM config file only
|
# Lowercase variables are used in the VM config file only
|
||||||
boot=\[dq]efi\[dq]
|
boot=\[dq]efi\[dq]
|
||||||
bridge=\[dq]\[dq]
|
|
||||||
cpu_cores=\[dq]\[dq]
|
cpu_cores=\[dq]\[dq]
|
||||||
disk_img=\[dq]\[dq]
|
disk_img=\[dq]\[dq]
|
||||||
disk_size=\[dq]\[dq]
|
disk_size=\[dq]\[dq]
|
||||||
@ -30,7 +43,9 @@ floppy=\[dq]\[dq]
|
|||||||
guest_os=\[dq]linux\[dq]
|
guest_os=\[dq]linux\[dq]
|
||||||
img=\[dq]\[dq]
|
img=\[dq]\[dq]
|
||||||
iso=\[dq]\[dq]
|
iso=\[dq]\[dq]
|
||||||
|
macaddr=\[dq]\[dq]
|
||||||
macos_release=\[dq]\[dq]
|
macos_release=\[dq]\[dq]
|
||||||
|
network=\[dq]\[dq]
|
||||||
port_forwards=()
|
port_forwards=()
|
||||||
preallocation=\[dq]off\[dq]
|
preallocation=\[dq]off\[dq]
|
||||||
ram=\[dq]\[dq]
|
ram=\[dq]\[dq]
|
||||||
@ -60,10 +75,10 @@ macos_release=\[dq]catalina\[dq]
|
|||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]guest_os=\[dq]macos\[dq]\f[R] instructs Quickemu to optimise for
|
\f[V]guest_os=\[dq]macos\[dq]\f[R] instructs Quickemu to optimise for
|
||||||
macOS.
|
macOS.
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]macos_release=\[dq]catalina\[dq]\f[R] instructs Quickemu to
|
\f[V]macos_release=\[dq]catalina\[dq]\f[R] instructs Quickemu to
|
||||||
optimise for a particular macOS release.
|
optimise for a particular macOS release.
|
||||||
.RS 2
|
.RS 2
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
@ -83,24 +98,25 @@ disk_img=\[dq]windows-11/disk.qcow2\[dq]
|
|||||||
iso=\[dq]windows-11/Win11_EnglishInternational_x64.iso\[dq]
|
iso=\[dq]windows-11/Win11_EnglishInternational_x64.iso\[dq]
|
||||||
fixed_iso=\[dq]windows-11/virtio-win.iso\[dq]
|
fixed_iso=\[dq]windows-11/virtio-win.iso\[dq]
|
||||||
tpm=\[dq]on\[dq]
|
tpm=\[dq]on\[dq]
|
||||||
|
secureboot=\[dq]on\[dq]
|
||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]guest_os=\[dq]windows\[dq]\f[R] instructs \f[C]quickemu\f[R] to
|
\f[V]guest_os=\[dq]windows\[dq]\f[R] instructs \f[V]quickemu\f[R] to
|
||||||
optimise for Windows.
|
optimise for Windows.
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]fixed_iso=\f[R] specifies the ISO image that provides VirtIO
|
\f[V]fixed_iso=\f[R] specifies the ISO image that provides VirtIO
|
||||||
drivers.
|
drivers.
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]tpm=\[dq]on\[dq]\f[R] instructs \f[C]quickemu\f[R] to create a
|
\f[V]tpm=\[dq]on\[dq]\f[R] instructs \f[V]quickemu\f[R] to create a
|
||||||
software emulated TPM device using \f[C]swtpm\f[R].
|
software emulated TPM device using \f[V]swtpm\f[R].
|
||||||
.SH BIOS and EFI
|
.SH BIOS and EFI
|
||||||
.PP
|
.PP
|
||||||
Since Quickemu 2.1.0 \f[C]efi\f[R] is the default boot option.
|
Since Quickemu 2.1.0 \f[V]efi\f[R] is the default boot option.
|
||||||
If you want to override this behaviour then add the following line to
|
If you want to override this behaviour then add the following line to
|
||||||
you VM configuration to enable legacy BIOS.
|
you VM configuration to enable legacy BIOS.
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]boot=\[dq]legacy\[dq]\f[R] - Enable Legacy BIOS boot
|
\f[V]boot=\[dq]legacy\[dq]\f[R] - Enable Legacy BIOS boot
|
||||||
.SH Tuning CPU cores, RAM & disks
|
.SH Tuning CPU cores, RAM & disks
|
||||||
.PP
|
.PP
|
||||||
By default, Quickemu will calculate the number of CPUs cores and RAM to
|
By default, Quickemu will calculate the number of CPUs cores and RAM to
|
||||||
@ -110,18 +126,18 @@ your liking.
|
|||||||
.PP
|
.PP
|
||||||
Add additional lines to your virtual machine configuration:
|
Add additional lines to your virtual machine configuration:
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]cpu_cores=\[dq]4\[dq]\f[R] - Specify the number of CPU cores
|
\f[V]cpu_cores=\[dq]4\[dq]\f[R] - Specify the number of CPU cores
|
||||||
allocated to the VM
|
allocated to the VM
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]ram=\[dq]4G\[dq]\f[R] - Specify the amount of RAM to allocate to
|
\f[V]ram=\[dq]4G\[dq]\f[R] - Specify the amount of RAM to allocate to
|
||||||
the VM
|
the VM
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]disk_size=\[dq]16G\[dq]\f[R] - Specify the size of the virtual disk
|
\f[V]disk_size=\[dq]16G\[dq]\f[R] - Specify the size of the virtual disk
|
||||||
allocated to the VM
|
allocated to the VM
|
||||||
.SS Disk preallocation
|
.SS Disk preallocation
|
||||||
.PP
|
.PP
|
||||||
Preallocation mode (allowed values: \f[C]off\f[R] (default),
|
Preallocation mode (allowed values: \f[V]off\f[R] (default),
|
||||||
\f[C]metadata\f[R], \f[C]falloc\f[R], \f[C]full\f[R]).
|
\f[V]metadata\f[R], \f[V]falloc\f[R], \f[V]full\f[R]).
|
||||||
An image with preallocated metadata is initially larger but can improve
|
An image with preallocated metadata is initially larger but can improve
|
||||||
performance when the image needs to grow.
|
performance when the image needs to grow.
|
||||||
.PP
|
.PP
|
||||||
@ -129,27 +145,27 @@ Specify what disk preallocation should be used, if any, when creating
|
|||||||
the system disk image by adding a line like this to your VM
|
the system disk image by adding a line like this to your VM
|
||||||
configuration.
|
configuration.
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]preallocation=\[dq]metadata\[dq]\f[R]
|
\f[V]preallocation=\[dq]metadata\[dq]\f[R]
|
||||||
.SS CD-ROM disks
|
.SS CD-ROM disks
|
||||||
.PP
|
.PP
|
||||||
If you want to expose an ISO image from the host to guest add the
|
If you want to expose an ISO image from the host to guest add the
|
||||||
following line to the VM configuration:
|
following line to the VM configuration:
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]fixed_iso=\[dq]/path/to/image.iso\[dq]\f[R]
|
\f[V]fixed_iso=\[dq]/path/to/image.iso\[dq]\f[R]
|
||||||
.SS Floppy disks
|
.SS Floppy disks
|
||||||
.PP
|
.PP
|
||||||
If you\[cq]re like Alan Pope (https://popey.com) you\[cq]ll probably
|
If you\[cq]re like Alan Pope (https://popey.com) you\[cq]ll probably
|
||||||
want to mount a floppy disk image in the guest.
|
want to mount a floppy disk image in the guest.
|
||||||
To do so add the following line to the VM configuration:
|
To do so add the following line to the VM configuration:
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]floppy=\[dq]/path/to/floppy.img\[dq]\f[R]
|
\f[V]floppy=\[dq]/path/to/floppy.img\[dq]\f[R]
|
||||||
.SH File Sharing
|
.SH File Sharing
|
||||||
.PP
|
.PP
|
||||||
All File Sharing options will only expose \f[C]\[ti]/Public\f[R] (or
|
All File Sharing options will only expose \f[V]\[ti]/Public\f[R] (or
|
||||||
localised variations) for the current user to the guest VMs.
|
localised variations) for the current user to the guest VMs.
|
||||||
.SS Samba \[u1F427] \[u1F34F] \[u1FA9F]
|
.SS Samba \[u1F427] \[u1F34F] \[u1FA9F]
|
||||||
.PP
|
.PP
|
||||||
If \f[C]smbd\f[R] is available on the host, Quickemu will automatically
|
If \f[V]smbd\f[R] is available on the host, Quickemu will automatically
|
||||||
enable the built-in QEMU support for exposing a Samba share from the
|
enable the built-in QEMU support for exposing a Samba share from the
|
||||||
host to the guest.
|
host to the guest.
|
||||||
.PP
|
.PP
|
||||||
@ -160,6 +176,21 @@ You can install the minimal Samba components on Ubuntu using:
|
|||||||
sudo apt install --no-install-recommends samba
|
sudo apt install --no-install-recommends samba
|
||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
|
.PP
|
||||||
|
If everything is set up correctly, the \f[V]smbd\f[R] address will be
|
||||||
|
printed when the virtual machine is started.
|
||||||
|
For example:
|
||||||
|
.IP
|
||||||
|
.nf
|
||||||
|
\f[C]
|
||||||
|
- smbd: On guest: smb://10.0.2.4/qemu
|
||||||
|
\f[R]
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
If using a Windows guest, right-click on \[lq]This PC\[rq], click
|
||||||
|
\[lq]Add a network location\[rq], and paste this address, removing
|
||||||
|
\f[V]smb:\f[R] and replacing forward slashes with backslashes (in this
|
||||||
|
example \f[V]\[rs]\[rs]10.0.2.4\[rs]qemu\f[R]).
|
||||||
.SS SPICE WebDAV \[u1F427] \[u1FA9F]
|
.SS SPICE WebDAV \[u1F427] \[u1FA9F]
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
TBD
|
TBD
|
||||||
@ -171,19 +202,46 @@ TBD
|
|||||||
Add an additional line to your virtual machine configuration.
|
Add an additional line to your virtual machine configuration.
|
||||||
For example:
|
For example:
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]port_forwards=(\[dq]8123:8123\[dq] \[dq]8888:80\[dq])\f[R]
|
\f[V]port_forwards=(\[dq]8123:8123\[dq] \[dq]8888:80\[dq])\f[R]
|
||||||
.PP
|
.PP
|
||||||
In the example above:
|
In the example above:
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Port 8123 on the host is forwarded to port 8123 on the guest.
|
Port 8123 on the host is forwarded to port 8123 on the guest.
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Port 8888 on the host is forwarded to port 80 on the guest.
|
Port 8888 on the host is forwarded to port 80 on the guest.
|
||||||
|
.SH Disable networking
|
||||||
|
.PP
|
||||||
|
To completely disable all network interfaces in a guest VM add this
|
||||||
|
additional line to your virtual machine configuration:
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[V]network=\[dq]none\[dq]\f[R]
|
||||||
|
.SH Restricted networking
|
||||||
|
.PP
|
||||||
|
You can isolate the guest from the host (and broader network) using the
|
||||||
|
restrict option, which will restrict networking to just the guest and
|
||||||
|
any virtual devices.
|
||||||
|
.PP
|
||||||
|
This can be used to prevent software running inside the guest from
|
||||||
|
phoning home while still providing a network inside the guest.
|
||||||
|
Add this additional line to your virtual machine configuration:
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[V]network=\[dq]restrict\[dq]\f[R]
|
||||||
.SH Bridged networking
|
.SH Bridged networking
|
||||||
.PP
|
.PP
|
||||||
Connect your virtual machine to a preconfigured network bridge.
|
Connect your virtual machine to a preconfigured network bridge.
|
||||||
Add an additional line to your virtual machine configuration
|
Add an additional line to your virtual machine configuration:
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]bridge=\[dq]br0\[dq]\f[R]
|
\f[V]network=\[dq]br0\[dq]\f[R]
|
||||||
|
.PP
|
||||||
|
If you want to have a persistent MAC address for your bridged network
|
||||||
|
interface in the guest VM you can add \f[V]macaddr\f[R] to the virtual
|
||||||
|
machine configuration.
|
||||||
|
QEMU requires that the MAC address is in the range:
|
||||||
|
\f[B]52:54:00:AB:00:00 - 52:54:00:AB:FF:FF\f[R]
|
||||||
|
.PP
|
||||||
|
So you can generate your own MAC addresses with:
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[V]macaddr=\[dq]52:54:00:AB:51:AE\[dq]\f[R]
|
||||||
.SH USB redirection
|
.SH USB redirection
|
||||||
.PP
|
.PP
|
||||||
Quickemu supports USB redirection via SPICE pass-through and host
|
Quickemu supports USB redirection via SPICE pass-through and host
|
||||||
@ -191,9 +249,9 @@ pass-through.
|
|||||||
.SS SPICE redirection (recommended)
|
.SS SPICE redirection (recommended)
|
||||||
.PP
|
.PP
|
||||||
Using SPICE for USB pass-through is easiest as it doesn\[cq]t require
|
Using SPICE for USB pass-through is easiest as it doesn\[cq]t require
|
||||||
any elevated permission, start Quickemu with \f[C]--display spice\f[R]
|
any elevated permission, start Quickemu with \f[V]--display spice\f[R]
|
||||||
and then select \f[C]Input\f[R] ->
|
and then select \f[V]Input\f[R] ->
|
||||||
\f[C]Select USB Device for redirection\f[R] from the menu to choose
|
\f[V]Select USB Device for redirection\f[R] from the menu to choose
|
||||||
which device(s) you want to attach to the guest.
|
which device(s) you want to attach to the guest.
|
||||||
.SS Host redirection \f[B]NOT Recommended\f[R]
|
.SS Host redirection \f[B]NOT Recommended\f[R]
|
||||||
.PP
|
.PP
|
||||||
@ -204,7 +262,7 @@ Using SPICE is preferred, see above.
|
|||||||
Add an additional line to your virtual machine configuration.
|
Add an additional line to your virtual machine configuration.
|
||||||
For example:
|
For example:
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]usb_devices=(\[dq]046d:082d\[dq] \[dq]046d:085e\[dq])\f[R]
|
\f[V]usb_devices=(\[dq]046d:082d\[dq] \[dq]046d:085e\[dq])\f[R]
|
||||||
.PP
|
.PP
|
||||||
In the example above:
|
In the example above:
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
@ -214,7 +272,7 @@ to the guest.
|
|||||||
The USB device with vendor_id 046d and product_id 085e will be exposed
|
The USB device with vendor_id 046d and product_id 085e will be exposed
|
||||||
to the guest.
|
to the guest.
|
||||||
.PP
|
.PP
|
||||||
If the USB devices are not writable, \f[C]quickemu\f[R] will display the
|
If the USB devices are not writable, \f[V]quickemu\f[R] will display the
|
||||||
appropriate commands to modify the USB device(s) access permissions,
|
appropriate commands to modify the USB device(s) access permissions,
|
||||||
like this:
|
like this:
|
||||||
.IP
|
.IP
|
||||||
@ -230,8 +288,8 @@ like this:
|
|||||||
.PP
|
.PP
|
||||||
Since Quickemu 2.2.0 a software emulated TPM device can be added to
|
Since Quickemu 2.2.0 a software emulated TPM device can be added to
|
||||||
guest virtual machines.
|
guest virtual machines.
|
||||||
Just add \f[C]tpm=\[dq]on\[dq]\f[R] to your VM configuration.
|
Just add \f[V]tpm=\[dq]on\[dq]\f[R] to your VM configuration.
|
||||||
\f[C]quickget\f[R] will automatically add this line to Windows 11
|
\f[V]quickget\f[R] will automatically add this line to Windows 11
|
||||||
virtual machines.
|
virtual machines.
|
||||||
.SH AUTHORS
|
.SH AUTHORS
|
||||||
.PP
|
.PP
|
||||||
|
@ -1,19 +1,17 @@
|
|||||||
---
|
---
|
||||||
author: Martin Wimpress
|
author: Martin Wimpress
|
||||||
date: 'February 20, 2022'
|
date: September 1, 2022
|
||||||
footer: quickemu\_conf
|
footer: quickemu_conf
|
||||||
header: Quickemu Configuration Manual
|
header: Quickemu Configuration Manual
|
||||||
section: 1
|
section: 1
|
||||||
title: QUICKEMU\_CONF
|
title: QUICKEMU_CONF
|
||||||
---
|
---
|
||||||
|
|
||||||
NAME
|
# NAME
|
||||||
====
|
|
||||||
|
|
||||||
quickemu\_conf - Options and parameters in the quickemu \<vm\>.conf
|
quickemu_conf - Options and parameters in the quickemu \<vm\>.conf
|
||||||
|
|
||||||
DESCRIPTION
|
# DESCRIPTION
|
||||||
===========
|
|
||||||
|
|
||||||
**quickemu** will create and run highly optimised desktop virtual
|
**quickemu** will create and run highly optimised desktop virtual
|
||||||
machines for Linux, macOS and Windows. It uses sensible defaults, but
|
machines for Linux, macOS and Windows. It uses sensible defaults, but
|
||||||
@ -21,15 +19,13 @@ many configuration options can be overridden in the required
|
|||||||
configuration file, which will as a minimum specify the path to the
|
configuration file, which will as a minimum specify the path to the
|
||||||
installation ISO and QEMU disk for the installed VM
|
installation ISO and QEMU disk for the installed VM
|
||||||
|
|
||||||
OPTIONS
|
# OPTIONS
|
||||||
=======
|
|
||||||
|
|
||||||
These are the options and defaults for the \<vm\>.conf file
|
These are the options and defaults for the \<vm\>.conf file
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
# Lowercase variables are used in the VM config file only
|
# Lowercase variables are used in the VM config file only
|
||||||
boot="efi"
|
boot="efi"
|
||||||
bridge=""
|
|
||||||
cpu_cores=""
|
cpu_cores=""
|
||||||
disk_img=""
|
disk_img=""
|
||||||
disk_size=""
|
disk_size=""
|
||||||
@ -38,7 +34,9 @@ floppy=""
|
|||||||
guest_os="linux"
|
guest_os="linux"
|
||||||
img=""
|
img=""
|
||||||
iso=""
|
iso=""
|
||||||
|
macaddr=""
|
||||||
macos_release=""
|
macos_release=""
|
||||||
|
network=""
|
||||||
port_forwards=()
|
port_forwards=()
|
||||||
preallocation="off"
|
preallocation="off"
|
||||||
ram=""
|
ram=""
|
||||||
@ -47,10 +45,9 @@ tpm="off"
|
|||||||
usb_devices=()
|
usb_devices=()
|
||||||
```
|
```
|
||||||
|
|
||||||
EXAMPLES
|
# EXAMPLES
|
||||||
========
|
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
guest_os="linux"
|
guest_os="linux"
|
||||||
disk_img="debian-bullseye/disk.qcow2"
|
disk_img="debian-bullseye/disk.qcow2"
|
||||||
iso="debian-bullseye/firmware-11.0.0-amd64-DVD-1.iso"
|
iso="debian-bullseye/firmware-11.0.0-amd64-DVD-1.iso"
|
||||||
@ -58,7 +55,7 @@ iso="debian-bullseye/firmware-11.0.0-amd64-DVD-1.iso"
|
|||||||
|
|
||||||
The default macOS configuration looks like this:
|
The default macOS configuration looks like this:
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
guest_os="macos"
|
guest_os="macos"
|
||||||
img="macos-catalina/RecoveryImage.img"
|
img="macos-catalina/RecoveryImage.img"
|
||||||
disk_img="macos-catalina/disk.qcow2"
|
disk_img="macos-catalina/disk.qcow2"
|
||||||
@ -75,12 +72,13 @@ macos_release="catalina"
|
|||||||
|
|
||||||
The default Windows 11 configuration looks like this:
|
The default Windows 11 configuration looks like this:
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
guest_os="windows"
|
guest_os="windows"
|
||||||
disk_img="windows-11/disk.qcow2"
|
disk_img="windows-11/disk.qcow2"
|
||||||
iso="windows-11/Win11_EnglishInternational_x64.iso"
|
iso="windows-11/Win11_EnglishInternational_x64.iso"
|
||||||
fixed_iso="windows-11/virtio-win.iso"
|
fixed_iso="windows-11/virtio-win.iso"
|
||||||
tpm="on"
|
tpm="on"
|
||||||
|
secureboot="on"
|
||||||
```
|
```
|
||||||
|
|
||||||
- `guest_os="windows"` instructs `quickemu` to optimise for Windows.
|
- `guest_os="windows"` instructs `quickemu` to optimise for Windows.
|
||||||
@ -88,8 +86,7 @@ tpm="on"
|
|||||||
- `tpm="on"` instructs `quickemu` to create a software emulated TPM
|
- `tpm="on"` instructs `quickemu` to create a software emulated TPM
|
||||||
device using `swtpm`.
|
device using `swtpm`.
|
||||||
|
|
||||||
BIOS and EFI
|
# BIOS and EFI
|
||||||
============
|
|
||||||
|
|
||||||
Since Quickemu 2.1.0 `efi` is the default boot option. If you want to
|
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
|
override this behaviour then add the following line to you VM
|
||||||
@ -97,8 +94,7 @@ configuration to enable legacy BIOS.
|
|||||||
|
|
||||||
- `boot="legacy"` - Enable Legacy BIOS boot
|
- `boot="legacy"` - Enable Legacy BIOS boot
|
||||||
|
|
||||||
Tuning CPU cores, RAM & disks
|
# Tuning CPU cores, RAM & disks
|
||||||
=============================
|
|
||||||
|
|
||||||
By default, Quickemu will calculate the number of CPUs cores and RAM to
|
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
|
allocate to a VM based on the specifications of your host computer. You
|
||||||
@ -113,8 +109,7 @@ Add additional lines to your virtual machine configuration:
|
|||||||
- `disk_size="16G"` - Specify the size of the virtual disk allocated
|
- `disk_size="16G"` - Specify the size of the virtual disk allocated
|
||||||
to the VM
|
to the VM
|
||||||
|
|
||||||
Disk preallocation
|
## Disk preallocation
|
||||||
------------------
|
|
||||||
|
|
||||||
Preallocation mode (allowed values: `off` (default), `metadata`,
|
Preallocation mode (allowed values: `off` (default), `metadata`,
|
||||||
`falloc`, `full`). An image with preallocated metadata is initially
|
`falloc`, `full`). An image with preallocated metadata is initially
|
||||||
@ -126,16 +121,14 @@ configuration.
|
|||||||
|
|
||||||
- `preallocation="metadata"`
|
- `preallocation="metadata"`
|
||||||
|
|
||||||
CD-ROM disks
|
## CD-ROM disks
|
||||||
------------
|
|
||||||
|
|
||||||
If you want to expose an ISO image from the host to guest add the
|
If you want to expose an ISO image from the host to guest add the
|
||||||
following line to the VM configuration:
|
following line to the VM configuration:
|
||||||
|
|
||||||
- `fixed_iso="/path/to/image.iso"`
|
- `fixed_iso="/path/to/image.iso"`
|
||||||
|
|
||||||
Floppy disks
|
## Floppy disks
|
||||||
------------
|
|
||||||
|
|
||||||
If you're like [Alan Pope](https://popey.com) you'll probably want to
|
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
|
mount a floppy disk image in the guest. To do so add the following line
|
||||||
@ -143,14 +136,12 @@ to the VM configuration:
|
|||||||
|
|
||||||
- `floppy="/path/to/floppy.img"`
|
- `floppy="/path/to/floppy.img"`
|
||||||
|
|
||||||
File Sharing
|
# File Sharing
|
||||||
============
|
|
||||||
|
|
||||||
All File Sharing options will only expose `~/Public` (or localised
|
All File Sharing options will only expose `~/Public` (or localised
|
||||||
variations) for the current user to the guest VMs.
|
variations) for the current user to the guest VMs.
|
||||||
|
|
||||||
Samba 🐧 🍏 🪟
|
## Samba 🐧 🍏 🪟
|
||||||
-----------
|
|
||||||
|
|
||||||
If `smbd` is available on the host, Quickemu will automatically enable
|
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 built-in QEMU support for exposing a Samba share from the host to
|
||||||
@ -158,22 +149,28 @@ the guest.
|
|||||||
|
|
||||||
You can install the minimal Samba components on Ubuntu using:
|
You can install the minimal Samba components on Ubuntu using:
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
sudo apt install --no-install-recommends samba
|
sudo apt install --no-install-recommends samba
|
||||||
```
|
```
|
||||||
|
|
||||||
SPICE WebDAV 🐧 🪟
|
If everything is set up correctly, the `smbd` address will be printed
|
||||||
----------------
|
when the virtual machine is started. For example:
|
||||||
|
|
||||||
|
- smbd: On guest: smb://10.0.2.4/qemu
|
||||||
|
|
||||||
|
If using a Windows guest, right-click on "This PC", click "Add a network
|
||||||
|
location", and paste this address, removing `smb:` and replacing forward
|
||||||
|
slashes with backslashes (in this example `\\10.0.2.4\qemu`).
|
||||||
|
|
||||||
|
## SPICE WebDAV 🐧 🪟
|
||||||
|
|
||||||
- TBD
|
- TBD
|
||||||
|
|
||||||
VirtIO-9P 🐧 🍏
|
## VirtIO-9P 🐧 🍏
|
||||||
-------------
|
|
||||||
|
|
||||||
- TBD
|
- TBD
|
||||||
|
|
||||||
Network port forwarding
|
# Network port forwarding
|
||||||
=======================
|
|
||||||
|
|
||||||
Add an additional line to your virtual machine configuration. For
|
Add an additional line to your virtual machine configuration. For
|
||||||
example:
|
example:
|
||||||
@ -185,30 +182,54 @@ In the example above:
|
|||||||
- Port 8123 on the host is forwarded to port 8123 on the guest.
|
- 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.
|
- Port 8888 on the host is forwarded to port 80 on the guest.
|
||||||
|
|
||||||
Bridged networking
|
# Disable networking
|
||||||
==================
|
|
||||||
|
To completely disable all network interfaces in a guest VM add this
|
||||||
|
additional line to your virtual machine configuration:
|
||||||
|
|
||||||
|
- `network="none"`
|
||||||
|
|
||||||
|
# Restricted networking
|
||||||
|
|
||||||
|
You can isolate the guest from the host (and broader network) using the
|
||||||
|
restrict option, which will restrict networking to just the guest and
|
||||||
|
any virtual devices.
|
||||||
|
|
||||||
|
This can be used to prevent software running inside the guest from
|
||||||
|
phoning home while still providing a network inside the guest. Add this
|
||||||
|
additional line to your virtual machine configuration:
|
||||||
|
|
||||||
|
- `network="restrict"`
|
||||||
|
|
||||||
|
# Bridged networking
|
||||||
|
|
||||||
Connect your virtual machine to a preconfigured network bridge. Add an
|
Connect your virtual machine to a preconfigured network bridge. Add an
|
||||||
additional line to your virtual machine configuration
|
additional line to your virtual machine configuration:
|
||||||
|
|
||||||
- `bridge="br0"`
|
- `network="br0"`
|
||||||
|
|
||||||
USB redirection
|
If you want to have a persistent MAC address for your bridged network
|
||||||
===============
|
interface in the guest VM you can add `macaddr` to the virtual machine
|
||||||
|
configuration. QEMU requires that the MAC address is in the range:
|
||||||
|
**52:54:00:AB:00:00 - 52:54:00:AB:FF:FF**
|
||||||
|
|
||||||
|
So you can generate your own MAC addresses with:
|
||||||
|
|
||||||
|
- `macaddr="52:54:00:AB:51:AE"`
|
||||||
|
|
||||||
|
# USB redirection
|
||||||
|
|
||||||
Quickemu supports USB redirection via SPICE pass-through and host
|
Quickemu supports USB redirection via SPICE pass-through and host
|
||||||
pass-through.
|
pass-through.
|
||||||
|
|
||||||
SPICE redirection (recommended)
|
## SPICE redirection (recommended)
|
||||||
-------------------------------
|
|
||||||
|
|
||||||
Using SPICE for USB pass-through is easiest as it doesn't require any
|
Using SPICE for USB pass-through is easiest as it doesn't require any
|
||||||
elevated permission, start Quickemu with `--display spice` and then
|
elevated permission, start Quickemu with `--display spice` and then
|
||||||
select `Input` -\> `Select USB Device for redirection` from the menu to
|
select `Input` -\> `Select USB Device for redirection` from the menu to
|
||||||
choose which device(s) you want to attach to the guest.
|
choose which device(s) you want to attach to the guest.
|
||||||
|
|
||||||
Host redirection **NOT Recommended**
|
## Host redirection **NOT Recommended**
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
**USB host redirection is not recommended**, it is provided purely for
|
**USB host redirection is not recommended**, it is provided purely for
|
||||||
backwards compatibility to older versions of Quickemu. Using SPICE is
|
backwards compatibility to older versions of Quickemu. Using SPICE is
|
||||||
@ -221,9 +242,9 @@ example:
|
|||||||
|
|
||||||
In the example above:
|
In the example above:
|
||||||
|
|
||||||
- The USB device with vendor\_id 046d and product\_id 082d will be
|
- The USB device with vendor_id 046d and product_id 082d will be
|
||||||
exposed to the guest.
|
exposed to the guest.
|
||||||
- The USB device with vendor\_id 046d and product\_id 085e will be
|
- The USB device with vendor_id 046d and product_id 085e will be
|
||||||
exposed to the guest.
|
exposed to the guest.
|
||||||
|
|
||||||
If the USB devices are not writable, `quickemu` will display the
|
If the USB devices are not writable, `quickemu` will display the
|
||||||
@ -235,27 +256,23 @@ like this:
|
|||||||
sudo chown -v root:user /dev/bus/usb/001/005
|
sudo chown -v root:user /dev/bus/usb/001/005
|
||||||
ERROR! USB permission changes are required 👆
|
ERROR! USB permission changes are required 👆
|
||||||
|
|
||||||
TPM
|
# TPM
|
||||||
===
|
|
||||||
|
|
||||||
Since Quickemu 2.2.0 a software emulated TPM device can be added to
|
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.
|
guest virtual machines. Just add `tpm="on"` to your VM configuration.
|
||||||
`quickget` will automatically add this line to Windows 11 virtual
|
`quickget` will automatically add this line to Windows 11 virtual
|
||||||
machines.
|
machines.
|
||||||
|
|
||||||
AUTHORS
|
# AUTHORS
|
||||||
=======
|
|
||||||
|
|
||||||
Written by Martin Wimpress.
|
Written by Martin Wimpress.
|
||||||
|
|
||||||
BUGS
|
# BUGS
|
||||||
====
|
|
||||||
|
|
||||||
Submit bug reports online at:
|
Submit bug reports online at:
|
||||||
<https://github.com/quickemu-project/quickemu/issues>
|
<https://github.com/quickemu-project/quickemu/issues>
|
||||||
|
|
||||||
SEE ALSO
|
# SEE ALSO
|
||||||
========
|
|
||||||
|
|
||||||
Full sources at: <https://github.com/quickemu-project/quickemu>
|
Full sources at: <https://github.com/quickemu-project/quickemu>
|
||||||
|
|
||||||
|
231
docs/quickget.1
231
docs/quickget.1
@ -1,6 +1,20 @@
|
|||||||
.\" Automatically generated by Pandoc 2.9.2.1
|
.\" Automatically generated by Pandoc 2.19.2
|
||||||
.\"
|
.\"
|
||||||
.TH "QUICKGET" "1" "February 20, 2022" "quickget" "Quickget User Manual"
|
.\" Define V font for inline verbatim, using C font in formats
|
||||||
|
.\" that render this, and otherwise B font.
|
||||||
|
.ie "\f[CB]x\f[]"x" \{\
|
||||||
|
. ftr V B
|
||||||
|
. ftr VI BI
|
||||||
|
. ftr VB B
|
||||||
|
. ftr VBI BI
|
||||||
|
.\}
|
||||||
|
.el \{\
|
||||||
|
. ftr V CR
|
||||||
|
. ftr VI CI
|
||||||
|
. ftr VB CB
|
||||||
|
. ftr VBI CBI
|
||||||
|
.\}
|
||||||
|
.TH "QUICKGET" "1" "September 1, 2022" "quickget" "Quickget User Manual"
|
||||||
.hy
|
.hy
|
||||||
.SH NAME
|
.SH NAME
|
||||||
.PP
|
.PP
|
||||||
@ -12,7 +26,7 @@ quickget - download and prepare materials for building a quickemu VM
|
|||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.PP
|
.PP
|
||||||
\f[B]quickget\f[R] will download the requisite materials and prepare a
|
\f[B]quickget\f[R] will download the requisite materials and prepare a
|
||||||
configuration for \f[C]quickemu\f[R] to use to build and run
|
configuration for \f[V]quickemu\f[R] to use to build and run
|
||||||
.SH OPTIONS
|
.SH OPTIONS
|
||||||
.TP
|
.TP
|
||||||
\f[B]version | -version | \[en]version\f[R]
|
\f[B]version | -version | \[en]version\f[R]
|
||||||
@ -29,13 +43,13 @@ Editions may not apply and will be defaulted if not provided.
|
|||||||
.SH NOTES
|
.SH NOTES
|
||||||
.SS Ubuntu Guest
|
.SS Ubuntu Guest
|
||||||
.PP
|
.PP
|
||||||
\f[C]quickget\f[R] will automatically download an Ubuntu release and
|
\f[V]quickget\f[R] will automatically download an Ubuntu release and
|
||||||
create the virtual machine configuration.
|
create the virtual machine configuration.
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
quickget ubuntu 20.04
|
quickget ubuntu 22.04
|
||||||
quickemu --vm ubuntu-20.04.conf
|
quickemu --vm ubuntu-22.04.conf
|
||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
@ -44,24 +58,24 @@ Complete the installation as normal.
|
|||||||
Post-install:
|
Post-install:
|
||||||
.RS 2
|
.RS 2
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Install the SPICE agent (\f[C]spice-vdagent\f[R]) to enable copy/paste
|
Install the SPICE agent (\f[V]spice-vdagent\f[R]) to enable copy/paste
|
||||||
and USB redirection
|
and USB redirection
|
||||||
.RS 2
|
.RS 2
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]sudo apt install spice-vdagent\f[R]
|
\f[V]sudo apt install spice-vdagent\f[R]
|
||||||
.RE
|
.RE
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Install the SPICE WebDAV agent (\f[C]spice-webdavd\f[R]) to enable file
|
Install the SPICE WebDAV agent (\f[V]spice-webdavd\f[R]) to enable file
|
||||||
sharing.
|
sharing.
|
||||||
.RS 2
|
.RS 2
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]sudo apt install spice-webdavd\f[R]
|
\f[V]sudo apt install spice-webdavd\f[R]
|
||||||
.RE
|
.RE
|
||||||
.RE
|
.RE
|
||||||
.SS Ubuntu devel (daily-live) images
|
.SS Ubuntu devel (daily-live) images
|
||||||
.PP
|
.PP
|
||||||
\f[C]quickget\f[R] can also download/refresh devel images via
|
\f[V]quickget\f[R] can also download/refresh devel images via
|
||||||
\f[C]zsync\f[R] for Ubuntu developers and testers.
|
\f[V]zsync\f[R] for Ubuntu developers and testers.
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
@ -70,106 +84,118 @@ quickemu --vm ubuntu-devel.conf
|
|||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
You can run \f[C]quickget ubuntu devel\f[R] to refresh your daily
|
You can run \f[V]quickget ubuntu devel\f[R] to refresh your daily
|
||||||
development image as often as you like, it will even automatically
|
development image as often as you like, it will even automatically
|
||||||
switch to a new series.
|
switch to a new series.
|
||||||
.SS Ubuntu Flavours
|
.SS Ubuntu Flavours
|
||||||
.PP
|
.PP
|
||||||
All the official Ubuntu flavours are supported, just replace
|
All the official Ubuntu flavours are supported, just replace
|
||||||
\f[C]ubuntu\f[R] with your preferred flavour.
|
\f[V]ubuntu\f[R] with your preferred flavour.
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]kubuntu\f[R] (Kubuntu)
|
\f[V]kubuntu\f[R] (Kubuntu)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]lubuntu\f[R] (Lubuntu)
|
\f[V]lubuntu\f[R] (Lubuntu)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]ubuntu-budgie\f[R] (Ubuntu Budgie)
|
\f[V]ubuntu-budgie\f[R] (Ubuntu Budgie)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]ubuntukylin\f[R] (Ubuntu Kylin)
|
\f[V]ubuntukylin\f[R] (Ubuntu Kylin)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]ubuntu-mate\f[R] (Ubuntu MATE)
|
\f[V]ubuntu-mate\f[R] (Ubuntu MATE)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]ubuntustudio\f[R] (Ubuntu Studio)
|
\f[V]ubuntustudio\f[R] (Ubuntu Studio)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]ubuntu\f[R] (Ubuntu)
|
\f[V]ubuntu\f[R] (Ubuntu)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]xubuntu\f[R] (Xubuntu)
|
\f[V]xubuntu\f[R] (Xubuntu)
|
||||||
.SS Other Operating Systems
|
.SS Other Operating Systems
|
||||||
.PP
|
.PP
|
||||||
\f[C]quickget\f[R] also supports:
|
\f[V]quickget\f[R] also supports:
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]alma\f[R] (Alma Linux)
|
\f[V]alma\f[R] (Alma Linux)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]alpine\f[R] (Alpine Linux)
|
\f[V]alpine\f[R] (Alpine Linux)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]android\f[R] (Android x86)
|
\f[V]android\f[R] (Android x86)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]archlinux\f[R] (Arch Linux)
|
\f[V]archlinux\f[R] (Arch Linux)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]arcolinux\f[R] (Arco Linux)
|
\f[V]arcolinux\f[R] (Arco Linux)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]cachyos\f[R] (CachyOS)
|
\f[V]batocera\f[R] (Batocera)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]debian\f[R] (Debian)
|
\f[V]cachyos\f[R] (CachyOS)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]devuan\f[R] (Devuan)
|
\f[V]centos-stream\f[R] (CentOS Stream)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]dragonflybsd\f[R] (DragonFlyBSD)
|
\f[V]debian\f[R] (Debian)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]elementary\f[R] (elementary OS)
|
\f[V]deepin\f[R] (Deepin)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]fedora\f[R] (Fedora)
|
\f[V]devuan\f[R] (Devuan)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]freebsd\f[R] (FreeBSD)
|
\f[V]dragonflybsd\f[R] (DragonFlyBSD)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]freedos\f[R] (FreeDOS)
|
\f[V]elementary\f[R] (elementary OS)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]garuda\f[R] (Garuda Linux)
|
\f[V]endeavouros\f[R] (EndeavourOS)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]gentoo\f[R] (Gentoo)
|
\f[V]fedora\f[R] (Fedora)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]ghostbsd\f[R] (GhostBSD)
|
\f[V]freebsd\f[R] (FreeBSD)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]haiku\f[R] (Haiku)
|
\f[V]freedos\f[R] (FreeDOS)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]kali\f[R] (Kali)
|
\f[V]garuda\f[R] (Garuda Linux)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]kdeneon\f[R] (KDE Neon)
|
\f[V]gentoo\f[R] (Gentoo)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]kolibrios\f[R] (KolibriOS)
|
\f[V]ghostbsd\f[R] (GhostBSD)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]linuxmint\f[R] (Linux Mint)
|
\f[V]haiku\f[R] (Haiku)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]manjaro\f[R] (Manjaro)
|
\f[V]kali\f[R] (Kali)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]mxlinux\f[R] (MX Linux)
|
\f[V]kdeneon\f[R] (KDE Neon)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]netboot\f[R] (netboot.xyz)
|
\f[V]kolibrios\f[R] (KolibriOS)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]netbsd\f[R] (NetBSD)
|
\f[V]linuxmint\f[R] (Linux Mint)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]nixos\f[R] (NixOS)
|
\f[V]lmde\f[R] (Linux Mint Debian Edition)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]openbsd\f[R] (OpenBSD)
|
\f[V]manjaro\f[R] (Manjaro)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]opensuse\f[R] (openSUSE)
|
\f[V]mxlinux\f[R] (MX Linux)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]oraclelinux\f[R] (Oracle Linux)
|
\f[V]netboot\f[R] (netboot.xyz)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]popos\f[R] (Pop!_OS)
|
\f[V]netbsd\f[R] (NetBSD)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]regolith\f[R] (Regolith Linux)
|
\f[V]nixos\f[R] (NixOS)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]rockylinux\f[R] (Rocky Linux)
|
\f[V]openbsd\f[R] (OpenBSD)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]slackware\f[R] (Slackware)
|
\f[V]opensuse\f[R] (openSUSE)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]solus\f[R] (Solus)
|
\f[V]oraclelinux\f[R] (Oracle Linux)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]tails\f[R] (Tails)
|
\f[V]popos\f[R] (Pop!_OS)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]void\f[R] (Void Linux)
|
\f[V]reactos\f[R] (ReactOS)
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]zorin\f[R] (Zorin OS)
|
\f[V]regolith\f[R] (Regolith Linux)
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[V]rockylinux\f[R] (Rocky Linux)
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[V]slackware\f[R] (Slackware)
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[V]solus\f[R] (Solus)
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[V]tails\f[R] (Tails)
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[V]void\f[R] (Void Linux)
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[V]zorin\f[R] (Zorin OS)
|
||||||
.PP
|
.PP
|
||||||
Or you can download a Linux image and manually create a VM
|
Or you can download a Linux image and manually create a VM
|
||||||
configuration.
|
configuration.
|
||||||
@ -177,7 +203,7 @@ configuration.
|
|||||||
Download a .iso image of a Linux distribution
|
Download a .iso image of a Linux distribution
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Create a VM configuration file; for example
|
Create a VM configuration file; for example
|
||||||
\f[C]debian-bullseye.conf\f[R]
|
\f[V]debian-bullseye.conf\f[R]
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
@ -187,7 +213,7 @@ iso=\[dq]debian-bullseye/firmware-11.0.0-amd64-DVD-1.iso\[dq]
|
|||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Use \f[C]quickemu\f[R] to start the virtual machine:
|
Use \f[V]quickemu\f[R] to start the virtual machine:
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
@ -200,15 +226,15 @@ Complete the installation as normal.
|
|||||||
Post-install:
|
Post-install:
|
||||||
.RS 2
|
.RS 2
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Install the SPICE agent (\f[C]spice-vdagent\f[R]) to enable copy/paste
|
Install the SPICE agent (\f[V]spice-vdagent\f[R]) to enable copy/paste
|
||||||
and USB redirection.
|
and USB redirection.
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Install the SPICE WebDAV agent (\f[C]spice-webdavd\f[R]) to enable file
|
Install the SPICE WebDAV agent (\f[V]spice-webdavd\f[R]) to enable file
|
||||||
sharing.
|
sharing.
|
||||||
.RE
|
.RE
|
||||||
.SS macOS Guest
|
.SS macOS Guest
|
||||||
.PP
|
.PP
|
||||||
\f[C]quickget\f[R] automatically downloads a macOS recovery image and
|
\f[V]quickget\f[R] automatically downloads a macOS recovery image and
|
||||||
creates a virtual machine configuration.
|
creates a virtual machine configuration.
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
@ -218,8 +244,8 @@ quickemu --vm macos-catalina.conf
|
|||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
macOS \f[C]high-sierra\f[R], \f[C]mojave\f[R], \f[C]catalina\f[R],
|
macOS \f[V]high-sierra\f[R], \f[V]mojave\f[R], \f[V]catalina\f[R],
|
||||||
\f[C]big-sur\f[R] and \f[C]monterey\f[R] are supported.
|
\f[V]big-sur\f[R] and \f[V]monterey\f[R] are supported.
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Use cursor keys and enter key to select the \f[B]macOS Base System\f[R]
|
Use cursor keys and enter key to select the \f[B]macOS Base System\f[R]
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
@ -232,19 +258,19 @@ Click \f[B]Disk Utility\f[R] and \f[B]Continue\f[R]
|
|||||||
On macOS Catalina, Big Sur & Monterey
|
On macOS Catalina, Big Sur & Monterey
|
||||||
.RS 2
|
.RS 2
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Select \f[C]Apple Inc. VirtIO Block Media\f[R] from the list and click
|
Select \f[V]Apple Inc. VirtIO Block Media\f[R] from the list and click
|
||||||
\f[B]Erase\f[R].
|
\f[B]Erase\f[R].
|
||||||
.RE
|
.RE
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
On macOS Mojave and High Sierra
|
On macOS Mojave and High Sierra
|
||||||
.RS 2
|
.RS 2
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Select \f[C]QEMU HARDDISK Media\f[R] (\[ti]103.08GB) from the list and
|
Select \f[V]QEMU HARDDISK Media\f[R] (\[ti]103.08GB) from the list and
|
||||||
click \f[B]Erase\f[R].
|
click \f[B]Erase\f[R].
|
||||||
.RE
|
.RE
|
||||||
.RE
|
.RE
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Enter a \f[C]Name:\f[R] for the disk and click \f[B]Erase\f[R].
|
Enter a \f[V]Name:\f[R] for the disk and click \f[B]Erase\f[R].
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Click \f[B]Done\f[R].
|
Click \f[B]Done\f[R].
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
@ -278,10 +304,10 @@ macos_release=\[dq]catalina\[dq]
|
|||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]guest_os=\[dq]macos\[dq]\f[R] instructs Quickemu to optimise for
|
\f[V]guest_os=\[dq]macos\[dq]\f[R] instructs Quickemu to optimise for
|
||||||
macOS.
|
macOS.
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]macos_release=\[dq]catalina\[dq]\f[R] instructs Quickemu to
|
\f[V]macos_release=\[dq]catalina\[dq]\f[R] instructs Quickemu to
|
||||||
optimise for a particular macOS release.
|
optimise for a particular macOS release.
|
||||||
.RS 2
|
.RS 2
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
@ -309,7 +335,7 @@ Big Sur
|
|||||||
Monterey
|
Monterey
|
||||||
.RE
|
.RE
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]quickemu\f[R] will automatically download the required
|
\f[V]quickemu\f[R] will automatically download the required
|
||||||
OpenCore (https://github.com/acidanthera/OpenCorePkg) bootloader and
|
OpenCore (https://github.com/acidanthera/OpenCorePkg) bootloader and
|
||||||
OVMF firmware from OSX-KVM (https://github.com/kholia/OSX-KVM).
|
OVMF firmware from OSX-KVM (https://github.com/kholia/OSX-KVM).
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
@ -322,11 +348,11 @@ VirtIO Block
|
|||||||
Media (https://www.kraxel.org/blog/2019/06/macos-qemu-guest/) is used
|
Media (https://www.kraxel.org/blog/2019/06/macos-qemu-guest/) is used
|
||||||
for the system disk where supported.
|
for the system disk where supported.
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
VirtIO \f[C]usb-tablet\f[R] (http://philjordan.eu/osx-virt/) is used for
|
VirtIO \f[V]usb-tablet\f[R] (http://philjordan.eu/osx-virt/) is used for
|
||||||
the mouse.
|
the mouse.
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
VirtIO Network (\f[C]virtio-net\f[R]) is supported and enabled on macOS
|
VirtIO Network (\f[V]virtio-net\f[R]) is supported and enabled on macOS
|
||||||
Big Sur and newer but previous releases use \f[C]vmxnet3\f[R].
|
Big Sur and newer but previous releases use \f[V]vmxnet3\f[R].
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
VirtIO Memory Ballooning is supported and enabled on macOS Big Sur and
|
VirtIO Memory Ballooning is supported and enabled on macOS Big Sur and
|
||||||
newer but disabled for other support macOS releases.
|
newer but disabled for other support macOS releases.
|
||||||
@ -342,20 +368,43 @@ XHCI (USB 3.0) on macOS Big Sur and newer.
|
|||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Display resolution can only be changed via macOS System Preferences.
|
Display resolution can only be changed via macOS System Preferences.
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Full Duplex audio works on macOS High Sierra, Mojave and Catalina.
|
\f[B]Full Duplex audio requires VoodooHDA
|
||||||
.RS 2
|
OC (https://github.com/chris1111/VoodooHDA-OC) or pass-through a USB
|
||||||
|
audio-device to the macOS guest VM\f[R].
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[B]macOS Big Sur and Monterey have no audio at all\f[R].
|
NOTE!
|
||||||
.RE
|
Gatekeeper (https://disable-gatekeeper.github.io/) and System Integrity
|
||||||
|
Protection
|
||||||
|
(SIP) (https://developer.apple.com/documentation/security/disabling_and_enabling_system_integrity_protection)
|
||||||
|
need to be disabled to install VoodooHDA OC
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
File sharing between guest and host is available via
|
File sharing between guest and host is available via
|
||||||
virtio-9p (https://wiki.qemu.org/Documentation/9psetup) and SPICE
|
virtio-9p (https://wiki.qemu.org/Documentation/9psetup) and SPICE
|
||||||
webdavd (https://gitlab.gnome.org/GNOME/phodav/-/merge_requests/24).
|
webdavd (https://gitlab.gnome.org/GNOME/phodav/-/merge_requests/24).
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
Copy/paste via SPICE agent is \f[B]not available on macOS\f[R].
|
Copy/paste via SPICE agent is \f[B]not available on macOS\f[R].
|
||||||
|
.SS macOS App Store
|
||||||
|
.PP
|
||||||
|
If you see \f[I]\[lq]Your device or computer could not be
|
||||||
|
verified\[rq]\f[R] when you try to login to the App Store, make sure
|
||||||
|
that your wired ethernet device is \f[V]en0\f[R].
|
||||||
|
Use \f[V]ifconfig\f[R] in a terminal to verify this.
|
||||||
|
.PP
|
||||||
|
If the wired ethernet device is not \f[V]en0\f[R], then then go to
|
||||||
|
\f[I]System Preferences\f[R] -> \f[I]Network\f[R], delete all the
|
||||||
|
network devices and apply the changes.
|
||||||
|
Next, open a terminal and run the following:
|
||||||
|
.IP
|
||||||
|
.nf
|
||||||
|
\f[C]
|
||||||
|
sudo rm /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist
|
||||||
|
\f[R]
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Now reboot, and the App Store should work.
|
||||||
.SS Windows 8.1, 10 & 11 Guests
|
.SS Windows 8.1, 10 & 11 Guests
|
||||||
.PP
|
.PP
|
||||||
\f[C]quickget\f[R] can automatically download Windows 8.1, Windows
|
\f[V]quickget\f[R] can automatically download Windows 8.1, Windows
|
||||||
10 (https://www.microsoft.com/en-gb/software-download/windows10ISO) and
|
10 (https://www.microsoft.com/en-gb/software-download/windows10ISO) and
|
||||||
Windows 11 (https://www.microsoft.com/en-gb/software-download/windows11)
|
Windows 11 (https://www.microsoft.com/en-gb/software-download/windows11)
|
||||||
along with the VirtIO drivers for
|
along with the VirtIO drivers for
|
||||||
@ -372,9 +421,18 @@ quickemu --vm windows-11.conf
|
|||||||
Complete the installation as you normally would.
|
Complete the installation as you normally would.
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
All relevant drivers and services should be installed automatically.
|
All relevant drivers and services should be installed automatically.
|
||||||
|
.IP \[bu] 2
|
||||||
|
A local adminstrator user account is automatically created, with these
|
||||||
|
credentials:
|
||||||
|
.RS 2
|
||||||
|
.IP \[bu] 2
|
||||||
|
Username: \f[V]Quickemu\f[R]
|
||||||
|
.IP \[bu] 2
|
||||||
|
Password: \f[V]quickemu\f[R]
|
||||||
|
.RE
|
||||||
.SS Regional versions
|
.SS Regional versions
|
||||||
.PP
|
.PP
|
||||||
By default \f[C]quickget\f[R] will download the \f[I]\[lq]English
|
By default \f[V]quickget\f[R] will download the \f[I]\[lq]English
|
||||||
International\[rq]\f[R] release, but you can optionally specify one of
|
International\[rq]\f[R] release, but you can optionally specify one of
|
||||||
the supported languages: For example:
|
the supported languages: For example:
|
||||||
.IP
|
.IP
|
||||||
@ -393,17 +451,18 @@ disk_img=\[dq]windows-11/disk.qcow2\[dq]
|
|||||||
iso=\[dq]windows-11/Win11_EnglishInternational_x64.iso\[dq]
|
iso=\[dq]windows-11/Win11_EnglishInternational_x64.iso\[dq]
|
||||||
fixed_iso=\[dq]windows-11/virtio-win.iso\[dq]
|
fixed_iso=\[dq]windows-11/virtio-win.iso\[dq]
|
||||||
tpm=\[dq]on\[dq]
|
tpm=\[dq]on\[dq]
|
||||||
|
secureboot=\[dq]on\[dq]
|
||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]guest_os=\[dq]windows\[dq]\f[R] instructs \f[C]quickemu\f[R] to
|
\f[V]guest_os=\[dq]windows\[dq]\f[R] instructs \f[V]quickemu\f[R] to
|
||||||
optimise for Windows.
|
optimise for Windows.
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]fixed_iso=\f[R] specifies the ISO image that provides VirtIO
|
\f[V]fixed_iso=\f[R] specifies the ISO image that provides VirtIO
|
||||||
drivers.
|
drivers.
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]tpm=\[dq]on\[dq]\f[R] instructs \f[C]quickemu\f[R] to create a
|
\f[V]tpm=\[dq]on\[dq]\f[R] instructs \f[V]quickemu\f[R] to create a
|
||||||
software emulated TPM device using \f[C]swtpm\f[R].
|
software emulated TPM device using \f[V]swtpm\f[R].
|
||||||
.SH AUTHORS
|
.SH AUTHORS
|
||||||
.PP
|
.PP
|
||||||
Written by Martin Wimpress.
|
Written by Martin Wimpress.
|
||||||
|
@ -1,35 +1,31 @@
|
|||||||
---
|
---
|
||||||
author: Martin Wimpress
|
author: Martin Wimpress
|
||||||
date: 'February 20, 2022'
|
date: September 1, 2022
|
||||||
footer: quickget
|
footer: quickget
|
||||||
header: Quickget User Manual
|
header: Quickget User Manual
|
||||||
section: 1
|
section: 1
|
||||||
title: QUICKGET
|
title: QUICKGET
|
||||||
---
|
---
|
||||||
|
|
||||||
NAME
|
# NAME
|
||||||
====
|
|
||||||
|
|
||||||
quickget - download and prepare materials for building a quickemu VM
|
quickget - download and prepare materials for building a quickemu VM
|
||||||
|
|
||||||
SYNOPSIS
|
# SYNOPSIS
|
||||||
========
|
|
||||||
|
|
||||||
**quickget** \[*os*\] \[*release*\] \[*edition*\] \| \[*OPTION*\]\*
|
**quickget** \[*os*\] \[*release*\] \[*edition*\] \| \[*OPTION*\]\*
|
||||||
|
|
||||||
DESCRIPTION
|
# DESCRIPTION
|
||||||
===========
|
|
||||||
|
|
||||||
**quickget** will download the requisite materials and prepare a
|
**quickget** will download the requisite materials and prepare a
|
||||||
configuration for `quickemu` to use to build and run
|
configuration for `quickemu` to use to build and run
|
||||||
|
|
||||||
OPTIONS
|
# OPTIONS
|
||||||
=======
|
|
||||||
|
|
||||||
**version \| -version \| --version**
|
**version \| -version \| --version**
|
||||||
: show version (from Quickemu)
|
: show version (from Quickemu)
|
||||||
|
|
||||||
**list \| list\_csv \| list\_json**
|
**list \| list_csv \| list_json**
|
||||||
: provide a csv list of all supported guest OSes, versions and
|
: provide a csv list of all supported guest OSes, versions and
|
||||||
variants.
|
variants.
|
||||||
|
|
||||||
@ -39,18 +35,16 @@ OPTIONS
|
|||||||
script will exit. Editions may not apply and will be defaulted if
|
script will exit. Editions may not apply and will be defaulted if
|
||||||
not provided.
|
not provided.
|
||||||
|
|
||||||
NOTES
|
# NOTES
|
||||||
=====
|
|
||||||
|
|
||||||
Ubuntu Guest
|
## Ubuntu Guest
|
||||||
------------
|
|
||||||
|
|
||||||
`quickget` will automatically download an Ubuntu release and create the
|
`quickget` will automatically download an Ubuntu release and create the
|
||||||
virtual machine configuration.
|
virtual machine configuration.
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
quickget ubuntu 20.04
|
quickget ubuntu 22.04
|
||||||
quickemu --vm ubuntu-20.04.conf
|
quickemu --vm ubuntu-22.04.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
- Complete the installation as normal.
|
- Complete the installation as normal.
|
||||||
@ -67,7 +61,7 @@ quickemu --vm ubuntu-20.04.conf
|
|||||||
`quickget` can also download/refresh devel images via `zsync` for Ubuntu
|
`quickget` can also download/refresh devel images via `zsync` for Ubuntu
|
||||||
developers and testers.
|
developers and testers.
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
quickget ubuntu devel
|
quickget ubuntu devel
|
||||||
quickemu --vm ubuntu-devel.conf
|
quickemu --vm ubuntu-devel.conf
|
||||||
```
|
```
|
||||||
@ -90,8 +84,7 @@ with your preferred flavour.
|
|||||||
- `ubuntu` (Ubuntu)
|
- `ubuntu` (Ubuntu)
|
||||||
- `xubuntu` (Xubuntu)
|
- `xubuntu` (Xubuntu)
|
||||||
|
|
||||||
Other Operating Systems
|
## Other Operating Systems
|
||||||
-----------------------
|
|
||||||
|
|
||||||
`quickget` also supports:
|
`quickget` also supports:
|
||||||
|
|
||||||
@ -100,11 +93,15 @@ Other Operating Systems
|
|||||||
- `android` (Android x86)
|
- `android` (Android x86)
|
||||||
- `archlinux` (Arch Linux)
|
- `archlinux` (Arch Linux)
|
||||||
- `arcolinux` (Arco Linux)
|
- `arcolinux` (Arco Linux)
|
||||||
|
- `batocera` (Batocera)
|
||||||
- `cachyos` (CachyOS)
|
- `cachyos` (CachyOS)
|
||||||
|
- `centos-stream` (CentOS Stream)
|
||||||
- `debian` (Debian)
|
- `debian` (Debian)
|
||||||
|
- `deepin` (Deepin)
|
||||||
- `devuan` (Devuan)
|
- `devuan` (Devuan)
|
||||||
- `dragonflybsd` (DragonFlyBSD)
|
- `dragonflybsd` (DragonFlyBSD)
|
||||||
- `elementary` (elementary OS)
|
- `elementary` (elementary OS)
|
||||||
|
- `endeavouros` (EndeavourOS)
|
||||||
- `fedora` (Fedora)
|
- `fedora` (Fedora)
|
||||||
- `freebsd` (FreeBSD)
|
- `freebsd` (FreeBSD)
|
||||||
- `freedos` (FreeDOS)
|
- `freedos` (FreeDOS)
|
||||||
@ -116,6 +113,7 @@ Other Operating Systems
|
|||||||
- `kdeneon` (KDE Neon)
|
- `kdeneon` (KDE Neon)
|
||||||
- `kolibrios` (KolibriOS)
|
- `kolibrios` (KolibriOS)
|
||||||
- `linuxmint` (Linux Mint)
|
- `linuxmint` (Linux Mint)
|
||||||
|
- `lmde` (Linux Mint Debian Edition)
|
||||||
- `manjaro` (Manjaro)
|
- `manjaro` (Manjaro)
|
||||||
- `mxlinux` (MX Linux)
|
- `mxlinux` (MX Linux)
|
||||||
- `netboot` (netboot.xyz)
|
- `netboot` (netboot.xyz)
|
||||||
@ -125,6 +123,7 @@ Other Operating Systems
|
|||||||
- `opensuse` (openSUSE)
|
- `opensuse` (openSUSE)
|
||||||
- `oraclelinux` (Oracle Linux)
|
- `oraclelinux` (Oracle Linux)
|
||||||
- `popos` (Pop!\_OS)
|
- `popos` (Pop!\_OS)
|
||||||
|
- `reactos` (ReactOS)
|
||||||
- `regolith` (Regolith Linux)
|
- `regolith` (Regolith Linux)
|
||||||
- `rockylinux` (Rocky Linux)
|
- `rockylinux` (Rocky Linux)
|
||||||
- `slackware` (Slackware)
|
- `slackware` (Slackware)
|
||||||
@ -139,7 +138,7 @@ configuration.
|
|||||||
- Download a .iso image of a Linux distribution
|
- Download a .iso image of a Linux distribution
|
||||||
- Create a VM configuration file; for example `debian-bullseye.conf`
|
- Create a VM configuration file; for example `debian-bullseye.conf`
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
guest_os="linux"
|
guest_os="linux"
|
||||||
disk_img="debian-bullseye/disk.qcow2"
|
disk_img="debian-bullseye/disk.qcow2"
|
||||||
iso="debian-bullseye/firmware-11.0.0-amd64-DVD-1.iso"
|
iso="debian-bullseye/firmware-11.0.0-amd64-DVD-1.iso"
|
||||||
@ -147,7 +146,7 @@ iso="debian-bullseye/firmware-11.0.0-amd64-DVD-1.iso"
|
|||||||
|
|
||||||
- Use `quickemu` to start the virtual machine:
|
- Use `quickemu` to start the virtual machine:
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
quickemu --vm debian-bullseye.conf
|
quickemu --vm debian-bullseye.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -158,13 +157,12 @@ quickemu --vm debian-bullseye.conf
|
|||||||
- Install the SPICE WebDAV agent (`spice-webdavd`) to enable file
|
- Install the SPICE WebDAV agent (`spice-webdavd`) to enable file
|
||||||
sharing.
|
sharing.
|
||||||
|
|
||||||
macOS Guest
|
## macOS Guest
|
||||||
-----------
|
|
||||||
|
|
||||||
`quickget` automatically downloads a macOS recovery image and creates a
|
`quickget` automatically downloads a macOS recovery image and creates a
|
||||||
virtual machine configuration.
|
virtual machine configuration.
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
quickget macos catalina
|
quickget macos catalina
|
||||||
quickemu --vm macos-catalina.conf
|
quickemu --vm macos-catalina.conf
|
||||||
```
|
```
|
||||||
@ -194,7 +192,7 @@ supported.
|
|||||||
|
|
||||||
The default macOS configuration looks like this:
|
The default macOS configuration looks like this:
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
guest_os="macos"
|
guest_os="macos"
|
||||||
img="macos-catalina/RecoveryImage.img"
|
img="macos-catalina/RecoveryImage.img"
|
||||||
disk_img="macos-catalina/disk.qcow2"
|
disk_img="macos-catalina/disk.qcow2"
|
||||||
@ -238,15 +236,35 @@ There are some considerations when running macOS via Quickemu.
|
|||||||
- UHCI (USB 2.0) on macOS Catalina and earlier.
|
- UHCI (USB 2.0) on macOS Catalina and earlier.
|
||||||
- XHCI (USB 3.0) on macOS Big Sur and newer.
|
- XHCI (USB 3.0) on macOS Big Sur and newer.
|
||||||
- Display resolution can only be changed via macOS System Preferences.
|
- Display resolution can only be changed via macOS System Preferences.
|
||||||
- Full Duplex audio works on macOS High Sierra, Mojave and Catalina.
|
- **Full Duplex audio requires [VoodooHDA
|
||||||
- **macOS Big Sur and Monterey have no audio at all**.
|
OC](https://github.com/chris1111/VoodooHDA-OC) or pass-through a USB
|
||||||
|
audio-device to the macOS guest VM**.
|
||||||
|
- NOTE! [Gatekeeper](https://disable-gatekeeper.github.io/) and
|
||||||
|
[System Integrity Protection
|
||||||
|
(SIP)](https://developer.apple.com/documentation/security/disabling_and_enabling_system_integrity_protection)
|
||||||
|
need to be disabled to install VoodooHDA OC
|
||||||
- File sharing between guest and host is available via
|
- File sharing between guest and host is available via
|
||||||
[virtio-9p](https://wiki.qemu.org/Documentation/9psetup) and [SPICE
|
[virtio-9p](https://wiki.qemu.org/Documentation/9psetup) and [SPICE
|
||||||
webdavd](https://gitlab.gnome.org/GNOME/phodav/-/merge_requests/24).
|
webdavd](https://gitlab.gnome.org/GNOME/phodav/-/merge_requests/24).
|
||||||
- Copy/paste via SPICE agent is **not available on macOS**.
|
- Copy/paste via SPICE agent is **not available on macOS**.
|
||||||
|
|
||||||
Windows 8.1, 10 & 11 Guests
|
### macOS App Store
|
||||||
---------------------------
|
|
||||||
|
If you see *"Your device or computer could not be verified"* when you
|
||||||
|
try to login to the App Store, make sure that your wired ethernet device
|
||||||
|
is `en0`. Use `ifconfig` in a terminal to verify this.
|
||||||
|
|
||||||
|
If the wired ethernet device is not `en0`, then then go to *System
|
||||||
|
Preferences* -\> *Network*, delete all the network devices and apply the
|
||||||
|
changes. Next, open a terminal and run the following:
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
sudo rm /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist
|
||||||
|
```
|
||||||
|
|
||||||
|
Now reboot, and the App Store should work.
|
||||||
|
|
||||||
|
## Windows 8.1, 10 & 11 Guests
|
||||||
|
|
||||||
`quickget` can automatically download Windows 8.1, [Windows
|
`quickget` can automatically download Windows 8.1, [Windows
|
||||||
10](https://www.microsoft.com/en-gb/software-download/windows10ISO) and
|
10](https://www.microsoft.com/en-gb/software-download/windows10ISO) and
|
||||||
@ -256,13 +274,17 @@ with the [VirtIO drivers for
|
|||||||
Windows](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/)
|
Windows](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/)
|
||||||
and creates a virtual machine configuration.
|
and creates a virtual machine configuration.
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
quickget windows 11
|
quickget windows 11
|
||||||
quickemu --vm windows-11.conf
|
quickemu --vm windows-11.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
- Complete the installation as you normally would.
|
- Complete the installation as you normally would.
|
||||||
- All relevant drivers and services should be installed automatically.
|
- All relevant drivers and services should be installed automatically.
|
||||||
|
- A local adminstrator user account is automatically created, with
|
||||||
|
these credentials:
|
||||||
|
- Username: `Quickemu`
|
||||||
|
- Password: `quickemu`
|
||||||
|
|
||||||
### Regional versions
|
### Regional versions
|
||||||
|
|
||||||
@ -270,18 +292,19 @@ By default `quickget` will download the *"English International"*
|
|||||||
release, but you can optionally specify one of the supported languages:
|
release, but you can optionally specify one of the supported languages:
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
quickget windows 11 "Chinese (Traditional)"
|
quickget windows 11 "Chinese (Traditional)"
|
||||||
```
|
```
|
||||||
|
|
||||||
The default Windows 11 configuration looks like this:
|
The default Windows 11 configuration looks like this:
|
||||||
|
|
||||||
``` {.bash}
|
``` bash
|
||||||
guest_os="windows"
|
guest_os="windows"
|
||||||
disk_img="windows-11/disk.qcow2"
|
disk_img="windows-11/disk.qcow2"
|
||||||
iso="windows-11/Win11_EnglishInternational_x64.iso"
|
iso="windows-11/Win11_EnglishInternational_x64.iso"
|
||||||
fixed_iso="windows-11/virtio-win.iso"
|
fixed_iso="windows-11/virtio-win.iso"
|
||||||
tpm="on"
|
tpm="on"
|
||||||
|
secureboot="on"
|
||||||
```
|
```
|
||||||
|
|
||||||
- `guest_os="windows"` instructs `quickemu` to optimise for Windows.
|
- `guest_os="windows"` instructs `quickemu` to optimise for Windows.
|
||||||
@ -289,20 +312,17 @@ tpm="on"
|
|||||||
- `tpm="on"` instructs `quickemu` to create a software emulated TPM
|
- `tpm="on"` instructs `quickemu` to create a software emulated TPM
|
||||||
device using `swtpm`.
|
device using `swtpm`.
|
||||||
|
|
||||||
AUTHORS
|
# AUTHORS
|
||||||
=======
|
|
||||||
|
|
||||||
Written by Martin Wimpress.
|
Written by Martin Wimpress.
|
||||||
|
|
||||||
BUGS
|
# BUGS
|
||||||
====
|
|
||||||
|
|
||||||
Submit bug reports online at:
|
Submit bug reports online at:
|
||||||
<https://github.com/quickemu-project/quickemu/issues>
|
<https://github.com/quickemu-project/quickemu/issues>
|
||||||
|
|
||||||
SEE ALSO
|
# SEE ALSO
|
||||||
========
|
|
||||||
|
|
||||||
Full sources at: <https://github.com/quickemu-project/quickemu>
|
Full sources at: <https://github.com/quickemu-project/quickemu>
|
||||||
|
|
||||||
quickemu(1), quickemu\_conf(1), quickgui(1)
|
quickemu(1), quickemu_conf(1), quickgui(1)
|
||||||
|
436
quickget
436
quickget
@ -36,8 +36,10 @@ function pretty_name() {
|
|||||||
archlinux) PRETTY_NAME="Arch Linux";;
|
archlinux) PRETTY_NAME="Arch Linux";;
|
||||||
arcolinux) PRETTY_NAME="Arco Linux";;
|
arcolinux) PRETTY_NAME="Arco Linux";;
|
||||||
cachyos) PRETTY_NAME="CachyOS";;
|
cachyos) PRETTY_NAME="CachyOS";;
|
||||||
|
centos-stream) PRETTY_NAME="CentOS Stream";;
|
||||||
dragonflybsd) PRETTY_NAME="DragonFlyBSD";;
|
dragonflybsd) PRETTY_NAME="DragonFlyBSD";;
|
||||||
elementary) PRETTY_NAME="elementary OS";;
|
elementary) PRETTY_NAME="elementary OS";;
|
||||||
|
endeavouros) PRETTY_NAME="EndeavourOS";;
|
||||||
freebsd) PRETTY_NAME="FreeBSD";;
|
freebsd) PRETTY_NAME="FreeBSD";;
|
||||||
freedos) PRETTY_NAME="FreeDOS";;
|
freedos) PRETTY_NAME="FreeDOS";;
|
||||||
garuda) PRETTY_NAME="Garuda Linux";;
|
garuda) PRETTY_NAME="Garuda Linux";;
|
||||||
@ -45,6 +47,7 @@ function pretty_name() {
|
|||||||
kdeneon) PRETTY_NAME="KDE Neon";;
|
kdeneon) PRETTY_NAME="KDE Neon";;
|
||||||
kolibrios) PRETTY_NAME="KolibriOS";;
|
kolibrios) PRETTY_NAME="KolibriOS";;
|
||||||
linuxmint) PRETTY_NAME="Linux Mint";;
|
linuxmint) PRETTY_NAME="Linux Mint";;
|
||||||
|
lmde) PRETTY_NAME="Linux Mint Debian Edition";;
|
||||||
ludos) PRETTY_NAME="LudOS";;
|
ludos) PRETTY_NAME="LudOS";;
|
||||||
mxlinux) PRETTY_NAME="MX Linux";;
|
mxlinux) PRETTY_NAME="MX Linux";;
|
||||||
netboot) PRETTY_NAME="netboot.xyz";;
|
netboot) PRETTY_NAME="netboot.xyz";;
|
||||||
@ -55,6 +58,7 @@ function pretty_name() {
|
|||||||
opensuse) PRETTY_NAME="openSUSE";;
|
opensuse) PRETTY_NAME="openSUSE";;
|
||||||
oraclelinux) PRETTY_NAME="Oracle Linux";;
|
oraclelinux) PRETTY_NAME="Oracle Linux";;
|
||||||
popos) PRETTY_NAME="Pop!_OS";;
|
popos) PRETTY_NAME="Pop!_OS";;
|
||||||
|
reactos) PRETTY_NAME="ReactOS";;
|
||||||
regolith) PRETTY_NAME="Regolith Linux";;
|
regolith) PRETTY_NAME="Regolith Linux";;
|
||||||
rockylinux) PRETTY_NAME="Rocky Linux";;
|
rockylinux) PRETTY_NAME="Rocky Linux";;
|
||||||
ubuntu-budgie) PRETTY_NAME="Ubuntu Budgie";;
|
ubuntu-budgie) PRETTY_NAME="Ubuntu Budgie";;
|
||||||
@ -161,11 +165,15 @@ function os_support() {
|
|||||||
android \
|
android \
|
||||||
archlinux \
|
archlinux \
|
||||||
arcolinux \
|
arcolinux \
|
||||||
|
batocera \
|
||||||
cachyos \
|
cachyos \
|
||||||
|
centos-stream \
|
||||||
debian \
|
debian \
|
||||||
|
deepin \
|
||||||
devuan \
|
devuan \
|
||||||
dragonflybsd \
|
dragonflybsd \
|
||||||
elementary \
|
elementary \
|
||||||
|
endeavouros \
|
||||||
fedora \
|
fedora \
|
||||||
freebsd \
|
freebsd \
|
||||||
freedos \
|
freedos \
|
||||||
@ -178,6 +186,7 @@ function os_support() {
|
|||||||
kolibrios \
|
kolibrios \
|
||||||
kubuntu \
|
kubuntu \
|
||||||
linuxmint \
|
linuxmint \
|
||||||
|
lmde \
|
||||||
ludos \
|
ludos \
|
||||||
manjaro \
|
manjaro \
|
||||||
mxlinux \
|
mxlinux \
|
||||||
@ -190,6 +199,7 @@ function os_support() {
|
|||||||
opensuse \
|
opensuse \
|
||||||
oraclelinux \
|
oraclelinux \
|
||||||
popos \
|
popos \
|
||||||
|
reactos \
|
||||||
regolith \
|
regolith \
|
||||||
rockylinux \
|
rockylinux \
|
||||||
slackware \
|
slackware \
|
||||||
@ -207,7 +217,7 @@ function os_support() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function releases_alma() {
|
function releases_alma() {
|
||||||
echo 8.4 8.5
|
echo 8.6 9.0
|
||||||
}
|
}
|
||||||
|
|
||||||
function editions_alma() {
|
function editions_alma() {
|
||||||
@ -239,17 +249,33 @@ function editions_arcolinux() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function releases_cachyos() {
|
function releases_cachyos() {
|
||||||
echo 2022.01.09 2022.02.11
|
echo 220731
|
||||||
|
}
|
||||||
|
|
||||||
|
function editions_cachyos() {
|
||||||
|
echo kde gnome xfce
|
||||||
|
}
|
||||||
|
|
||||||
|
function releases_centos-stream() {
|
||||||
|
echo 8 9
|
||||||
|
}
|
||||||
|
|
||||||
|
function editions_centos-stream() {
|
||||||
|
echo dvd1 boot
|
||||||
}
|
}
|
||||||
|
|
||||||
function releases_debian() {
|
function releases_debian() {
|
||||||
echo 10.11.0 11.2.0
|
echo 10.11.0 11.2.0 11.3.0 11.4.0
|
||||||
}
|
}
|
||||||
|
|
||||||
function editions_debian() {
|
function editions_debian() {
|
||||||
echo standard cinnamon gnome kde lxde lxqt mate xfce netinst
|
echo standard cinnamon gnome kde lxde lxqt mate xfce netinst
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function releases_deepin() {
|
||||||
|
echo 20 20.1 20.2 20.2.1 20.2.2 20.2.3 20.2.4 20.3 20.4 20.5
|
||||||
|
}
|
||||||
|
|
||||||
function releases_devuan() {
|
function releases_devuan() {
|
||||||
echo beowulf chimaera
|
echo beowulf chimaera
|
||||||
}
|
}
|
||||||
@ -262,8 +288,18 @@ function releases_elementary() {
|
|||||||
echo 6.1
|
echo 6.1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function releases_endeavouros() {
|
||||||
|
echo apollo_22_1 \
|
||||||
|
atlantis-21_4 \
|
||||||
|
atlantis_neo-21_5
|
||||||
|
}
|
||||||
|
|
||||||
function releases_fedora() {
|
function releases_fedora() {
|
||||||
echo 33 34 35
|
echo 33 34 35 36
|
||||||
|
}
|
||||||
|
|
||||||
|
function releases_batocera() {
|
||||||
|
echo 32 33 34
|
||||||
}
|
}
|
||||||
|
|
||||||
function editions_fedora() {
|
function editions_fedora() {
|
||||||
@ -280,7 +316,7 @@ function editions_fedora() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function releases_freebsd(){
|
function releases_freebsd(){
|
||||||
echo 12.2 12.3 13.0
|
echo 12.3 13.0
|
||||||
}
|
}
|
||||||
|
|
||||||
function editions_freebsd(){
|
function editions_freebsd(){
|
||||||
@ -292,23 +328,12 @@ function releases_freedos() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function releases_garuda() {
|
function releases_garuda() {
|
||||||
echo 220131
|
echo latest
|
||||||
}
|
}
|
||||||
|
|
||||||
function editions_garuda() {
|
function editions_garuda() {
|
||||||
echo dr460nized \
|
URL="https://mirrors.fossho.st/garuda/iso/latest/garuda/"
|
||||||
dr460nized-blackarch \
|
echo $(wget -q -O - ${URL} | grep '^<a href' | sed -e 's/^.*="//' -e 's/\/.*//')
|
||||||
dr460nized-gaming \
|
|
||||||
bspwm \
|
|
||||||
cinnamon \
|
|
||||||
gnome \
|
|
||||||
i3 \
|
|
||||||
kde-barebones \
|
|
||||||
lxqt-kwin \
|
|
||||||
mate \
|
|
||||||
qtile \
|
|
||||||
sway \
|
|
||||||
xfce
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function releases_gentoo() {
|
function releases_gentoo() {
|
||||||
@ -344,19 +369,26 @@ function releases_kolibrios() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function releases_linuxmint(){
|
function releases_linuxmint(){
|
||||||
echo 20.2
|
echo 20.2 20.3 21
|
||||||
}
|
}
|
||||||
|
|
||||||
function editions_linuxmint(){
|
function editions_linuxmint(){
|
||||||
echo cinnamon mate xfce
|
echo cinnamon mate xfce
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function editions_lmde(){
|
||||||
|
echo cinnamon
|
||||||
|
}
|
||||||
|
function releases_lmde(){
|
||||||
|
echo 5
|
||||||
|
}
|
||||||
|
|
||||||
function releases_ludos(){
|
function releases_ludos(){
|
||||||
echo 1.0-beta{1,2,3,4,5}
|
echo 1.0-beta{1,2,3,4,5}
|
||||||
}
|
}
|
||||||
|
|
||||||
function releases_mxlinux(){
|
function releases_mxlinux(){
|
||||||
echo 21
|
echo 21.1
|
||||||
}
|
}
|
||||||
|
|
||||||
function editions_mxlinux(){
|
function editions_mxlinux(){
|
||||||
@ -386,7 +418,7 @@ function releases_netbsd() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function releases_nixos(){
|
function releases_nixos(){
|
||||||
echo 21.05 21.11
|
echo 21.05 21.11 22.05
|
||||||
}
|
}
|
||||||
|
|
||||||
function editions_nixos(){
|
function editions_nixos(){
|
||||||
@ -394,25 +426,29 @@ function editions_nixos(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
function releases_openbsd(){
|
function releases_openbsd(){
|
||||||
echo 6.7 6.8 6.9 7.0
|
echo 6.8 6.9 7.0 7.1
|
||||||
}
|
}
|
||||||
|
|
||||||
function releases_opensuse(){
|
function releases_opensuse(){
|
||||||
echo 15.0 15.1 15.2 15.3 microos tumbleweed
|
echo 15.0 15.1 15.2 15.3 15.4 microos tumbleweed
|
||||||
}
|
}
|
||||||
|
|
||||||
function releases_oraclelinux() {
|
function releases_oraclelinux() {
|
||||||
echo 7.7 7.8 7.9 8.2 8.3 8.4 8.5
|
echo 7.7 7.8 7.9 8.4 8.5 8.6 9.0
|
||||||
}
|
}
|
||||||
|
|
||||||
function releases_popos() {
|
function releases_popos() {
|
||||||
echo 20.04 21.10
|
echo 20.04 21.10 22.04
|
||||||
}
|
}
|
||||||
|
|
||||||
function editions_popos() {
|
function editions_popos() {
|
||||||
echo intel nvidia
|
echo intel nvidia
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function releases_reactos() {
|
||||||
|
echo latest
|
||||||
|
}
|
||||||
|
|
||||||
function releases_regolith() {
|
function releases_regolith() {
|
||||||
echo focal impish
|
echo focal impish
|
||||||
}
|
}
|
||||||
@ -422,12 +458,13 @@ function editions_regolith() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function releases_rockylinux() {
|
function releases_rockylinux() {
|
||||||
echo 8.3 8.4 8.5
|
echo 8.3 8.4 8.5 9.0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Rocky have renamed dvd1 -> dvd at 9.0
|
||||||
function editions_rockylinux() {
|
function editions_rockylinux() {
|
||||||
echo minimal \
|
echo minimal \
|
||||||
dvd1
|
"dvd (dvd1 prior to 9.0)"
|
||||||
}
|
}
|
||||||
|
|
||||||
function releases_slackware() {
|
function releases_slackware() {
|
||||||
@ -447,7 +484,7 @@ function releases_tails() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function releases_ubuntu() {
|
function releases_ubuntu() {
|
||||||
local LTS_SUPPORT="14.04 16.04 18.04 20.04"
|
local LTS_SUPPORT="14.04 16.04 18.04 20.04 22.04"
|
||||||
case "${OS}" in
|
case "${OS}" in
|
||||||
kubuntu|lubuntu|ubuntukylin|\
|
kubuntu|lubuntu|ubuntukylin|\
|
||||||
ubuntu-mate|ubuntustudio|xubuntu)
|
ubuntu-mate|ubuntustudio|xubuntu)
|
||||||
@ -460,7 +497,7 @@ function releases_ubuntu() {
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
echo ${LTS_SUPPORT} \
|
echo ${LTS_SUPPORT} \
|
||||||
21.10 \
|
jammy-daily \
|
||||||
daily-live \
|
daily-live \
|
||||||
daily-canary \
|
daily-canary \
|
||||||
eol-4.10 \
|
eol-4.10 \
|
||||||
@ -668,6 +705,9 @@ function make_vm_config() {
|
|||||||
IMAGE_FILE="${1}"
|
IMAGE_FILE="${1}"
|
||||||
ISO_FILE="${2}"
|
ISO_FILE="${2}"
|
||||||
case "${OS}" in
|
case "${OS}" in
|
||||||
|
batocera)
|
||||||
|
GUEST="batocera"
|
||||||
|
IMAGE_TYPE="img";;
|
||||||
dragonflybsd)
|
dragonflybsd)
|
||||||
GUEST="dragonflybsd"
|
GUEST="dragonflybsd"
|
||||||
IMAGE_TYPE="iso";;
|
IMAGE_TYPE="iso";;
|
||||||
@ -695,6 +735,9 @@ function make_vm_config() {
|
|||||||
openbsd)
|
openbsd)
|
||||||
GUEST="openbsd"
|
GUEST="openbsd"
|
||||||
IMAGE_TYPE="iso";;
|
IMAGE_TYPE="iso";;
|
||||||
|
reactos)
|
||||||
|
GUEST="reactos"
|
||||||
|
IMAGE_TYPE="iso";;
|
||||||
windows)
|
windows)
|
||||||
GUEST="windows"
|
GUEST="windows"
|
||||||
IMAGE_TYPE="iso";;
|
IMAGE_TYPE="iso";;
|
||||||
@ -712,18 +755,29 @@ function make_vm_config() {
|
|||||||
if [ ! -e "${CONF_FILE}" ]; then
|
if [ ! -e "${CONF_FILE}" ]; then
|
||||||
echo "Making ${CONF_FILE}"
|
echo "Making ${CONF_FILE}"
|
||||||
cat << EOF > "${CONF_FILE}"
|
cat << EOF > "${CONF_FILE}"
|
||||||
|
#!$(which quickemu) --vm
|
||||||
guest_os="${GUEST}"
|
guest_os="${GUEST}"
|
||||||
disk_img="${VM_PATH}/disk.qcow2"
|
disk_img="${VM_PATH}/disk.qcow2"
|
||||||
${IMAGE_TYPE}="${VM_PATH}/${IMAGE_FILE}"
|
${IMAGE_TYPE}="${VM_PATH}/${IMAGE_FILE}"
|
||||||
EOF
|
EOF
|
||||||
|
echo "Giving user execute permissions on ${CONF_FILE},"
|
||||||
|
chmod u+x "${CONF_FILE}"
|
||||||
if [ -n "${ISO_FILE}" ]; then
|
if [ -n "${ISO_FILE}" ]; then
|
||||||
echo "fixed_iso=\"${VM_PATH}/${ISO_FILE}\"" >> "${CONF_FILE}"
|
echo "fixed_iso=\"${VM_PATH}/${ISO_FILE}\"" >> "${CONF_FILE}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# OS specific tweaks
|
# OS specific tweaks
|
||||||
case ${OS} in
|
case ${OS} in
|
||||||
alma|oraclelinux|rockylinux) echo "disk_size=\"32G\"" >> "${CONF_FILE}";;
|
alma|centos-stream|oraclelinux|rockylinux)
|
||||||
dragonflybsd|haiku|openbsd|netbsd|slackware|tails) echo "boot=\"legacy\"" >> "${CONF_FILE}";;
|
echo "disk_size=\"32G\"" >> "${CONF_FILE}";;
|
||||||
|
batocera)
|
||||||
|
echo "disk_size=\"8G\"" >> "${CONF_FILE}";;
|
||||||
|
dragonflybsd|haiku|openbsd|netbsd|slackware|tails)
|
||||||
|
echo "boot=\"legacy\"" >> "${CONF_FILE}";;
|
||||||
|
deepin)
|
||||||
|
echo "disk_size=\"64G\"" >> "${CONF_FILE}"
|
||||||
|
echo "ram=\"4G\"" >> "${CONF_FILE}"
|
||||||
|
;;
|
||||||
freedos)
|
freedos)
|
||||||
echo "boot=\"legacy\"" >> "${CONF_FILE}"
|
echo "boot=\"legacy\"" >> "${CONF_FILE}"
|
||||||
echo "disk_size=\"4G\"" >> "${CONF_FILE}"
|
echo "disk_size=\"4G\"" >> "${CONF_FILE}"
|
||||||
@ -734,7 +788,24 @@ EOF
|
|||||||
echo "disk_size=\"2G\"" >> "${CONF_FILE}"
|
echo "disk_size=\"2G\"" >> "${CONF_FILE}"
|
||||||
echo "ram=\"128M\"" >> "${CONF_FILE}"
|
echo "ram=\"128M\"" >> "${CONF_FILE}"
|
||||||
;;
|
;;
|
||||||
macos) echo "macos_release=\"${RELEASE}\"" >> "${CONF_FILE}";;
|
zorin)
|
||||||
|
case ${EDITION} in
|
||||||
|
education64|edulite64)
|
||||||
|
echo "disk_size=\"32G\"" >> "${CONF_FILE}";;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
reactos)
|
||||||
|
echo "boot=\"legacy\"" >> "${CONF_FILE}"
|
||||||
|
echo "disk_size=\"12G\"" >> "${CONF_FILE}"
|
||||||
|
echo "ram=\"2048M\"" >> "${CONF_FILE}"
|
||||||
|
;;
|
||||||
|
macos)
|
||||||
|
echo "macos_release=\"${RELEASE}\"" >> "${CONF_FILE}"
|
||||||
|
# https://github.com/quickemu-project/quickemu/issues/438
|
||||||
|
if [ "${RELEASE}" == "monterey" ]; then
|
||||||
|
echo "cpu_cores=2" >> "${CONF_FILE}"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# Enable TPM for Windows 11
|
# Enable TPM for Windows 11
|
||||||
@ -760,7 +831,7 @@ function get_alma() {
|
|||||||
local EDITION="${1:-}"
|
local EDITION="${1:-}"
|
||||||
local HASH=""
|
local HASH=""
|
||||||
local ISO="AlmaLinux-${RELEASE}-x86_64-${EDITION}.iso"
|
local ISO="AlmaLinux-${RELEASE}-x86_64-${EDITION}.iso"
|
||||||
local URL="http://lon.mirror.rackspace.com/almalinux/${RELEASE}/isos/x86_64/"
|
local URL="http://lon.mirror.rackspace.com/almalinux/${RELEASE/beta-1/beta}/isos/x86_64/"
|
||||||
HASH="$(wget -q -O- "${URL}/CHECKSUM" | grep "(${ISO}" | cut -d' ' -f4)"
|
HASH="$(wget -q -O- "${URL}/CHECKSUM" | grep "(${ISO}" | cut -d' ' -f4)"
|
||||||
echo "${URL}/${ISO} ${HASH}"
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
}
|
}
|
||||||
@ -794,8 +865,8 @@ function get_android() {
|
|||||||
ISO=$(echo "${JSON_REL}" | jq -r .n)
|
ISO=$(echo "${JSON_REL}" | jq -r .n)
|
||||||
HASH=$(echo "${JSON_REL}" | jq -r .hash.sha256)
|
HASH=$(echo "${JSON_REL}" | jq -r .hash.sha256)
|
||||||
# Traverse the directories to find the .iso location
|
# Traverse the directories to find the .iso location
|
||||||
for DIR in $(wget -q -O- "${URL}" | grep -o -E '[0-9]{5}' | sort -ur); do
|
for DIR in $(wget -4 -q -O- "${URL}" | grep -o -E '[0-9]{5}' | sort -ur); do
|
||||||
if wget -q -O- "${URL}/${DIR}" | grep "${ISO}" &>/dev/null; then
|
if wget -4 -q -O- "${URL}/${DIR}" | grep "${ISO}" &>/dev/null; then
|
||||||
URL="${URL}/${DIR}"
|
URL="${URL}/${DIR}"
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
@ -821,10 +892,52 @@ function get_arcolinux() {
|
|||||||
echo "${URL}/${ISO} ${HASH}"
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_batocera() {
|
||||||
|
local HASH=""
|
||||||
|
local URL="https://mirrors.o2switch.fr/batocera/x86_64/stable/last"
|
||||||
|
local ISO="$(curl -sl ${URL}/ | grep -e 'batocera.*img.gz'|cut -d\" -f2)"
|
||||||
|
local CURRENT_RELEASE=$(echo "${ISO}"| cut -d\- -f3)
|
||||||
|
|
||||||
|
|
||||||
|
case ${RELEASE} in
|
||||||
|
${CURRENT_RELEASE}) #Current release
|
||||||
|
URL+=""
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
URL+="/archives/${RELEASE}"
|
||||||
|
ISO="$(curl -sl ${URL}/ | grep -e 'batocera.*img.gz'|cut -d\" -f2)"
|
||||||
|
;; # non-current are here
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
function get_cachyos() {
|
function get_cachyos() {
|
||||||
local HASH=""
|
local HASH=""
|
||||||
local ISO="cachyos-${RELEASE}-x86_64.iso"
|
local ISO="cachyos-${EDITION}-linux-${RELEASE}.iso"
|
||||||
local URL="https://mirror.cachyos.org/ISO"
|
local URL="https://mirror.cachyos.org/ISO/${EDITION}/${RELEASE}"
|
||||||
|
HASH=$(wget -q -O- "${URL}/${ISO}.sha256" | cut -d' ' -f1)
|
||||||
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_centos-stream() {
|
||||||
|
local HASH=""
|
||||||
|
local ISO=""
|
||||||
|
case ${RELEASE} in
|
||||||
|
8)
|
||||||
|
ISO="CentOS-Stream-${RELEASE}-x86_64-latest-${EDITION}.iso"
|
||||||
|
URL="https://mirrors.ocf.berkeley.edu/centos/8-stream/isos/x86_64"
|
||||||
|
HASH=$(wget -q -O- ${URL}/CHECKSUM | grep "SHA256 (${ISO}" | cut -d' ' -f4)
|
||||||
|
;;
|
||||||
|
9)
|
||||||
|
ISO="CentOS-Stream-${RELEASE}-latest-x86_64-${EDITION}.iso"
|
||||||
|
URL="https://mirrors.ocf.berkeley.edu/centos-stream/9-stream/BaseOS/x86_64/iso"
|
||||||
|
HASH=$(wget -q -O- ${URL}/${ISO}.SHA256SUM | grep "SHA256 (${ISO}" | cut -d' ' -f4)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
echo "${URL}/${ISO} ${HASH}"
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -835,7 +948,7 @@ function get_debian() {
|
|||||||
local URL=""
|
local URL=""
|
||||||
|
|
||||||
case ${RELEASE} in
|
case ${RELEASE} in
|
||||||
11.2.0) URL="https://cdimage.debian.org/debian-cd/${RELEASE}-live/amd64/iso-hybrid";;
|
11.4.0) URL="https://cdimage.debian.org/debian-cd/${RELEASE}-live/amd64/iso-hybrid";;
|
||||||
*) URL="https://cdimage.debian.org/cdimage/archive/${RELEASE}-live/amd64/iso-hybrid/";;
|
*) URL="https://cdimage.debian.org/cdimage/archive/${RELEASE}-live/amd64/iso-hybrid/";;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
@ -849,6 +962,30 @@ function get_debian() {
|
|||||||
echo "${URL}/${ISO} ${HASH}"
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_deepin() {
|
||||||
|
local HASH=""
|
||||||
|
local EDITION=""
|
||||||
|
local ISO="deepin-desktop-community-${RELEASE}-amd64.iso"
|
||||||
|
# deepin-desktop-community-20.3-amd64.iso
|
||||||
|
local URL="https://cdimage.deepin.com/releases/"${RELEASE}
|
||||||
|
|
||||||
|
# fix iso name
|
||||||
|
if [[ "${RELEASE}" == *"20" ]] ; then
|
||||||
|
EDITION="1003"
|
||||||
|
ISO="deepin-desktop-community-${EDITION}-amd64.iso"
|
||||||
|
elif [[ "${RELEASE}" == *"20.1" ]]; then
|
||||||
|
EDITION="1010"
|
||||||
|
ISO="deepin-desktop-community-${EDITION}-amd64.iso"
|
||||||
|
fi
|
||||||
|
|
||||||
|
HASH=$(wget -q -O- "${URL}/SHA256SUMS" | grep "${ISO}" | cut -d' ' -f1)
|
||||||
|
|
||||||
|
#echo "${URL}/${ISO} ${HASH}"
|
||||||
|
web_get "${URL}/${ISO}" "${VM_PATH}"
|
||||||
|
check_hash "${ISO}" "${HASH}"
|
||||||
|
make_vm_config "${ISO}"
|
||||||
|
}
|
||||||
|
|
||||||
function get_devuan() {
|
function get_devuan() {
|
||||||
local HASH=""
|
local HASH=""
|
||||||
local ISO=""
|
local ISO=""
|
||||||
@ -878,6 +1015,16 @@ function get_elementary() {
|
|||||||
echo "${URL}/$(date +%s | base64)/${ISO} ${HASH}"
|
echo "${URL}/$(date +%s | base64)/${ISO} ${HASH}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_endeavouros() {
|
||||||
|
local HASH=""
|
||||||
|
# Endeavour release names are Capitalized and our $RELEASE is forced to lowercase so we have to revert it
|
||||||
|
local ISO="EndeavourOS_${RELEASE@u}.iso"
|
||||||
|
local URL="https://github.com/endeavouros-team/ISO/releases/download/1-EndeavourOS-ISO-releases-archive"
|
||||||
|
|
||||||
|
HASH=$(wget -q -O- "${URL}/${ISO}.sha512sum" | cut -d' ' -f1)
|
||||||
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
function get_fedora() {
|
function get_fedora() {
|
||||||
local EDITION="${1:-}"
|
local EDITION="${1:-}"
|
||||||
local HASH=""
|
local HASH=""
|
||||||
@ -927,22 +1074,15 @@ function get_freedos() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function get_garuda() {
|
function get_garuda() {
|
||||||
local EDITION="${1:-}"
|
local EDITION="${1:-}"
|
||||||
local HASH=""
|
local HASH=""
|
||||||
local ISO=""
|
local ISO=""
|
||||||
local URL=""
|
local URL="https://mirrors.fossho.st/garuda/iso/latest/garuda/"
|
||||||
|
|
||||||
case ${EDITION} in
|
ISO=${EDITION}/latest.iso
|
||||||
cinnamon|mate) URL="http://mirrors.fossho.st/garuda/iso/community/${EDITION}/${RELEASE}";;
|
|
||||||
*) URL="http://mirrors.fossho.st/garuda/iso/garuda/${EDITION}/${RELEASE}";;
|
|
||||||
esac
|
|
||||||
case ${EDITION} in
|
|
||||||
xfce|kde-barebones) ISO="garuda-${EDITION}-linux-lts-${RELEASE}.iso";;
|
|
||||||
*) ISO="garuda-${EDITION}-linux-zen-${RELEASE}.iso";;
|
|
||||||
esac
|
|
||||||
|
|
||||||
HASH="$(wget -q -O- "${URL}/${ISO}.sha256" | cut -d' ' -f1)"
|
HASH="$(wget -q -O- "${URL}/${ISO}.sha256" | cut -d' ' -f1)"
|
||||||
echo "${URL}/${ISO} ${HASH}"
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
}
|
}
|
||||||
|
|
||||||
function get_gentoo() {
|
function get_gentoo() {
|
||||||
@ -972,8 +1112,10 @@ function get_ghostbsd() {
|
|||||||
function get_haiku() {
|
function get_haiku() {
|
||||||
local EDITION="${1:-}"
|
local EDITION="${1:-}"
|
||||||
local ISO="haiku-${RELEASE}-${EDITION}-anyboot.iso"
|
local ISO="haiku-${RELEASE}-${EDITION}-anyboot.iso"
|
||||||
local URL="https://cdn.haiku-os.org/haiku-release/${RELEASE}"
|
# local URL="https://cdn.haiku-os.org/haiku-release/${RELEASE}" # domain gone
|
||||||
local HASH=""
|
local URL="http://mirror.rit.edu/haiku/${RELEASE}" # NY, USA
|
||||||
|
# local URL="https://mirrors.tnonline.net/haiku/haiku-release/${RELEASE}" # Sweden
|
||||||
|
# local URL="https://mirror.aarnet.edu.au/pub/haiku/${RELEASE}" # Aus
|
||||||
|
|
||||||
HASH=$(wget -q -O- "${URL}/${ISO}.sha256" | grep "${ISO}" | cut -d' ' -f4)
|
HASH=$(wget -q -O- "${URL}/${ISO}.sha256" | grep "${ISO}" | cut -d' ' -f4)
|
||||||
echo "${URL}/${ISO} ${HASH}"
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
@ -1016,6 +1158,16 @@ function get_linuxmint() {
|
|||||||
echo "${URL}/${ISO} ${HASH}"
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_lmde() {
|
||||||
|
local EDITION="${1:-}"
|
||||||
|
local HASH=""
|
||||||
|
local ISO="lmde-${RELEASE}-${EDITION}-64bit.iso"
|
||||||
|
local URL="https://mirror.bytemark.co.uk/linuxmint/debian"
|
||||||
|
|
||||||
|
HASH=$(wget -q -O- "${URL}/sha256sum.txt" | grep "${ISO}" | cut -d' ' -f1)
|
||||||
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
function get_ludos() {
|
function get_ludos() {
|
||||||
# not considering betas as editions at this point
|
# not considering betas as editions at this point
|
||||||
#local EDITION="${1:-}"
|
#local EDITION="${1:-}"
|
||||||
@ -1032,7 +1184,8 @@ function get_macos() {
|
|||||||
local BOARD_ID=""
|
local BOARD_ID=""
|
||||||
local CWD=""
|
local CWD=""
|
||||||
local MACRECOVERY=""
|
local MACRECOVERY=""
|
||||||
local MLB=""
|
local MLB="00000000000000000"
|
||||||
|
local OS_TYPE="default"
|
||||||
|
|
||||||
case ${RELEASE} in
|
case ${RELEASE} in
|
||||||
high-sierra)
|
high-sierra)
|
||||||
@ -1042,11 +1195,10 @@ function get_macos() {
|
|||||||
BOARD_ID="Mac-7BA5B2DFE22DDD8C"
|
BOARD_ID="Mac-7BA5B2DFE22DDD8C"
|
||||||
MLB="00000000000KXPG00";;
|
MLB="00000000000KXPG00";;
|
||||||
catalina)
|
catalina)
|
||||||
BOARD_ID="Mac-CFF7D910A743CAAF"
|
BOARD_ID="Mac-C3EC7CD22292981F"
|
||||||
MLB="00000000000PHCD00";;
|
MLB="00000000000PHCD00";;
|
||||||
big-sur)
|
big-sur)
|
||||||
BOARD_ID="Mac-35C1E88140C3E6CF"
|
BOARD_ID="Mac-3CBD00234E554E41";;
|
||||||
MLB="00000000000000000";;
|
|
||||||
monterey)
|
monterey)
|
||||||
BOARD_ID="Mac-06F11F11946D27C5"
|
BOARD_ID="Mac-06F11F11946D27C5"
|
||||||
MLB="00000000000000000";;
|
MLB="00000000000000000";;
|
||||||
@ -1083,6 +1235,7 @@ function get_macos() {
|
|||||||
${MACRECOVERY} \
|
${MACRECOVERY} \
|
||||||
--board-id "${BOARD_ID}" \
|
--board-id "${BOARD_ID}" \
|
||||||
--mlb "${MLB}" \
|
--mlb "${MLB}" \
|
||||||
|
--os-type "${OS_TYPE}" \
|
||||||
--basename RecoveryImage \
|
--basename RecoveryImage \
|
||||||
--outdir "${VM_PATH}" \
|
--outdir "${VM_PATH}" \
|
||||||
download
|
download
|
||||||
@ -1190,8 +1343,8 @@ function get_oraclelinux() {
|
|||||||
local URL="https://yum.oracle.com/ISOS/OracleLinux/OL${VER_MAJ}/u${VER_MIN}/x86_64/"
|
local URL="https://yum.oracle.com/ISOS/OracleLinux/OL${VER_MAJ}/u${VER_MIN}/x86_64/"
|
||||||
|
|
||||||
case ${VER_MAJ} in
|
case ${VER_MAJ} in
|
||||||
8) ISO="OracleLinux-R${VER_MAJ}-U${VER_MIN}-x86_64-dvd.iso";;
|
7) ISO="OracleLinux-R${VER_MAJ}-U${VER_MIN}-Server-x86_64-dvd.iso";;
|
||||||
*) ISO="OracleLinux-R${VER_MAJ}-U${VER_MIN}-Server-x86_64-dvd.iso";;
|
*) ISO="OracleLinux-R${VER_MAJ}-U${VER_MIN}-x86_64-dvd.iso";;
|
||||||
esac
|
esac
|
||||||
HASH=$(wget -q -O- "https://linux.oracle.com/security/gpg/checksum/OracleLinux-R${VER_MAJ}-U${VER_MIN}-Server-x86_64.checksum" | grep "${ISO}" | cut -d' ' -f1)
|
HASH=$(wget -q -O- "https://linux.oracle.com/security/gpg/checksum/OracleLinux-R${VER_MAJ}-U${VER_MIN}-Server-x86_64.checksum" | grep "${ISO}" | cut -d' ' -f1)
|
||||||
echo "${URL}/${ISO} ${HASH}"
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
@ -1207,6 +1360,16 @@ function get_popos() {
|
|||||||
echo "${URL} ${HASH}"
|
echo "${URL} ${HASH}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_reactos() {
|
||||||
|
local HASH=""
|
||||||
|
local URL=""
|
||||||
|
local TMPURL=""
|
||||||
|
|
||||||
|
TMPURL=$(wget -q -S -O- --max-redirect=0 "https://sourceforge.net/projects/reactos/files/latest/download" 2>&1 | grep Location | cut -d' ' -f4)
|
||||||
|
URL=${TMPURL%\?*}
|
||||||
|
echo "${URL} ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
function get_regolith() {
|
function get_regolith() {
|
||||||
local EDITION="${1:-}"
|
local EDITION="${1:-}"
|
||||||
local HASH=""
|
local HASH=""
|
||||||
@ -1228,7 +1391,7 @@ function get_rockylinux() {
|
|||||||
local URL=""
|
local URL=""
|
||||||
|
|
||||||
case ${RELEASE} in
|
case ${RELEASE} in
|
||||||
8.5) URL="https://download.rockylinux.org/pub/rocky/${RELEASE}/isos/x86_64";;
|
9.0) URL="https://download.rockylinux.org/pub/rocky/${RELEASE}/isos/x86_64";;
|
||||||
*) URL="http://dl.rockylinux.org/vault/rocky/${RELEASE}/isos/x86_64/";;
|
*) URL="http://dl.rockylinux.org/vault/rocky/${RELEASE}/isos/x86_64/";;
|
||||||
esac
|
esac
|
||||||
HASH=$(wget -q -O- "${URL}/CHECKSUM" | grep "SHA256" | grep "${ISO})" | cut -d' ' -f4)
|
HASH=$(wget -q -O- "${URL}/CHECKSUM" | grep "SHA256" | grep "${ISO})" | cut -d' ' -f4)
|
||||||
@ -1280,6 +1443,10 @@ function get_ubuntu() {
|
|||||||
|
|
||||||
if [[ "${RELEASE}" == "eol-"* ]]; then
|
if [[ "${RELEASE}" == "eol-"* ]]; then
|
||||||
URL="https://old-releases.ubuntu.com/releases/${RELEASE/eol-/}"
|
URL="https://old-releases.ubuntu.com/releases/${RELEASE/eol-/}"
|
||||||
|
elif [[ "${RELEASE}" == "jammy-daily" ]]; then
|
||||||
|
URL="https://cdimage.ubuntu.com/${OS}/jammy/daily-live/current"
|
||||||
|
VM_PATH="${OS}-jammy-live"
|
||||||
|
|
||||||
elif [[ "${RELEASE}" == *"daily"* ]] || [ "${RELEASE}" == "dvd" ]; then
|
elif [[ "${RELEASE}" == *"daily"* ]] || [ "${RELEASE}" == "dvd" ]; then
|
||||||
URL="https://cdimage.ubuntu.com/${OS}/${RELEASE}/current"
|
URL="https://cdimage.ubuntu.com/${OS}/${RELEASE}/current"
|
||||||
VM_PATH="${OS}-daily-live"
|
VM_PATH="${OS}-daily-live"
|
||||||
@ -1290,11 +1457,11 @@ function get_ubuntu() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if wget -q --spider "${URL}/SHA256SUMS"; then
|
if wget -q --spider "${URL}/SHA256SUMS"; then
|
||||||
ISO=$(wget -q -O- "${URL}/SHA256SUMS" | grep 'desktop\|dvd\|install' | grep amd64 | cut -d'*' -f2)
|
ISO=$(wget -q -O- "${URL}/SHA256SUMS" | grep 'desktop\|dvd\|install' | grep amd64 | grep iso | cut -d'*' -f2)
|
||||||
HASH=$(wget -q -O- "${URL}/SHA256SUMS" | grep 'desktop\|dvd\|install' | grep amd64 | cut -d' ' -f1)
|
HASH=$(wget -q -O- "${URL}/SHA256SUMS" | grep 'desktop\|dvd\|install' | grep amd64 | grep iso |cut -d' ' -f1)
|
||||||
else
|
else
|
||||||
ISO=$(wget -q -O- "${URL}/MD5SUMS" | grep 'desktop\|dvd\|install' | grep amd64 | cut -d' ' -f3)
|
ISO=$(wget -q -O- "${URL}/MD5SUMS" | grep 'desktop\|dvd\|install' | grep amd64 | grep iso | cut -d' ' -f3)
|
||||||
HASH=$(wget -q -O- "${URL}/MD5SUMS" | grep 'desktop\|dvd\|install' | grep amd64 | cut -d' ' -f1)
|
HASH=$(wget -q -O- "${URL}/MD5SUMS" | grep 'desktop\|dvd\|install' | grep amd64 | grep iso | cut -d' ' -f1)
|
||||||
fi
|
fi
|
||||||
#echo "${URL}/${ISO} ${HASH}"
|
#echo "${URL}/${ISO} ${HASH}"
|
||||||
|
|
||||||
@ -1348,44 +1515,28 @@ function unattended_windows() {
|
|||||||
https://docs.microsoft.com/en-us/windows-hardware/customize/desktop/unattend/
|
https://docs.microsoft.com/en-us/windows-hardware/customize/desktop/unattend/
|
||||||
-->
|
-->
|
||||||
<settings pass="offlineServicing">
|
<settings pass="offlineServicing">
|
||||||
<component name="Microsoft-Windows-Shell-Setup"
|
<component name="Microsoft-Windows-LUA-Settings" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
processorArchitecture="amd64"
|
<EnableLUA>false</EnableLUA>
|
||||||
publicKeyToken="31bf3856ad364e35"
|
</component>
|
||||||
language="neutral"
|
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
versionScope="nonSxS"
|
|
||||||
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
||||||
<ComputerName>*</ComputerName>
|
<ComputerName>*</ComputerName>
|
||||||
</component>
|
</component>
|
||||||
</settings>
|
</settings>
|
||||||
|
|
||||||
<settings pass="generalize">
|
<settings pass="generalize">
|
||||||
<component name="Microsoft-Windows-PnPSysprep"
|
<component name="Microsoft-Windows-PnPSysprep" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
||||||
processorArchitecture="amd64"
|
|
||||||
publicKeyToken="31bf3856ad364e35"
|
|
||||||
language="neutral"
|
|
||||||
versionScope="nonSxS">
|
|
||||||
<PersistAllDeviceInstalls>true</PersistAllDeviceInstalls>
|
<PersistAllDeviceInstalls>true</PersistAllDeviceInstalls>
|
||||||
</component>
|
</component>
|
||||||
|
<component name="Microsoft-Windows-Security-SPP" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<SkipRearm>1</SkipRearm>
|
||||||
|
</component>
|
||||||
</settings>
|
</settings>
|
||||||
|
|
||||||
<settings pass="specialize">
|
<settings pass="specialize">
|
||||||
<component name="Microsoft-Windows-Security-SPP-UX"
|
<component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
processorArchitecture="amd64"
|
|
||||||
publicKeyToken="31bf3856ad364e35"
|
|
||||||
language="neutral"
|
|
||||||
versionScope="nonSxS"
|
|
||||||
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
||||||
<SkipAutoActivation>true</SkipAutoActivation>
|
<SkipAutoActivation>true</SkipAutoActivation>
|
||||||
</component>
|
</component>
|
||||||
<component name="Microsoft-Windows-Shell-Setup"
|
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
processorArchitecture="amd64"
|
|
||||||
publicKeyToken="31bf3856ad364e35"
|
|
||||||
language="neutral"
|
|
||||||
versionScope="nonSxS"
|
|
||||||
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
||||||
<ComputerName>*</ComputerName>
|
<ComputerName>*</ComputerName>
|
||||||
<OEMInformation>
|
<OEMInformation>
|
||||||
<Manufacturer>Quickemu Project</Manufacturer>
|
<Manufacturer>Quickemu Project</Manufacturer>
|
||||||
@ -1396,26 +1547,15 @@ function unattended_windows() {
|
|||||||
<SupportURL>https://github.com/quickemu-project/quickemu/issues</SupportURL>
|
<SupportURL>https://github.com/quickemu-project/quickemu/issues</SupportURL>
|
||||||
</OEMInformation>
|
</OEMInformation>
|
||||||
<OEMName>Quickemu Project</OEMName>
|
<OEMName>Quickemu Project</OEMName>
|
||||||
|
<ProductKey>W269N-WFGWX-YVC9B-4J6C9-T83GX</ProductKey>
|
||||||
</component>
|
</component>
|
||||||
<component name="Microsoft-Windows-SQMApi"
|
<component name="Microsoft-Windows-SQMApi" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
processorArchitecture="amd64"
|
|
||||||
publicKeyToken="31bf3856ad364e35"
|
|
||||||
language="neutral"
|
|
||||||
versionScope="nonSxS"
|
|
||||||
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
||||||
<CEIPEnabled>0</CEIPEnabled>
|
<CEIPEnabled>0</CEIPEnabled>
|
||||||
</component>
|
</component>
|
||||||
</settings>
|
</settings>
|
||||||
|
|
||||||
<settings pass="windowsPE">
|
<settings pass="windowsPE">
|
||||||
<component name="Microsoft-Windows-Setup"
|
<component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
processorArchitecture="amd64"
|
|
||||||
publicKeyToken="31bf3856ad364e35"
|
|
||||||
language="neutral"
|
|
||||||
versionScope="nonSxS"
|
|
||||||
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
||||||
<Diagnostics>
|
<Diagnostics>
|
||||||
<OptIn>false</OptIn>
|
<OptIn>false</OptIn>
|
||||||
</Diagnostics>
|
</Diagnostics>
|
||||||
@ -1518,18 +1658,17 @@ function unattended_windows() {
|
|||||||
</UpgradeData>
|
</UpgradeData>
|
||||||
<UserData>
|
<UserData>
|
||||||
<AcceptEula>true</AcceptEula>
|
<AcceptEula>true</AcceptEula>
|
||||||
|
<FullName>Quickemu</FullName>
|
||||||
|
<Organization>Quickemu Project</Organization>
|
||||||
|
<!-- https://docs.microsoft.com/en-us/windows-server/get-started/kms-client-activation-keys -->
|
||||||
<ProductKey>
|
<ProductKey>
|
||||||
<Key>VK7JG-NPHTM-C97JM-9MPGT-3V66T</Key>
|
<Key>W269N-WFGWX-YVC9B-4J6C9-T83GX</Key>
|
||||||
<WillShowUI>Never</WillShowUI>
|
<WillShowUI>Never</WillShowUI>
|
||||||
</ProductKey>
|
</ProductKey>
|
||||||
</UserData>
|
</UserData>
|
||||||
</component>
|
</component>
|
||||||
|
|
||||||
<component name="Microsoft-Windows-PnpCustomizationsWinPE"
|
<component name="Microsoft-Windows-PnpCustomizationsWinPE" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" processorArchitecture="amd64" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
publicKeyToken="31bf3856ad364e35"
|
|
||||||
language="neutral"
|
|
||||||
versionScope="nonSxS"
|
|
||||||
processorArchitecture="amd64">
|
|
||||||
<!--
|
<!--
|
||||||
This makes the VirtIO drivers available to Windows, assuming that
|
This makes the VirtIO drivers available to Windows, assuming that
|
||||||
the VirtIO driver disk is available as drive E:
|
the VirtIO driver disk is available as drive E:
|
||||||
@ -1577,26 +1716,46 @@ function unattended_windows() {
|
|||||||
</settings>
|
</settings>
|
||||||
|
|
||||||
<settings pass="oobeSystem">
|
<settings pass="oobeSystem">
|
||||||
<component name="Microsoft-Windows-Shell-Setup"
|
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
processorArchitecture="amd64"
|
<AutoLogon>
|
||||||
publicKeyToken="31bf3856ad364e35"
|
<Password>
|
||||||
language="neutral"
|
<Value>quickemu</Value>
|
||||||
versionScope="nonSxS"
|
<PlainText>true</PlainText>
|
||||||
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
|
</Password>
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
<Enabled>true</Enabled>
|
||||||
|
<Username>Quickemu</Username>
|
||||||
|
</AutoLogon>
|
||||||
|
<DisableAutoDaylightTimeSet>false</DisableAutoDaylightTimeSet>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
<HideLocalAccountScreen>false</HideLocalAccountScreen>
|
<HideLocalAccountScreen>true</HideLocalAccountScreen>
|
||||||
<HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
|
<HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
|
||||||
<HideOnlineAccountScreens>false</HideOnlineAccountScreens>
|
<HideOnlineAccountScreens>true</HideOnlineAccountScreens>
|
||||||
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
|
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
|
||||||
|
<NetworkLocation>Home</NetworkLocation>
|
||||||
<ProtectYourPC>3</ProtectYourPC>
|
<ProtectYourPC>3</ProtectYourPC>
|
||||||
<SkipUserOOBE>false</SkipUserOOBE>
|
<SkipUserOOBE>true</SkipUserOOBE>
|
||||||
<SkipMachineOOBE>false</SkipMachineOOBE>
|
<SkipMachineOOBE>true</SkipMachineOOBE>
|
||||||
<VMModeOptimizations>
|
<VMModeOptimizations>
|
||||||
<SkipWinREInitialization>true</SkipWinREInitialization>
|
<SkipWinREInitialization>true</SkipWinREInitialization>
|
||||||
</VMModeOptimizations>
|
</VMModeOptimizations>
|
||||||
</OOBE>
|
</OOBE>
|
||||||
|
<UserAccounts>
|
||||||
|
<LocalAccounts>
|
||||||
|
<LocalAccount wcm:action="add">
|
||||||
|
<Password>
|
||||||
|
<Value>quickemu</Value>
|
||||||
|
<PlainText>true</PlainText>
|
||||||
|
</Password>
|
||||||
|
<Description>Quickemu</Description>
|
||||||
|
<DisplayName>Quickemu</DisplayName>
|
||||||
|
<Group>Administrators</Group>
|
||||||
|
<Name>Quickemu</Name>
|
||||||
|
</LocalAccount>
|
||||||
|
</LocalAccounts>
|
||||||
|
</UserAccounts>
|
||||||
|
<RegisteredOrganization>Quickemu Project</RegisteredOrganization>
|
||||||
|
<RegisteredOwner>Quickemu</RegisteredOwner>
|
||||||
<FirstLogonCommands>
|
<FirstLogonCommands>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<CommandLine>msiexec /i E:\guest-agent\qemu-ga-x86_64.msi /quiet /passive /qn</CommandLine>
|
<CommandLine>msiexec /i E:\guest-agent\qemu-ga-x86_64.msi /quiet /passive /qn</CommandLine>
|
||||||
@ -1690,9 +1849,17 @@ function get_windows() {
|
|||||||
dbg_windows "${DOWNLOAD_SHA1}"
|
dbg_windows "${DOWNLOAD_SHA1}"
|
||||||
DOWNLOAD_ID=$(echo "${DOWNLOAD_INFO}" | grep -oP '(?<=https:\/\/tb\.rg-adguard\.net/dl\.php\?go=)[0-9a-z]+')
|
DOWNLOAD_ID=$(echo "${DOWNLOAD_INFO}" | grep -oP '(?<=https:\/\/tb\.rg-adguard\.net/dl\.php\?go=)[0-9a-z]+')
|
||||||
dbg_windows "${DOWNLOAD_ID}"
|
dbg_windows "${DOWNLOAD_ID}"
|
||||||
DOWNLOAD_URL="https://tb.rg-adguard.net/dl.php?go=${DOWNLOAD_ID}"
|
REDIRECT_URL="https://tb.rg-adguard.net/dl.php?go=${DOWNLOAD_ID}"
|
||||||
|
dbg_windows "${REDIRECT_URL}"
|
||||||
|
DOWNLOAD_URL=$(curl --head --silent --write-out "%{redirect_url}\n" --output /dev/null "${REDIRECT_URL}")
|
||||||
dbg_windows "${DOWNLOAD_URL}"
|
dbg_windows "${DOWNLOAD_URL}"
|
||||||
|
|
||||||
|
MS_BASE_URL="https://software.download.prss.microsoft.com/"
|
||||||
|
if [[ ! ${DOWNLOAD_URL} =~ ^${MS_BASE_URL} ]]; then
|
||||||
|
echo "Download URL not leading to Microsoft CDN"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Downloading ${WINDOWS_NAME}..."
|
echo "Downloading ${WINDOWS_NAME}..."
|
||||||
web_get "${DOWNLOAD_URL}" "${VM_PATH}" "${FILE_NAME}"
|
web_get "${DOWNLOAD_URL}" "${VM_PATH}" "${FILE_NAME}"
|
||||||
|
|
||||||
@ -1738,6 +1905,10 @@ create_vm() {
|
|||||||
unzip "${VM_PATH}"/"${ISO}" -d "${VM_PATH}"
|
unzip "${VM_PATH}"/"${ISO}" -d "${VM_PATH}"
|
||||||
ISO=$(ls "${VM_PATH}" | grep -i '.iso')
|
ISO=$(ls "${VM_PATH}" | grep -i '.iso')
|
||||||
fi
|
fi
|
||||||
|
if [[ ${OS} == "batocera" ]] && [[ ${ISO} =~ ".gz" ]]; then
|
||||||
|
gzip -d "${VM_PATH}/${ISO}"
|
||||||
|
ISO="${ISO/.gz/}"
|
||||||
|
fi
|
||||||
if [ "${IMAGE_TYPE}" == "img" ] && [[ "${ISO}" =~ ".gz" ]]; then
|
if [ "${IMAGE_TYPE}" == "img" ] && [[ "${ISO}" =~ ".gz" ]]; then
|
||||||
gzip -d "${VM_PATH}/${ISO}"
|
gzip -d "${VM_PATH}/${ISO}"
|
||||||
ISO="${ISO/.gz/}"
|
ISO="${ISO/.gz/}"
|
||||||
@ -1747,6 +1918,11 @@ create_vm() {
|
|||||||
ISO="${ISO/.gz/}"
|
ISO="${ISO/.gz/}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ ${OS} == "reactos" ] && [[ $ISO =~ ".zip" ]]; then
|
||||||
|
unzip ${VM_PATH}/${ISO} -d ${VM_PATH}
|
||||||
|
ISO=$(ls ${VM_PATH} | grep -i '.iso' | grep -v '.zip')
|
||||||
|
fi
|
||||||
|
|
||||||
make_vm_config "${ISO}"
|
make_vm_config "${ISO}"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1815,6 +1991,14 @@ if [ -n "${2}" ]; then
|
|||||||
echo " - Setting edition to: ${EDITION}"
|
echo " - Setting edition to: ${EDITION}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
# Handle odd missing fedora cominations
|
||||||
|
if [[ $OS == fedora ]] ; then
|
||||||
|
if [[ ${RELEASE} = "33" && ${EDITION} = "i3" ]] || [[ ${RELEASE} = "34" && ${EDITION} = "Cinnamon" ]] ; then
|
||||||
|
echo "ERROR! Unsupported combination"
|
||||||
|
echo " Fedora 33 i3 and Fedora 34 Cinnamon are not available, please choose another Release or Edition"
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
VM_PATH="${OS}-${RELEASE}-${EDITION}"
|
VM_PATH="${OS}-${RELEASE}-${EDITION}"
|
||||||
validate_release "releases_${OS}"
|
validate_release "releases_${OS}"
|
||||||
@ -1827,6 +2011,10 @@ if [ -n "${2}" ]; then
|
|||||||
# Ubuntu doesn't use create_vm()
|
# Ubuntu doesn't use create_vm()
|
||||||
validate_release releases_ubuntu
|
validate_release releases_ubuntu
|
||||||
get_ubuntu
|
get_ubuntu
|
||||||
|
elif [[ "${OS}" == *"deepin"* ]]; then
|
||||||
|
# deepin doesn't use create_vm()
|
||||||
|
validate_release releases_deepin
|
||||||
|
get_deepin
|
||||||
elif [ "${OS}" == "windows" ]; then
|
elif [ "${OS}" == "windows" ]; then
|
||||||
LANG="English International"
|
LANG="English International"
|
||||||
if [ -n "${3}" ]; then
|
if [ -n "${3}" ]; then
|
||||||
|
85
windowskey
Executable file
85
windowskey
Executable file
@ -0,0 +1,85 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
|
||||||
|
import html.parser
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import urllib.request
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
Download Windows product keys from MicroSoft
|
||||||
|
"""
|
||||||
|
|
||||||
|
key_page_url = "https://docs.microsoft.com/en-us/windows-server/get-started/kms-client-activation-keys"
|
||||||
|
|
||||||
|
|
||||||
|
def usage():
|
||||||
|
script = os.path.basename(sys.argv[0])
|
||||||
|
message = f"""Usage: {script} [windows-version]
|
||||||
|
|
||||||
|
To specify the version of Windows you'd like, pass a string that matches the
|
||||||
|
name of the operating system you'd like to download. Case doesn't matter, so
|
||||||
|
you can use "windows 10" or "Windows 10".
|
||||||
|
|
||||||
|
e.g.
|
||||||
|
|
||||||
|
{script} "Windows 10"
|
||||||
|
{script} "enterprise"
|
||||||
|
|
||||||
|
"""
|
||||||
|
print(message, file=sys.stderr)
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
|
||||||
|
def download_page(url):
|
||||||
|
response = urllib.request.urlopen(url)
|
||||||
|
return response.read().decode("utf-8")
|
||||||
|
|
||||||
|
|
||||||
|
class WindowsKeyPageParser(html.parser.HTMLParser):
|
||||||
|
def __init__(self, *, convert_charrefs=True):
|
||||||
|
super().__init__(convert_charrefs=True)
|
||||||
|
self.product_keys = {}
|
||||||
|
self.parsing_os = False
|
||||||
|
|
||||||
|
def handle_starttag(self, tag, attrs):
|
||||||
|
self.parsing_os = tag == "td"
|
||||||
|
|
||||||
|
def handle_endtag(self, tag):
|
||||||
|
self.parsing_os = False
|
||||||
|
|
||||||
|
def handle_data(self, data):
|
||||||
|
if self.parsing_os:
|
||||||
|
self.stash_table_cell(data)
|
||||||
|
|
||||||
|
def stash_table_cell(self, data):
|
||||||
|
if "Windows" in data:
|
||||||
|
self.current_os = data
|
||||||
|
else:
|
||||||
|
product_key = data
|
||||||
|
self.product_keys[self.current_os] = product_key
|
||||||
|
|
||||||
|
|
||||||
|
def find_keys_for_all_versions(markup):
|
||||||
|
parser = WindowsKeyPageParser()
|
||||||
|
parser.feed(markup)
|
||||||
|
return parser.product_keys
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
try:
|
||||||
|
arg = sys.argv[1]
|
||||||
|
except IndexError:
|
||||||
|
windows_version = ""
|
||||||
|
else:
|
||||||
|
if arg in ["-h", "--help"]:
|
||||||
|
usage()
|
||||||
|
windows_version = arg
|
||||||
|
|
||||||
|
markup = download_page(key_page_url)
|
||||||
|
product_keys = find_keys_for_all_versions(markup)
|
||||||
|
|
||||||
|
for os_name, product_key in product_keys.items():
|
||||||
|
if windows_version.lower() in os_name.lower():
|
||||||
|
print(f"{os_name}: {product_key}")
|
Loading…
Reference in New Issue
Block a user