Package: usbip
Version: 2.0+4.2-1
Severity: important

Dear Maintainer,

I am trying to use a USB microphone with usbip, between two physical
machines both running Linux 3.16.0-4-amd64. The machines are connected via
gigabit ethernet. The USB device can be bound, attached, and it shows up
in lsusb on the client machine, but as soon as I try to use it (or run
"usbip port") the device disappears. A USB stick (not isochonous) works
without issues.

On the server side, I run

# modprobe usbip-core && modprobe usbip-host
# usbip list -l | grep 3-3.1.3 -A 2
 - busid 3-3.1.3 (0d8c:016c)
    C-Media Electronics, Inc. : unknown product (0d8c:016c)

# usbip -d bind -b 3-3.1.3
usbip: debug: usbip.c:141:[run_command] running command: `bind'
usbip: info: bind device on busid 3-3.1.3: complete
# usbipd -D

On the client side, I run

# modprobe usbip-core && modprobe usbip-host && modprobe vhci-hcd
# lsusb | grep 'Bus 011'
Bus 011 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
# usbip attach -r 192.168.1.100 -b 3-3.1.3
# lsusb | grep 'Bus 011'
Bus 011 Device 002: ID 0d8c:016c C-Media Electronics, Inc.  # new device!
Bus 011 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
# usbip --debug port
usbip: debug: .../src/usbip.c:141:[run_command] running command: `port'
libusbip: debug: .../libsrc/vhci_driver.c:242:[usbip_vhci_driver_open] 
available ports: 7
libusbip: debug: .../libsrc/vhci_driver.c:71:[parse_status] port 0 status 6 
speed 2 devid 30028
libusbip: debug: .../libsrc/vhci_driver.c:72:[parse_status] socket 
ffff8802019f2a40 lbusid 11-1
libusbip: debug: .../libsrc/vhci_driver.c:26:[imported_device_init] 
udev_device_new_from_subsystem_sysname failed: 11-1
libusbip: debug: .../libsrc/vhci_driver.c:91:[parse_status] 
imported_device_init failed
usbip: error: open vhci_driver
usbip: error: list imported devices
# lsusb | grep 'Bus 011'
Bus 011 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub  # it's gone
#

In other words, the USB device disappears as soon as I try to query it.
I'm pretty sure it has something to do with the fact that this is an
isochronous USB device. I can share a Lexar USB stick with no issues, list
the port, mount the filesystem on it, etc; here's what that looks like:

# usbip port
Imported USB devices
====================
Port 00: <Port in Use> at High Speed(480Mbps)
       unknown vendor : unknown product (05dc:a81d)
             11-1 -> usbip://192.168.1.133:3240/3-3.1.4
                        -> remote bus/dev 003/044

It's not just the "port" listing that fails with the microphone, if I try
to use the device in any way the same thing happens. Note that this
microphone works correctly if I plug it directly into the client system.

The best clue I have for this bug is the server's dmesg, which has:

[1898124.688515] vhci_hcd: module is from the staging directory, the
quality is unknown, you have been warned.
[1898124.689777] vhci_hcd vhci_hcd: USB/IP Virtual Host Controller
[1898124.689781] vhci_hcd vhci_hcd: new USB bus registered, assigned bus
number 5
[1898124.690751] usb usb5: New USB device found, idVendor=1d6b,
idProduct=0002
[1898124.690754] usb usb5: New USB device strings: Mfr=3, Product=2,
SerialNumber=1
[1898124.690756] usb usb5: Product: USB/IP Virtual Host Controller
[1898124.690759] usb usb5: Manufacturer: Linux 3.16.0-4-amd64 vhci_hcd
[1898124.690761] usb usb5: SerialNumber: vhci_hcd
[1898124.690919] hub 5-0:1.0: USB hub found
[1898124.690928] hub 5-0:1.0: 8 ports detected
[1898124.691151] vhci_hcd: USB/IP 'Virtual' Host Controller (VHCI) Driver
v1.0.0
[1898128.327590] usbip-host 3-3.1.3: stub up
[1898128.328428] usbip-host 3-3.1.3: recv a header, 0
[1898128.413139] usbip-host 3-3.1.3: reset full-speed USB device number 40
using xhci_hcd
[1898128.513687] usbip-host 3-3.1.3: device reset
[1898132.871792] usbip-host 3-3.1.3: stub up
[1898133.231902] usbip-host 3-3.1.3: usb_set_interface done: inf 1 alt 1
[1898133.233559] usbip-host 3-3.1.3: usb_set_interface done: inf 1 alt 0
[1898133.234173] usbip-host 3-3.1.3: usb_set_interface done: inf 2 alt 1
[1898133.235850] usbip-host 3-3.1.3: usb_set_interface done: inf 2 alt 0
[1898133.237724] usbip-host 3-3.1.3: endpoint 0 is stalled
[1898133.238363] usbip-host 3-3.1.3: endpoint 0 is stalled
[1898133.238701] usbip-host 3-3.1.3: endpoint 0 is stalled
[1898133.239031] usbip-host 3-3.1.3: endpoint 0 is stalled
(...20 more repetitions...)
[1898133.267747] usbip-host 3-3.1.3: endpoint 0 is stalled
[1898133.268078] usbip-host 3-3.1.3: endpoint 0 is stalled
[1898133.268415] usbip-host 3-3.1.3: endpoint 0 is stalled
[1898133.268750] usbip-host 3-3.1.3: endpoint 0 is stalled
[1898133.269079] usbip-host 3-3.1.3: endpoint 0 is stalled
[1898133.269523] usbip-host 3-3.1.3: endpoint 0 is stalled
[1898133.277673] usbip-host 3-3.1.3: endpoint 0 is stalled
[1898304.828338] usbip-host 3-3.1.3: unlink urb ffff8802a28b9340
[1898304.830284] usbip-host 3-3.1.3: unlinked by a call to
usb_unlink_urb()
[1898719.403607] usbip-host 3-3.1.3: recv a header, 0
[1898719.486112] usbip-host 3-3.1.3: reset full-speed USB device number 40
using xhci_hcd
[1898719.586728] xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called
with disabled ep ffff8802a234d040
[1898719.587019] usbip-host 3-3.1.3: device reset
[1898777.377789] usbip-host 3-3.1.3: stub up
[1898777.731053] usbip-host 3-3.1.3: usb_set_interface done: inf 1 alt 1
[1898777.732561] usbip-host 3-3.1.3: usb_set_interface done: inf 1 alt 0
[1898777.733205] usbip-host 3-3.1.3: usb_set_interface done: inf 2 alt 1
[1898777.735792] usbip-host 3-3.1.3: usb_set_interface done: inf 2 alt 0
[1898777.738358] usbip-host 3-3.1.3: endpoint 0 is stalled
[1898777.738804] usbip-host 3-3.1.3: endpoint 0 is stalled
[1898777.739269] usbip-host 3-3.1.3: endpoint 0 is stalled

and so on. Client dmesg shows the device briefly, but it quickly
disappears:

[2756722.613839] usbip_core: module is from the staging directory, the quality 
is unknown, you have been warned.
[2756722.615224] usbip_core: USB/IP Core v1.0.0
[2756724.253798] vhci_hcd: module is from the staging directory, the quality is 
unknown, you have been warned.
[2756724.254954] vhci_hcd vhci_hcd: USB/IP Virtual Host Controller
[2756724.255334] vhci_hcd vhci_hcd: new USB bus registered, assigned bus number 
11
[2756724.256186] usb usb11: New USB device found, idVendor=1d6b, idProduct=0002
[2756724.256560] usb usb11: New USB device strings: Mfr=3, Product=2, 
SerialNumber=1
[2756724.256874] usb usb11: Product: USB/IP Virtual Host Controller
[2756724.257167] usb usb11: Manufacturer: Linux 3.16.0-4-amd64 vhci_hcd
[2756724.257456] usb usb11: SerialNumber: vhci_hcd
[2756724.257940] hub 11-0:1.0: USB hub found
[2756724.258367] hub 11-0:1.0: 8 ports detected
[2756724.258920] vhci_hcd: USB/IP 'Virtual' Host Controller (VHCI) Driver v1.0.0
[2756741.529448] vhci_hcd vhci_hcd: rhport(0) sockfd(3) devid(196648) speed(2) 
speed_str(full-speed)
[2756741.742246] usb 11-1: new full-speed USB device number 2 using vhci_hcd
[2756741.854199] usb 11-1: SetAddress Request (2) to port 0
[2756741.874211] usb 11-1: New USB device found, idVendor=0d8c, idProduct=016c
[2756741.874492] usb 11-1: New USB device strings: Mfr=1, Product=2, 
SerialNumber=0
[2756741.874760] usb 11-1: Product: USB Advanced Audio Device
[2756741.875074] usb 11-1: Manufacturer: C-Media Electronics Inc.
[2756741.936833] input: C-Media Electronics Inc. USB Advanced Audio Device as 
/devices/platform/vhci_hcd/usb11/11-1/11-1:1.3/0003:0D8C:016C.0010/input/input22
[2756741.937356] hid-generic 0003:0D8C:016C.0010: input,hiddev0,hidraw0: USB 
HID v1.00 Device [C-Media Electronics Inc. USB Advanced Audio Device] on 
usb-vhci_hcd-1/input3
[2756743.582873] vhci_hcd: dequeue a urb ffff88019cff0040
[2756743.583263] vhci_hcd: device ffff880074086290 seems to be still connected
[2756743.583547] vhci_hcd: dequeue a urb ffff88019cff0040
[2756743.585904] vhci_hcd: unlink->seqnum 102
[2756743.586232] vhci_hcd: urb->status -104
[2756744.690266] usb usb11-port1: Cannot enable. Maybe the USB cable is bad?
[2756745.562323] usb usb11-port1: Cannot enable. Maybe the USB cable is bad?
[2756746.434232] usb usb11-port1: Cannot enable. Maybe the USB cable is bad?
[2756747.306284] usb usb11-port1: Cannot enable. Maybe the USB cable is bad?
[2756747.307022] usb 11-1: USB disconnect, device number 2
[2756748.178282] usb usb11-port1: Cannot enable. Maybe the USB cable is bad?
[2756749.050235] usb usb11-port1: Cannot enable. Maybe the USB cable is bad?
[2756749.922265] usb usb11-port1: Cannot enable. Maybe the USB cable is bad?
[2756750.794249] usb usb11-port1: Cannot enable. Maybe the USB cable is bad?
[2756750.794618] usb usb11-port1: unable to enumerate USB device
[2756751.770246] usb usb11-port1: Cannot enable. Maybe the USB cable is bad?
[2756752.642207] usb usb11-port1: Cannot enable. Maybe the USB cable is bad?
[2756753.514212] usb usb11-port1: Cannot enable. Maybe the USB cable is bad?
[2756754.386207] usb usb11-port1: Cannot enable. Maybe the USB cable is bad?


Server usbip and usbipd logs don't show anything unusual.

This seems like a kernel-module bug. I looked up the "endpoint X is
stalled" message and it seems to come from EPIPE on the server-side
kernel.



-- System Information:
Debian Release: 8.1
  APT prefers testing
  APT policy: (500, 'testing'), (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.16.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_CA.utf8, LC_CTYPE=en_CA.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages usbip depends on:
ii  libc6     2.19-22
ii  libudev1  221-1
ii  libwrap0  7.6.q-25
ii  usbutils  1:007-2

usbip recommends no packages.

usbip suggests no packages.

-- no debconf information

Reply via email to