Return to Level1Techs.com

Virt-manager "Error: Host does not support any virtualization options" But SVM is enabled?

Greeting all,

I have excitedly setup my new Ryzen 3000 series build and began following the guides to setup Looking Glass. I’ve been following the Arch Wiki up to here (Setting_up_an_OVMF-based_guest_VM) but i’ve unfortunately become stuck. No matter what i do when i open virt-manager and go to create a new VM i’m presented with a window that says.

"Connection: QEMU/KVM

Error: Host does not support any virtualization options"

I’m a bit stumped as everything has been working so far, in a nut shell i’ve done the following:

  • Enabled SVM, IOMMU, and SR-IOV in BIOS
  • Added my user to kvm and libvirt groups
  • Tried running virt-manager as root to see if there is any difference
  • Checked kernel modules are loading
  • Been able to successfully setup my target pass through GPU with vfio-pci
  • Checked CPU reports VM extensions as supported

Just wondering if anyone else has seen this before could this be something specific to Ryzen?

System Specs:
OS: Arch 5.4.10-arch1-1
CPU: AMD Ryzen 9 3900X
MB: ASUS Prime X570-PRO
RAM: 32GB
GPU (Host): AMD RX570
GPU (Passthrough): NVIDIA 2080 Super
Disks: Yes
PSU: Yes
Sound Card: Yes

Quick update!

I managed to check the libvirtd logs and found the following entries

Jan 12 13:53:13 n00p libvirtd[8147]: hostname: n00p
Jan 12 13:53:13 n00p libvirtd[8147]: Cannot check dnsmasq binary /usr/bin/dnsmasq: No such file or directory
Jan 12 13:53:13 n00p libvirtd[8147]: direct firewall backend requested, but /sbin/ebtables is not available: No such file or directory
Jan 12 13:53:13 n00p libvirtd[8147]: internal error: Failed to initialize a valid firewall backend
Jan 12 13:53:13 n00p libvirtd[8147]: internal error: Failed to find path for dmidecode binary
Jan 12 13:53:13 n00p libvirtd[8147]: internal error: Failed to start QEMU binary /usr/bin/qemu-system-x86_64 for probing: /usr/bin/qemu-system-x86_64:  symbol lookup error: /usr/qemu-system-x86_64 for probing: /usr/bin/qemu-system-x86_64: symbol lookup error: /usr/lib/libvirglrenderer.so.1: undefined symbol: gbm_bo_unmap
Jan 12 13:53:13 n00p libvirtd[8147]: Failed to probe capabilities for /usr/bin/qemu-system-x86_64: internal error: Failed to start QEMU binary /usr/bin/qemu-system-x86_64: internal error: Failed to start QEMU binary /usr/bin/qemu-system-x86_64 for probing: /usr/bin/qemu-system-x86_64: symbol lookup error: /usr/lib/libvirglrenderer.so.1: undefined symbol: gbm_bo_unmap
Jan 12 13:53:13 n00p libvirtd[8147]: internal error: Failed to start QEMU binary /usr/bin/qemu-system-x86_64 for probing: /usr/bin/qemu-system-x86_64 for probing: /usr/bin/qemu-system-x86_64: symbol lookup error: /usr/lib/libvirglrenderer.so.1: undefined symbol: gbm_bo_unmap
Jan 12 13:53:13 n00p libvirtd[8147]: Failed to probe capabilities for /usr/bin/qemu-system-x86_64: internal error: Failed to start QEMU binary /usr/bin/qemu-system-x86_64: internal error: Failed to start QEMU binary /usr/bin/qemu-system-x86_64 for probing: /usr/bin/qemu-system-x86_64: symbol lookup error: /usr/lib/libvirglrenderer.so.1: undefined symbol: gbm_bo_unmap
Jan 12 13:53:13 n00p libvirtd[8147]: internal error: Failed to find path for dmidecode binary

Some trolling through reddit i found other people have encountered these errors. Just to be 100% sure i installed the following packages in case i needed them “dmidecode, spice, virglrenderer”. I also found some information specific to users running amdgpu-pro as this is known to cause the virglrenderer issues and i changed the libvirtd.service file adding the following line.

# Fix for "libvirt error: symbol lookup error: /usr/lib/libvirglrenderer.so.1: undefined symbol: gbm_bo_unmap"
Environment="LD_LIBRARY_PATH=/usr/lib"

As of right now if i run virt-manager as root it looks like i will be able to create a VM, running as my standard peasant user still no dice. I will continue to work on the issues and update the thread with any new information. If anyone has any tips that could come in handy more than happy to hear them.

You are missing ebtables - to get a working libvirt setup in Arch:

pacman -S ovmf libvirt qemu ebtables bridge-utils virt-manager

sudo gpasswd -a $USER libvirt

sudo systemctl enable virtlogd.socket
sudo systemctl enable libvirtd

sudo reboot # (or virbr0 cannot be started)

I also edit /etc/libvirt/qemu.conf & set user="my_username"

You can then run virt-manager as a $USER

So i’ve made some progress here, i did install the packages as mention so the logs look good when libvirtd starts.

Jan 14 11:50:33 n00p systemd[1]: Started Virtualization daemon.
Jan 14 11:50:33 n00p dnsmasq[1359]: read /etc/hosts - 3 addresses
Jan 14 11:50:33 n00p dnsmasq[1359]: read /var/lib/libvirt/dnsmasq/default.addnhosts - 0 addresses
Jan 14 11:50:33 n00p dnsmasq-dhcp[1359]: read /var/lib/libvirt/dnsmasq/default.hostsfile

I managed to get Windows installed on a VM by continuing to follow the guide on the Arch wiki. Got my GPU passthrough working and was able to run the Heaven benchmark. Great! right?

Well not really because it all suddenly stopped working, i wasn’t getting anything on my passthrough monitor i managed to see on the QXL adapter the Windows VM was boot looping with a BSOD VIDEO_TDR_FAILURE caused by the nVidia drivers. I came across a reddit post in /r/vfio that suggests adding <ioapic driver='kvm'/> to the machine config but it does not help :frowning:

I’ve gone as far as creating a new VM and trying everything again in case my original was busted somehow installed a fresh Windows 10 1909 but i’m still getting the same boot loops.

Any tips as to where its all gone wrong? I’m starting to run out of ideas.

Interestingly I noticed I could see grub coming through the nvidia card on boot. I shutdown, removed the HDMI and restarted. Fired up the VM and then attached the HDMI cable, suddenly its working O.o I’ll have to do some more playing around to be sure if it was related to the HDMI cable and GRUB. What the!?

The grub you see is the video output before vfio takes control of the GPU during the initramfs loading.

The Gigabyte Aorus x570 motherboards are good for vfio - they let you choose the gpu to boot from.

Yeah i’ll have to see if i can make any adjustments anywhere for now with all my testing i’m happy to just remember to boot without HDMI connected to the 2080.

Does it matter where in the file it’s placed in? (I’m assuming it doesn’t)

I’m getting the same error:

Blockquote qemu-system-x86_64: symbol lookup error: /usr/lib/libvirglrenderer.so.1: undefined symbol: gbm_bo_unmap

The additional line didnt fix it for me :frowning: