Libvirt USB passthrought via port

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

22 points · 7 comments · view on lemmy.world

7 Comments

possiblylinux127@lemmy.zip · 4 pts · 1y

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

taaz@biglemmowski.win · 3 pts · 1y (2 replies)

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 )

user_naa@lemmy.world · 1 pts · 1y (1 reply)

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.

mumblerfish@lemmy.world · 2 pts · 1y

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.

somethingsomethingidk@lemmy.world · 3 pts · 1y

I found this. I didn't look at the code at all but the Readme mentions another project that might help.

https://github.com/ipatix/libvirt-usb-hotplug

nublug@lemmy.blahaj.zone · 2 pts · 1y
hornedfiend@sopuli.xyz · 1 pts · 1y

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