[libvirt-users] Passing a USB hub

Ruben Torrero Marijnissen ruben.torrero at gmail.com
Wed Dec 16 20:59:58 UTC 2015


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 at 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




More information about the libvirt-users mailing list