Skip to content

Instantly share code, notes, and snippets.

@bewest
Last active August 29, 2015 13:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bewest/10603989 to your computer and use it in GitHub Desktop.
Save bewest/10603989 to your computer and use it in GitHub Desktop.
reply to linux msg
I thought I had enabled debugging.
My boot config has
* CONFIG_USB_DEBUG=y
* CONFIG_USB_SERIAL_DEBUG=m
and several other relevant looking items set to y, perhaps I simply
need to dynamically enable debug by setting something in sysfs?
I've been playing with this this (v3.14-rc7) extensively over the past
few weeks.
* The first insert of the device rarely works, but occasionally it
does appear on boot
* usually lsusb blocks for a long time (10's of seconds) if the
enumeration is not working
What I've found is that removing the usb stick while lsusb is hanging,
and re-inserting, on the third try the device enumerates.  After this,
plugging in/removing enumerates as expected.  Once the device
enumerates successfully, it seems to consistently enumerate
afterwards.
Each port seems to experience this problem independently of the
others. Eg, plugging in the device 3 times on a port seems to make it
enumerate, but the first few times lsusb tends to hang for a long
time.
To test this, I just tried waiting the full length between timeouts.
There is a log of the result here:
https://gist.githubusercontent.com/bewest/6488955/raw/77a431e50ebadd27641e2685dc1184aa96da05c6/annotated-runs-3.14.0-rc7-bewest-test-3.14-rc7-carelink-01.log
The procedure was to insert/remove the stick only after waiting for
the full timeout, eg, waiting for lsusb to return, and never
interrupting the process.
After several attempts, something happened, and the usb stack as a
whole seems to have reset or something, I lost access to my internal
bluetooth, and the usualy Atheros entry from lsusb output was missing.
On reboot, I continued and kept the entire syslog from reboot | grep
kernel, here:
https://gist.githubusercontent.com/bewest/6488955/raw/c436764d806426d373c36b25d4eb96276a16c1ae/theory-grep-kernel-3.14.0-rc7-bewest-test-3.14-rc7-carelink-01.log
In this one, I did not wait for lsusb to timeout; the number of
attempts doesn't seem to matter, but the timing does. This time I
seem to be able to moderate what happens by removing the usb stick
just after I see:
Apr 13 15:51:16 patient kernel: [ 431.837705] xhci_hcd 0000:00:14.0: Timeout while waiting for setup address command
I'm doing "watch lsusb" in another terminal, and removing the device
as soon as I see this message, then inserting it again. I stop doing
the lsusb/syslog output indicates that the device has enumerated.
> Benjamin, have you tried the device on a different host controller?
>
> Thanks,
> Johan
No, I haven't, my access to different machines is limited right now.
 I have spares of this device, I'd be willing to mail one to someone
if it'd be helpful.
Thanks for following up on this,
-bewest
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment