PSA: Remember to turn on VT-d, or you'll get Error "-22"


PEBCAK. I forgot to turn on VT-d and got vfio-pci Error -22 errors.

Oddly, having VT-d off fooled me with vfio-pci still hooking onto everything BUT the GPU, so I thought it was a Nvidia problem. It wasn’t. It was VT-d was off.

If you’re getting Error -22, double check your BIOS if VT-d (or AMD’s equivalent) is on. It won’t be 100% clear if it’s off, except for GPUs throwing Error -22.


That’s extremely interesting that it managed to hook into anything. Are all the other devices on a PLX chip? Or is it a multi-socket board and some devices where on one chip while the GPU was on the other?

Virtualization technology was enabled, but VT-d was not. I guess that’s what partially made it work. I had proper configs too in modprobe.d and GRUB for hooking into what needed to be hooked, and the USB controller and NIC hooked on, but the GPU didn’t with VT-d off.

That’s what made me slightly confused. It didn’t matter to QEMU/KVM itself though cause once it sees VT-d is off upon launching a VM, it will refuse to boot cause it says it’s a “Unsupported system.”

That’s really interesting. I’m surprised you were able to get USB and nic passed through without vt-d

“Provisionally” hooked. It still won’t actually work when you launch a VM. That’s what confused me.

Oh now I understand what you mean. Hopefully a later version of KVM/QEMU puts a check upon provisioning those devices in the future