[libvirt-users] Passing a USB hub

Hi, I'm trying to assign a complete USB Hub to my Windows 10 guest, using libvirt 1.3. Following the documentation, I tried adding the following to the definition of my guest: ... <devices> .. <hub type='usb'> <address type='usb' bus='1' port='10.2'/> </hub> .. </devices> To get the correct port, I used lsusb: [root@nobill-main 004]# lsusb -t /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 5000M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M |__ Port 5: Dev 110, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 1: Dev 52, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 1: Dev 53, If 0, Class=Human Interface Device, Driver=usbhid, 12M |__ Port 1: Dev 53, If 1, Class=Human Interface Device, Driver=usbhid, 12M |__ Port 3: Dev 54, If 0, Class=Human Interface Device, Driver=usbhid, 12M |__ Port 3: Dev 54, If 1, Class=Human Interface Device, Driver=usbhid, 12M |__ Port 3: Dev 54, If 2, Class=Human Interface Device, Driver=usbhid, 12M |__ Port 4: Dev 55, If 1, Class=Human Interface Device, Driver=usbhid, 12M |__ Port 10: Dev 117, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 2: Dev 118, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 11: Dev 8, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M |__ Port 11: Dev 8, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M (I want to assign port 10 in bus 1, the one that (still) has nothing attached to it. I can save it correctly, but after doing so, the guest wont start, complaining it can't find bus with index 1. After playing with lots of different configurations, my conclusions are: - Any other bus different than 0, will make virt-manager instantly complain that it cant find the bus (weird, since bus 0 doesn't exist according to lsusb) - Some ports allow the guest to start, but I won't be able to see the hub on windows. - Some other ports make virt-manager complain that it can't find anything attached there. Has anyone managed to get this working? Thanks, Rubén

On Wed, Dec 16, 2015 at 09:59:58PM +0100, Ruben Torrero Marijnissen wrote:
Hi,
Hello,
I'm trying to assign a complete USB Hub to my Windows 10 guest, using libvirt 1.3. Following the documentation, I tried adding the following to the definition of my guest:
... <devices> .. <hub type='usb'>
the <hub> element is for creating virtual hubs,
<address type='usb' bus='1' port='10.2'/>
The 'bus' here needs to match the 'index' of an exisitng <controller type='usb'> in the domain XML.
</hub>
.. </devices>
To get the correct port, I used lsusb:
[root@nobill-main 004]# lsusb -t /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 5000M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M |__ Port 5: Dev 110, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 1: Dev 52, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 1: Dev 53, If 0, Class=Human Interface Device, Driver=usbhid, 12M |__ Port 1: Dev 53, If 1, Class=Human Interface Device, Driver=usbhid, 12M |__ Port 3: Dev 54, If 0, Class=Human Interface Device, Driver=usbhid, 12M |__ Port 3: Dev 54, If 1, Class=Human Interface Device, Driver=usbhid, 12M |__ Port 3: Dev 54, If 2, Class=Human Interface Device, Driver=usbhid, 12M |__ Port 4: Dev 55, If 1, Class=Human Interface Device, Driver=usbhid, 12M |__ Port 10: Dev 117, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 2: Dev 118, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 11: Dev 8, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M |__ Port 11: Dev 8, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
(I want to assign port 10 in bus 1, the one that (still) has nothing attached to it.
For passing a host USB device to the guest, use <hostdev>: <hostdev mode='subsystem' type='usb'> <source> <address bus='1' device='10'/> </source> </hostdev> But in my testing, passing a USB hub did not work - neither the hub nor the devices on it were visible in the guest. Jan
participants (2)
-
Ján Tomko
-
Ruben Torrero Marijnissen