Hello,
I recently tried nested virtualization using kvm/qemu with virt-manager. on artix open-rc.
On the bare-metal host, virtualization works using the QXL video driver or GPU passthrough.
However, using virtio does not.
The same when I try any configuration inside the guest OS when trying to start a vm there. Even QXL does not work there.
The error message I get is:
«internal error: QEMU unexpectedly closed the monitor (vm='test'): 2024-01-05T01:51:24.957117Z qemu-system-x86_64: warning: This family of AMD CPU doesn't support hyperthreading(2)
Please configure -smp options properly or try enabling topoext feature.
2024-01-05T01:51:24.993612Z qemu-system-x86_64: -device {"driver":"virtio-vga-gl","id":"video0","max_outputs":1,"bus":"pcie.0","addr":"0x1"}: opengl is not available»
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 72, in cb_wrapper
callback(asyncjob, *args, **kwargs)
File "/usr/share/virt-manager/virtManager/createvm.py", line 2008, in _do_async_install
installer.start_install(guest, meter=meter)
File "/usr/share/virt-manager/virtinst/install/installer.py", line 695, in start_install
domain = self._create_guest(
^^^^^^^^^^^^^^^^^^^
File "/usr/share/virt-manager/virtinst/install/installer.py", line 637, in _create_guest
domain = self.conn.createXML(initial_xml or final_xml, 0)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/libvirt.py", line 4523, in createXML
raise libvirtError('virDomainCreateXML() failed')
libvirt.libvirtError: internal error: QEMU unexpectedly closed the monitor (vm='test'): 2024-01-05T01:51:24.957117Z qemu-system-x86_64: warning: This family of AMD CPU doesn't support hyperthreading(2)
Please configure -smp options properly or try enabling topoext feature.
2024-01-05T01:51:24.993612Z qemu-system-x86_64: -device {"driver":"virtio-vga-gl","id":"video0","max_outputs":1,"bus":"pcie.0","addr":"0x1"}: opengl is not available
things I tried:
I checked /proc/cpuinfo and the cpu does support virtualization
configuring to use only one thread per core makes the first error go away but not the second with the gpu driver, and it should still work anyway.
starting virtio gpu drivers with "sudo modprobe virtio_gpu" enables the bare-metal host to start a vm with virtio gfx drivers, but without 3d acceleration. In the guest OS nothing changed.
using glxgears shows that openGL is supported on both host and guest.
the cpu configuration is set to host-passthrough btw.
The same setup also worked on Mint and Arch so it has to be something Artix does different. If anyone can help it would be appreciated.
Virtio video is broken since the recent qemu 8.2 release.
artist
virtio-vga-gl still works:
qemu-system-x86_64 -enable-kvm -cpu host -smp cores=4 -m 4G -vga none -device virtio-vga-gl -display sdl,gl=on
I tried downgrading to 8.1.2-1 and that seemed to improve behaviour although I still have some issues.The downgrade was at 2023/10/07 all of the qemu/libvirt/virt-* packages.
I use virt-manager, but it seems hard to work out which of the many hardware options I should use. Arch linux has a good wiki for libvirt, but I am probably a bit stupid.
I patched qemu-hw-display-virtio-gpu and you might try again after pacman -U https://omniverse.artixlinux.org/x86_64/qemu-hw-display-virtio-gpu-8.2.0-1-x86_64.pkg.tar.zst
artist