usb3 device not detected on boot

When I boot my server one of my usb3 disks is consistently not detected. Unplugging it and plugging it back in again forces detection and it works correctly thereafter, but this requires me to be there to do it... I can see the device in sys, and have tried removing it (echo 1 > /sys/bus/usb/devices/3-4/remove) and dmesg says that the device is redetected again: [58372.630911] usb 3-4: USB disconnect, device number 5 [58372.956506] hub 2-1:1.0: unable to enumerate USB device on port 4 [58373.196541] usb 3-4: new SuperSpeed USB device number 6 using xhci_hcd [58373.212456] usb 3-4: Parent hub missing LPM exit latency info. Power management will be impacted. [58373.213048] usb 3-4: New USB device found, idVendor=0bc2, idProduct=50a1 [58373.213053] usb 3-4: New USB device strings: Mfr=2, Product=3, SerialNumber=1 [58373.213058] usb 3-4: Product: FA GoFlex Desk [58373.213061] usb 3-4: Manufacturer: Seagate [58373.213064] usb 3-4: SerialNumber: NA0L84NG [58373.213942] scsi15 : usb-storage 3-4:1.0 [58374.324733] usb 3-4: reset SuperSpeed USB device number 6 using xhci_hcd [58374.340431] usb 3-4: Parent hub missing LPM exit latency info. Power management will be impacted. [58374.340621] xhci_hcd 0000:02:00.0: xHCI xhci_drop_endpoint called with disabled ep ffff8801648fa8c0 [58374.340626] xhci_hcd 0000:02:00.0: xHCI xhci_drop_endpoint called with disabled ep ffff8801648fa900 But obviously there are a few errors, and usb-storage never actually sees the device properly (no /dev/sdX entry for it). Is there a way to turn the port off completely and then back on again so I can simulate an unplug/plug event a bit better? I've tried the various power/control and power/level files in /sys but nothing seems to work. Replacing the USB3 card is on the agenda but I'm looking for a workaround in the interim. USB3 adapter is 1106:3432 USB controller: VIA Technologies, Inc. VL80x xHCI USB 3.0 Controller (rev 02) Thanks James

James Harper <james.harper@bendigoit.com.au> wrote:
But obviously there are a few errors, and usb-storage never actually sees the device properly (no /dev/sdX entry for it). Is there a way to turn the port off completely and then back on again so I can simulate an unplug/plug event a bit better? I've tried the various power/control and power/level files in /sys but nothing seems to work.
I suppose you could try to unload/reload a relevant USB kernel module, but I suspect they're all in use and hence can't be unloaded. Trying it with a different manufacturer's drive would give you an indication of whether the problem is related to the specific device or turns out to be a more generic USB issue.
Replacing the USB3 card is on the agenda but I'm looking for a workaround in the interim.
I'm assuming you have good reasons to believe that changing the controller will indeed eliminate the errors. If not, it could be an expensive exercise that doesn't solve the problem. If you think it's a kernel bug, you should report it. It could of course be the hardware. I also assume you've searched bug trackers (starting from your distribution's bug tracker), which is always worthwhile and sometimes delivers.

Replacing the USB3 card is on the agenda but I'm looking for a workaround in the interim.
I'm assuming you have good reasons to believe that changing the controller will indeed eliminate the errors. If not, it could be an expensive exercise that doesn't solve the problem.
If you think it's a kernel bug, you should report it. It could of course be the hardware. I also assume you've searched bug trackers (starting from your distribution's bug tracker), which is always worthwhile and sometimes delivers.
This is an old prerelease 0.96a spec card, not a 1.0 spec card. I've heard of a few quirks and problems with cards that don't adhere fully to the final USB3 specification. I doubt it will be a kernel 'bug' as such, but working around the problem in the kernel is going to be harder and more expensive than simply changing the card, even if it only took me an hour to patch it. James

James Harper <james.harper@bendigoit.com.au> wrote:
This is an old prerelease 0.96a spec card, not a 1.0 spec card. I've heard of a few quirks and problems with cards that don't adhere fully to the final USB3 specification.
That's indeed a good reason to upgrde the card. It is also to be hoped that the drive is a properly conforming USB3 model as well. With conforming devices on both ends you'll be in a much better position.

On 07/07/13 09:23, James Harper wrote:
When I boot my server one of my usb3 disks is consistently not detected. Unplugging it and plugging it back in again forces detection and it works correctly thereafter, but this requires me to be there to do it...
It's not just Linux - my son's Win7 box doesn't do any better with the one on the motherboard. You can't boot from it - the port doesn't fall back to USB2 even.

On 07/07/13 09:23, James Harper wrote:
But obviously there are a few errors, and usb-storage never actually sees the device properly (no /dev/sdX entry for it). Is there a way to turn the port off completely and then back on again so I can simulate an unplug/plug event a bit better? I've tried the various power/control and power/level files in /sys but nothing seems to work.
Given it sounds like a hairy problem it might be worth trying the Linux USB mailing list as they may help with that issue, or even fixing it up: http://www.linux-usb.org/mailing.html or contacting the maintainer for the driver, you can find that through the MAINTAINERS file in the kernel source: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/MAINTAI... Your final fallback would be the USB subsystem maintainer Greg K-H: http://www.linux-usb.org/contacts.html Best of luck! Chris -- Chris Samuel : http://www.csamuel.org/ : Melbourne, VIC
participants (4)
-
Allan Duncan
-
Chris Samuel
-
James Harper
-
Jason White