[libvirt] USB pass-through only works after many disconnects at the beginning

Felix Schwarz felix.schwarz at web.de
Sun May 3 19:21:20 UTC 2009


Hi,

I want to pass through a USB device to a KVM guest (Windows 2000). My host OS
is a standard Fedora 10, 64 bit. However, the device is only passed to the
guest when I use qemu monitor directly and only after several tries...
The device has no Linux drivers ('AVM GmbH ISDN-Controller FRITZ!Card v2.0')
so I think I don't have to tell the kernel not to use it.

I have KVM 74 and tried initially with libvirt 0.5.1 so from what I read this
should be ok.

At first I added this to my domain xml via virsh:
<hostdev mode='subsystem' type='usb'>
    <source>
      <vendor id='0x....'/>
      <product id='0x....'/>
    </source>
</hostdev>

However, the device did not turn up in the guest.

Therefore I updated libvirt/-python 0.6.1 and python-virtinst from
updates-testing and recompiled virt-manager 0.7 from F11 because I read that
virt-manager 0.7 had some support for USB pass-through. Now I had some new UI,
but it turned out that using that did not produce better results...


After that I called qemu-kvm directly with '-usb -usbdevice host:...:...'.
qemu produced this output on my terminal:
husb: open device 2.9
husb: config #1 need -1
husb: 1 interfaces claimed for configuration -1
husb: grabbed usb device 2.9
husb: config #1 need 1
USBDEVFS_DISCONNECT: No such device
husb: device 2.9 disconnected

When I used qemu monitor to re-attach the device, something liek that happened
(re-attached multiple times):
husb: open device 2.11
husb: config #1 need -1
husb: 1 interfaces claimed for configuration -1
husb: grabbed usb device 2.11
husb: config #1 need 1
husb: 1 interfaces claimed for configuration 1
husb: config #1 need 1
USBDEVFS_DISCONNECT: No such device
husb: config #1 need 1
USBDEVFS_DISCONNECT: No such device
husb: config #1 need 1
USBDEVFS_DISCONNECT: No such device
husb: device 2.11 disconnected
...

Eventually (after several tries), the device was attached and no more
disconnects happened. After that I could use the device as expected.

However plain qemu is not what I would like to have. I read about 'virsh
attach-device' so I tried to use my usb hostdev snippet but to no avail (even
after 10s of tries).

So how can I use USB pass through? Could this be Windows-related? Judging from
all the other threads (like [1]) it should be really easy to use.


fs

[1] https://www.redhat.com/archives/libvir-list/2009-February/msg00387.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3312 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20090503/9616e2bf/attachment-0001.bin>


More information about the libvir-list mailing list