diff --git a/README.md b/README.md index f5a0329..fa14a60 100644 --- a/README.md +++ b/README.md @@ -253,32 +253,28 @@ macos_release="catalina" There are some considerations when running macOS via Quickemu. - * `quickemu` will automatically download the required [OpenCore](https://github.com/acidanthera/OpenCorePkg) - bootloader and OVMF firmware from [OSX-KVM](https://github.com/kholia/OSX-KVM). * Supported macOS releases: * High Sierra * Mojave * Catalina **(Recommended)** * Big Sur * Monterey - * Optimised by default + * `quickemu` will automatically download the required [OpenCore](https://github.com/acidanthera/OpenCorePkg) + bootloader and OVMF firmware from [OSX-KVM](https://github.com/kholia/OSX-KVM). + * Optimised by default, but no GPU acceleration is available. * Host CPU vendor is detected and guest CPU is optimised accordingly. * [VirtIO Block Media](https://www.kraxel.org/blog/2019/06/macos-qemu-guest/) is used for the system disk where supported. * [VirtIO `usb-tablet`](http://philjordan.eu/osx-virt/) is used for the mouse. * VirtIO Network (`virtio-net`) is supported and enabled on macOS Big Sur and newer but previous releases use `vmxnet3`. * VirtIO Memory Ballooning is supported and enabled on macOS Big Sur and newer but disabled for other support macOS releases. - * USB host pass-through is: + * USB host and SPICE pass-through is: * UHCI (USB 2.0) on macOS Catalina and earlier. * XHCI (USB 3.0) on macOS Big Sur and newer. * Display resolution can only be changed via macOS System Preferences. * Full Duplex audio works on macOS High Sierra, Mojave and Catalina. * **macOS Big Sur and Monterey have no audio at all**. - * File sharing between guest and host is available via [virtio-9p](https://wiki.qemu.org/Documentation/9psetup). - * **SPICE has limited support on macOS**: - * Copy/paste via SPICE agent is not available. - * File sharing via SPICE webdavd is not available. - * USB pass-through via SPICE is not available. - * Smartcard pass-through is not available. + * File sharing between guest and host is available via [virtio-9p](https://wiki.qemu.org/Documentation/9psetup) and [SPICE webdavd](https://gitlab.gnome.org/GNOME/phodav/-/merge_requests/24). + * Copy/paste via SPICE agent is **not available on macOS**. ## Windows 8.1, 10 & 11 Guests diff --git a/quickemu b/quickemu index 423ed17..6e3e78f 100755 --- a/quickemu +++ b/quickemu @@ -740,9 +740,16 @@ function vm_boot() { SPICE="${SPICE},port=${SPICE_PORT}" fi - # Reference: https://gitlab.gnome.org/GNOME/phodav/-/issues/5 - if [ "${guest_os}" != "macos" ] && [ -n "${PUBLIC}" ]; then - echo " - WebDAV: On guest: dav://localhost:9843/" + if [ -n "${PUBLIC}" ]; then + case ${guest_os} in + macos) + # Reference: https://gitlab.gnome.org/GNOME/phodav/-/issues/5 + echo " - WebDAV: On guest: build spice-webdavd (https://gitlab.gnome.org/GNOME/phodav/-/merge_requests/24)" + echo " - WebDAV: On guest: Finder -> Connect to Server -> http://localhost:9843/" + ;; + *) + echo " - WebDAV: On guest: dav://localhost:9843/";; + esac fi fi @@ -808,8 +815,21 @@ function vm_boot() { -device virtserialport,chardev=agent0,name=org.qemu.guest_agent.0 -chardev spicevmc,id=vdagent0,name=vdagent -device virtserialport,chardev=vdagent0,name=com.redhat.spice.0 + -chardev spiceport,id=webdav0,name=org.spice-space.webdav.0 + -device virtserialport,chardev=webdav0,name=org.spice-space.webdav.0 -device virtio-rng-pci,rng=rng0 -object rng-random,id=rng0,filename=/dev/urandom + -device ${USB_HOST_PASSTHROUGH_CONTROLLER},id=spicepass + -chardev spicevmc,id=usbredirchardev1,name=usbredir + -device usb-redir,chardev=usbredirchardev1,id=usbredirdev1 + -chardev spicevmc,id=usbredirchardev2,name=usbredir + -device usb-redir,chardev=usbredirchardev2,id=usbredirdev2 + -chardev spicevmc,id=usbredirchardev3,name=usbredir + -device usb-redir,chardev=usbredirchardev3,id=usbredirdev3 + -device pci-ohci,id=smartpass + -device usb-ccid + -chardev spicevmc,id=ccid,name=smartcard + -device ccid-card-passthru,chardev=ccid -monitor none -serial mon:stdio) @@ -893,23 +913,6 @@ function vm_boot() { -drive id=SystemDisk,if=none,format=qcow2,file="${disk_img}" ${STATUS_QUO}) fi - if [ "${guest_os}" != "macos" ]; then - # shellcheck disable=SC2054,SC2206 - args+=(-device ${USB_HOST_PASSTHROUGH_CONTROLLER},id=spicepass - -chardev spicevmc,id=usbredirchardev1,name=usbredir - -device usb-redir,chardev=usbredirchardev1,id=usbredirdev1 - -chardev spicevmc,id=usbredirchardev2,name=usbredir - -device usb-redir,chardev=usbredirchardev2,id=usbredirdev2 - -chardev spicevmc,id=usbredirchardev3,name=usbredir - -device usb-redir,chardev=usbredirchardev3,id=usbredirdev3 - -device usb-ccid - -chardev spicevmc,id=ccid,name=smartcard - -device ccid-card-passthru,chardev=ccid - -device virtio-serial-pci - -chardev spiceport,id=webdav0,name=org.spice-space.webdav.0 - -device virtserialport,chardev=webdav0,name=org.spice-space.webdav.0) - fi - # https://wiki.qemu.org/Documentation/9psetup # https://askubuntu.com/questions/772784/9p-libvirt-qemu-share-modes if [ "${guest_os}" != "windows" ] && [ -n "${PUBLIC}" ]; then