[libvirt-users] Passing a USB hub

Ján Tomko jtomko at redhat.com
Thu Dec 17 08:38:39 UTC 2015


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

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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvirt-users/attachments/20151217/e65a558b/attachment.sig>


More information about the libvirt-users mailing list