All of lore.kernel.org
 help / color / mirror / Atom feed
* USB passthrough - strange device keeps resetting
@ 2017-04-07 14:10 Stefan Cornelius
  2017-04-10  8:23 ` Stefan Hajnoczi
  0 siblings, 1 reply; 2+ messages in thread
From: Stefan Cornelius @ 2017-04-07 14:10 UTC (permalink / raw)
  To: kvm

Hi,

I'm trying to passthrough a peculiar USB device. My best guess on
what's happening: It's not supposed to be talked to from anything but
the custom, non-Linux libusb-based "driver application" and resets
itself whenever it detects something that's not according to their
driver - including operations that are pretty standard and no problem
at all for other devices.

Unfortunately, that also means that it resets itself when trying boot
the guest it's supposed to be passed through. This causes the USB
address on the Linux host to change (/dev/usb/01/xx
becomes /dev/usb/01/xx+1), which in turn appears to prevent it from
being passed through the guest correctly.

I've tried both the spice-based and the other redirection method, I've
tried attaching it purely based on USB vendor and product id, tested
various suggestions that I could find across the internet, but I
constantly run into the same problem over and over again. I've tested a
number of other devices, they all work fine - it's only this one device
that's acting up and I'm now out of ideas.

I will appreciate any and every suggestion.

Thanks,
-- 
Stefan Cornelius / Red Hat Product Security

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: USB passthrough - strange device keeps resetting
  2017-04-07 14:10 USB passthrough - strange device keeps resetting Stefan Cornelius
@ 2017-04-10  8:23 ` Stefan Hajnoczi
  0 siblings, 0 replies; 2+ messages in thread
From: Stefan Hajnoczi @ 2017-04-10  8:23 UTC (permalink / raw)
  To: Stefan Cornelius; +Cc: kvm

[-- Attachment #1: Type: text/plain, Size: 1771 bytes --]

On Fri, Apr 07, 2017 at 04:10:15PM +0200, Stefan Cornelius wrote:
> I'm trying to passthrough a peculiar USB device. My best guess on
> what's happening: It's not supposed to be talked to from anything but
> the custom, non-Linux libusb-based "driver application" and resets
> itself whenever it detects something that's not according to their
> driver - including operations that are pretty standard and no problem
> at all for other devices.
> 
> Unfortunately, that also means that it resets itself when trying boot
> the guest it's supposed to be passed through. This causes the USB
> address on the Linux host to change (/dev/usb/01/xx
> becomes /dev/usb/01/xx+1), which in turn appears to prevent it from
> being passed through the guest correctly.
> 
> I've tried both the spice-based and the other redirection method, I've
> tried attaching it purely based on USB vendor and product id, tested
> various suggestions that I could find across the internet, but I
> constantly run into the same problem over and over again. I've tested a
> number of other devices, they all work fine - it's only this one device
> that's acting up and I'm now out of ideas.
> 
> I will appreciate any and every suggestion.

If you have access to the driver application perhaps you can capture the
USB traffic on its native OS and compare against USB passthrough on KVM.

tcpdump can capture USB traffic on Linux (search for "usbmon").

There are free/demo programs to capture USB traffic on Windows.  It's
been a while since I used one so I've forgotten which one worked for me.

It would be interesting to compare native vs passthrough USB traffic.
The packet captures are a good starting point for deeper discussion on
the mailing list.

Stefan

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 455 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-04-10  8:57 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-07 14:10 USB passthrough - strange device keeps resetting Stefan Cornelius
2017-04-10  8:23 ` Stefan Hajnoczi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.