Merge branch 'main' into popos
This commit is contained in:
commit
1ecc5c092a
25
README.md
25
README.md
@ -28,12 +28,11 @@ comprehensive support for macOS and Windows**.
|
||||
|
||||
## Features
|
||||
|
||||
* macOS High Sierra, Mojave, Catalina and Big Sur
|
||||
* Windows 8.1, 10 and 11 including TPM 2.0
|
||||
* Ubuntu, and all the official flavours, supported by `quickget`
|
||||
* Fedora, supported by `quickget`
|
||||
* linuxmint Cinnamon, MATE, and xfce, supported by `quickget`
|
||||
* openSUSE Leap, Tumbleweed and MicroOS, supported by `quickget`
|
||||
* **macOS** High Sierra, Mojave, Catalina and Big Sur
|
||||
* **Windows** 8.1, 10 and 11 including TPM 2.0
|
||||
* [Ubuntu](https://ubuntu.com/desktop) and all the **[official Ubuntu flavours](https://ubuntu.com/download/flavours)**
|
||||
* [Fedora](https://getfedora.org/) & openSUSE ([Leap](https://get.opensuse.org/leap/), [Tumbleweed](https://get.opensuse.org/tumbleweed/),[MicroOS](https://microos.opensuse.org/))
|
||||
* [Linux Mint](https://linuxmint.com/) (Cinnamon, MATE, and XFCE)
|
||||
* Pop!_OS, supported by `quickget` (only with SPICE)
|
||||
* Full SPICE support including host/guest clipboard sharing
|
||||
* VirtIO-webdavd file sharing for Linux and Windows guests
|
||||
@ -250,6 +249,13 @@ and [Windows 11](https://www.microsoft.com/en-gb/software-download/windows11)
|
||||
along with the [VirtIO drivers for Windows](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/)
|
||||
and creates a virtual machine configuration.
|
||||
|
||||
**During the Windows install network interfaces are completely disabled!** This
|
||||
is to allow those users who want to create local accounts to do so. A side affect
|
||||
is that the first time **Windows boots with the QEMU network enabled it will blue
|
||||
screen, automatically restart and then start normally with fully functioning
|
||||
networking**.
|
||||
|
||||
|
||||
```bash
|
||||
quickget windows 11
|
||||
quickemu --vm windows-11.conf
|
||||
@ -549,13 +555,6 @@ The above uses the 2560x1440 screen to compute the size of the window, which
|
||||
Quickemu sizes to 2048x1152. Without the `--screen` option, Quickemu would have
|
||||
used the 1920x1080 monitor which results in a window size of 1664x936.
|
||||
|
||||
# TODO
|
||||
|
||||
- [ ] Add `spice-app` support via `virt-viewer`; *requires `virt-viewer` 8.0 or newer*
|
||||
- [ ] Add support for `ignore_msrs` for macOS. `echo "options kvm ignore_msrs=Y" >> /etc/modprobe.d/kvm.conf && update-initramfs -k all -u`
|
||||
- [ ] Add discrete GPU pass-through
|
||||
- [ ] Improve disk management
|
||||
|
||||
# References
|
||||
|
||||
Useful reference that assisted the development of Quickemu.
|
||||
|
25
quickemu
25
quickemu
@ -165,7 +165,6 @@ function vm_boot() {
|
||||
local MOUSE="usb-tablet"
|
||||
local NET_DEVICE="virtio-net"
|
||||
local OSK=""
|
||||
local QEMU_VER=""
|
||||
local USB_HOST_PASSTHROUGH_CONTROLLER="qemu-xhci"
|
||||
local VIDEO=""
|
||||
|
||||
@ -177,9 +176,9 @@ function vm_boot() {
|
||||
LSB_DESCRIPTION=$(lsb_release --description --short)
|
||||
fi
|
||||
|
||||
QEMU_VER=$(${QEMU} -version | head -n1 | cut -d' ' -f4 | cut -d'(' -f1)
|
||||
echo "Quickemu ${VERSION} starting ${VM} on ${LSB_DESCRIPTION} ${KERNEL_NODE}"
|
||||
echo " - QEMU: ${QEMU} v${QEMU_VER} on ${KERNEL_NAME} ${KERNEL_VER}"
|
||||
echo "Quickemu ${VERSION} using ${QEMU} v${QEMU_VER_LONG}"
|
||||
echo " - Host: ${LSB_DESCRIPTION} running ${KERNEL_NAME} ${KERNEL_VER} ${KERNEL_NODE}"
|
||||
echo " - Guest: Starting ${VM} as ${VMNAME}"
|
||||
|
||||
HOST_CPU_CORES=$(nproc --all)
|
||||
HOST_CPU_MODEL=$(lscpu | grep '^Model name:' | cut -d':' -f2 | sed 's/ //g')
|
||||
@ -687,7 +686,6 @@ function vm_boot() {
|
||||
-device usb-ehci,id=input
|
||||
-device usb-kbd,bus=input.0
|
||||
-device ${MOUSE},bus=input.0
|
||||
-device ${NET_DEVICE},netdev=nic -netdev ${NET},id=nic
|
||||
-audiodev pa,id=audio0,out.mixing-engine=off,out.stream-name=${LAUNCHER}-${VMNAME},in.stream-name=${LAUNCHER}-${VMNAME}
|
||||
-device intel-hda -device hda-duplex,audiodev=audio0
|
||||
-rtc base=localtime,clock=host,driftfix=slew
|
||||
@ -700,6 +698,15 @@ function vm_boot() {
|
||||
-monitor none
|
||||
-serial mon:stdio)
|
||||
|
||||
# Disables network interface during Windows install.
|
||||
# See https://github.com/wimpysworld/quickemu/issues/115
|
||||
if [ "${guest_os}" == "windows" ] && [ -n "${iso}" ]; then
|
||||
args+=(-nic none)
|
||||
else
|
||||
# shellcheck disable=SC2054,SC2206
|
||||
args+=(-device ${NET_DEVICE},netdev=nic -netdev ${NET},id=nic)
|
||||
fi
|
||||
|
||||
# Add the disks
|
||||
# - https://turlucode.com/qemu-disk-io-performance-comparison-native-or-threads-windows-10-version/
|
||||
if [[ "${boot}" == *"efi"* ]]; then
|
||||
@ -795,7 +802,6 @@ function vm_boot() {
|
||||
echo "${QEMU}" "${SHELL_ARGS}" >> "${VMDIR}/${VMNAME}.sh"
|
||||
|
||||
${QEMU} "${args[@]}" > "${VMDIR}/${VMNAME}.log" &
|
||||
echo -e " - Process: On host: killall ${VMNAME}\t(if a forced kill is required)"
|
||||
|
||||
# If output is 'none' then SPICE was requested.
|
||||
if [ ${OUTPUT} == "none" ]; then
|
||||
@ -908,9 +914,10 @@ if [ ! -e "${QEMU}" ] && [ ! -e "${QEMU_IMG}" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
QEMU_VER=$(${QEMU} -version | head -n1 | cut -d' ' -f4 | cut -d'(' -f1 | sed 's/\.//g' | cut -c1-2)
|
||||
if [ "${QEMU_VER}" -lt 60 ]; then
|
||||
echo "ERROR! Qemu 6.0.0 or newer is required, detected $(${QEMU} -version | head -n1 | cut -d' ' -f4 | cut -d'(' -f1)."
|
||||
QEMU_VER_LONG=$(${QEMU} -version | head -n1 | cut -d' ' -f4 | cut -d'(' -f1)
|
||||
QEMU_VER_SHORT=$(${QEMU} -version | head -n1 | cut -d' ' -f4 | cut -d'(' -f1 | sed 's/\.//g' | cut -c1-2)
|
||||
if [ "${QEMU_VER_SHORT}" -lt 60 ]; then
|
||||
echo "ERROR! Qemu 6.0.0 or newer is required, detected ${QEMU_VER_LONG}."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
14
quickget
14
quickget
@ -360,13 +360,13 @@ function make_vm_config() {
|
||||
if [[ "${OS}" == "freebsd" ]]; then
|
||||
GUEST="freebsd"
|
||||
IMAGE_TYPE="iso"
|
||||
elif [[ "${OS}" == *"fedora"* ]]; then
|
||||
elif [[ "${OS}" == "fedora" ]]; then
|
||||
GUEST="linux"
|
||||
IMAGE_TYPE="iso"
|
||||
elif [[ "${OS}" == *"linuxmint"* ]]; then
|
||||
elif [[ "${OS}" == "linuxmint" ]]; then
|
||||
GUEST="linux"
|
||||
IMAGE_TYPE="iso"
|
||||
elif [[ "${OS}" == *"opensuse"* ]]; then
|
||||
elif [[ "${OS}" == "opensuse" ]]; then
|
||||
GUEST="linux"
|
||||
IMAGE_TYPE="iso"
|
||||
elif [[ "${OS}" == "popos" ]]; then
|
||||
@ -815,13 +815,13 @@ VM_PATH="${OS}-${RELEASE}"
|
||||
|
||||
if [ "${OS}" == "macos" ]; then
|
||||
get_macos
|
||||
elif [[ "${OS}" == *"freebsd" ]]; then
|
||||
elif [[ "${OS}" == "freebsd" ]]; then
|
||||
get_freebsd
|
||||
elif [[ "${OS}" == *"fedora"* ]]; then
|
||||
elif [[ "${OS}" == "fedora" ]]; then
|
||||
get_fedora
|
||||
elif [[ "${OS}" == *"linuxmint"* ]]; then
|
||||
elif [[ "${OS}" == "linuxmint" ]]; then
|
||||
get_linuxmint
|
||||
elif [[ "${OS}" == *"opensuse"* ]]; then
|
||||
elif [[ "${OS}" == "opensuse" ]]; then
|
||||
get_opensuse
|
||||
elif [[ "${OS}" == "popos" ]]; then
|
||||
get_popos
|
||||
|
Loading…
Reference in New Issue
Block a user