I am fiddling with migrating from VirtualBox to QEmu.
I have converted 2 existing Win10 VirtualBox machines to QEmu and they boot just fine.
I connect using the 'spice' client rather than using 'virt-manager' after having setup the display server as 'spice' rather than 'vnc'
I have installed spice-guest-tools in the Windows 10 Guest
I have uninstalled Oracle Guest Additions
Everything seems to be working just swimmingly, except, if I increase the size of the guest window, the guest does not change resolution.
It will scale (as in stretch and compress) but it does not automatically change resolution of the guest to match the window size, like the VirtualBox Guest still does.
I can use the Windows 10 Guest Display resolution controls to change the resolution, however.
My 'video' is 'Virtio'
My 'display' is spice server, but I have not got OpenGL enabled because my QEMU binary does not support 3d acceleration.
My physical Video card is an nVidia with the proprietary nvidia driver installed.
I am running current (as at 18-Nov-2023) versions of all software.
Happy to provide additional info, if requested.
Actual software installed is listed below, and I followed the Gentoo wiki with regard to Kernel settings for qemu, re-built and re-booted.
I do still have VirtualBox installed, along with it's modules, if that makes any difference.
Oh, and I use FluxBox as my window manager.
Code: Select all
root@Lyalls-PC ~
# eix --installed qemu
[I] acct-group/qemu
Available versions: 0-r2
Installed versions: 0-r2(09:58:58 18/11/23)
Description: System group: qemu
[I] acct-user/qemu
Available versions: 0-r2
Installed versions: 0-r2(09:59:45 18/11/23)
Description: System user: qemu
[I] app-emulation/qemu
Available versions: 7.2.4^t ~7.2.6^t 8.0.4^t ~8.0.5^t ~8.1.2^t **9999*l^t {accessibility +aio alsa bpf bzip2 capstone +curl debug (+)doc +fdt +filecaps fuse glusterfs +gnutls gtk infiniband io-uring iscsi jack jemalloc +jpeg keyutils lzo multipath ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs pipewire plugins +png pulseaudio python rbd sasl sdl sdl-image +seccomp selinux +slirp smartcard snappy spice ssh static static-user systemtap test udev usb usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen zstd PYTHON_TARGETS="python3_10 python3_11 python3_12" QEMU_SOFTMMU_TARGETS="aarch64 alpha arm avr cris hppa i386 loongarch64 m68k microblaze microblazeel mips mips64 mips64el mipsel nios2 or1k ppc ppc64 riscv32 riscv64 rx s390x sh4 sh4eb sparc sparc64 tricore x86_64 xtensa xtensaeb" QEMU_USER_TARGETS="aarch64 aarch64_be alpha arm armeb cris hexagon hppa i386 loongarch64 m68k microblaze microblazeel mips mips64 mips64el mipsel mipsn32 mipsn32el nios2 or1k ppc ppc64 ppc64le riscv32 riscv64 s390x sh4 sh4eb sparc sparc64 sparc32plus x86_64 xtensa xtensaeb"}
Installed versions: 8.0.4^t(15:58:07 18/11/23)(aio alsa bzip2 curl fdt filecaps gnutls gtk jpeg ncurses nls opengl oss pam pin-upstream-blobs png pulseaudio sdl seccomp slirp spice udev usb vhost-net vnc xattr -accessibility -bpf -capstone -debug -doc -fuse -glusterfs -infiniband -io-uring -iscsi -jack -jemalloc -lzo -multipath -nfs -numa -plugins -python -rbd -sasl -sdl-image -selinux -smartcard -snappy -ssh -static-user -systemtap -test -usbredir -vde -virgl -virtfs -vte -xen -zstd PYTHON_TARGETS="python3_11 -python3_10 -python3_12" QEMU_SOFTMMU_TARGETS="x86_64 -aarch64 -alpha -arm -avr -cris -hppa -i386 -loongarch64 -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -nios2 -or1k -ppc -ppc64 -riscv32 -riscv64 -rx -s390x -sh4 -sh4eb -sparc -sparc64 -tricore -xtensa -xtensaeb" QEMU_USER_TARGETS="-aarch64 -aarch64_be -alpha -arm -armeb -cris -hexagon -hppa -i386 -loongarch64 -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -mipsn32 -mipsn32el -nios2 -or1k -ppc -ppc64 -ppc64le -riscv32 -riscv64 -s390x -sh4 -sh4eb -sparc -sparc64 -sparc32plus -x86_64 -xtensa -xtensaeb")
Homepage: https://www.qemu.org https://www.linux-kvm.org
Description: QEMU + Kernel-based Virtual Machine userland tools
Found 3 matches
root@Lyalls-PC ~
# eix --installed spice
[I] app-emulation/spice
Available versions: 0.15.1-r1^t 0.15.2^t **9999*l^t {gstreamer lz4 sasl smartcard static-libs test}
Installed versions: 0.15.2^t(15:50:18 18/11/23)(-gstreamer -lz4 -sasl -smartcard -static-libs -test)
Homepage: https://www.spice-space.org/
Description: SPICE server
[I] app-emulation/spice-protocol
Available versions: 0.14.1 0.14.3 0.14.4 **9999*l
Installed versions: 0.14.4(10:20:52 18/11/23)
Homepage: https://spice-space.org/
Description: Headers defining the SPICE protocol
[I] net-misc/spice-gtk
Available versions: 0.42-r3 **9999*l {gtk-doc +gtk3 +introspection lz4 mjpeg policykit sasl smartcard usbredir vala valgrind wayland webdav}
Installed versions: 0.42-r3(10:21:57 18/11/23)(gtk3 introspection policykit usbredir wayland -gtk-doc -lz4 -mjpeg -sasl -smartcard -vala -valgrind -webdav)
Homepage: https://www.spice-space.org https://cgit.freedesktop.org/spice/spice-gtk/
Description: Set of GObject and Gtk objects for connecting to Spice servers and a client GUI
Found 3 matches
root@Lyalls-PC ~
# eix --installed virt-manager
[I] app-emulation/virt-manager
Available versions: 4.1.0^t **9999*l^t {gui policykit sasl test PYTHON_SINGLE_TARGET="python3_10 python3_11"}
Installed versions: 4.1.0^t(10:34:21 18/11/23)(gui policykit -sasl -test PYTHON_SINGLE_TARGET="python3_11 -python3_10")
Homepage: https://virt-manager.org https://github.com/virt-manager/virt-manager
Description: A graphical tool for administering virtual machines
root@Lyalls-PC ~
# Resizing the window up to a certain point seems to work, but once I exceed roughty 1.5 monitors wide (I have 4 monitors in a 2x2 grid), the guest does not automatically resize.
If I resize to less than roughly 1.5 monitors wide, the guest will resize down.
So, I cannot make my guest span 2 HD monitors (I don't have 4k or 8k)
However, I have found 'virt-viewer' and having added a second "Video QXL" monitor to my windows 10 guest hardware and setting one of them as having 2 heads, I can have two heads open on the VM, which is close enough
This has been done using 'virt-manager', which, apparently does not support multiple heads, whereas 'virt-viewer' does.

