Libvirt USB passthrought via port

user_naa@lemmy.world to Linux@lemmy.ml – 23 points –

Hello! I need to create a VM and passthrought some host USB port to it. Sadly libvirt doesn't support QEMU built-in feature to use -hostport argument (which was added 10 years ago...). I tried to add custom arguments to domain (qemu:commandline) but this didn't work. When I just run qemu-system-x86_64 -device host-usb,hostbus=X,hostport=Y -usb everything works well. It seems like libvirt restricts some QEMU actions. How can I fix this? OS: Debian 12

7

I would personally look into buying a pcie USB card. You can easily passthough PCIe devices with minimal effort and it will work better

Uh probably not that helpful but I am somewhat sure that this was super easy to do from virt-manager (on Arch qemu & kvm, virtualizing Tiny11 )

No, this is not possible. Virt-manager is just a GUI over libvirt. For now libvirt doesn't support USB passthrought by port id, only by device id (which changes on each plug) or vendor id.

Not the person you were replying to, and don't understand exactly what you mean with port and device id. But if it changes every time, -ish, you plug it in, do you mean like /dev/sdX device names? If so, then maybe look at /dev/disk/by-TYPE/ and use those instead? You have stuff there which is the same each time you plug in.

I could never get that to work for some of my devices,so I had to use virtualbox,which works very well.