External hard disk not detected by USB 3.0 port

Hardware: Toshiba Satellite L755
Software: openSuse 11.4 with kernel 3.1.0-rc1-98-g72fa599-1-vanilla
Peripherals: Logilink USB 3.0 to SATA HDD Adapter with Western Digital WD2500JS

I installed the Vanilla kernel in the hope that USB 3.0 will work. But though some things really have been fixed (for instance, the notebook can resume from sleep mode), USB 3.0 still doesn’t work.


lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 003: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 001 Device 004: ID 0bda:5801 Realtek Semiconductor Corp. 
Bus 001 Device 005: ID 0930:0215 Toshiba Corp. 
Bus 001 Device 006: ID 045e:0039 Microsoft Corp. IntelliMouse Optical
Bus 001 Device 007: ID 1241:1503 Belkin Keyboard
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

When plugging the adapter in the USB 3.0 port, there is no reaction.


sudo:   harald : TTY=pts/0 ; PWD=/home/harald/Dokumente ; USER=root ; COMMAND=/usr/bin/tail -f /var/log/messages
kernel: [10211.968034] hub 4-0:1.0: unable to enumerate USB device on port 1

When plugging the adapter in the USB 2.0 port, everything works. Also, Windows 7 recognizes the disk on the USB 3.0 port.
Does anyone know how to fix this? I really would like to the speed advantage of 3.0 vs. 2.0
Thanks!

Hi tosh755

I remember that there was a long thread discussing USB3 adapters. Here is the pointer:

USB 3.0 adapters

Maybe you find something useful there, but I am sure others will jump in here with some more specific info regarding your issue.

I can almost not discern when you talk and when you have computer text. Can you please put computer text between CODE tags: Posting in Code Tags - A Guide

Hello Henk, hello vodoo,
Thank you for answering me :). As requested by Henk, I now have quoted the console output :shame:. Yes vodoo, I was aware of the problems with USB 3.0 support in the past (though I hadn’t looked for it in the the 64bit forum). Mainly, I seek to draw attention to the fact that these problems still seem to be not completely resolved, although for the Toshiba Satellite 755 the 3.1.0-rc1-98-g72fa599-1-vanilla kernel seems to work much better than the 2.6.37.6-0.7 kernel (wired internet connection with Atheros works out of the box, more hardware sensors e.g. temperature are recognized, notebook can resume from sleep mode, etc.).
Regards tosh755

Hardware: Toshiba Satellite L755
Software: openSuse 11.4 with kernel 3.1.0-rc1-98-g72fa599-1-vanilla
Peripherals: Logilink USB 3.0 to SATA HDD Adapter with Western Digital WD2500JS

I installed the Vanilla kernel in the hope that USB 3.0 will work. But though some things really have been fixed (for instance, the notebook can resume from sleep mode), USB 3.0 still doesn’t work.


lsusb
 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
 Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
 Bus 001 Device 003: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
 Bus 001 Device 004: ID 0bda:5801 Realtek Semiconductor Corp. 
 Bus 001 Device 005: ID 0930:0215 Toshiba Corp. 
 Bus 001 Device 006: ID 045e:0039 Microsoft Corp. IntelliMouse Optical
 Bus 001 Device 007: ID 1241:1503 Belkin Keyboard
 Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

When plugging the adapter in the USB 3.0 port, there is no reaction.


 sudo: harald : TTY=pts/0 ; PWD=/home/harald/Dokumente ; USER=root ; COMMAND=/usr/bin/tail -f /var/log/messages
 kernel: [10211.968034] hub 4-0:1.0: unable to enumerate USB device on port 1

When plugging the adapter in the USB 2.0 port, everything works. Also, Windows 7 recognizes the disk on the USB 3.0 port.
Does anyone know how to fix this? I really would like to the speed advantage of 3.0 vs. 2.0suse 11.4 error report

On 08/15/2011 03:36 PM, tosh755 wrote:
>
> hcvv;2375288 Wrote:
>> I can almost not discern when you talk and when you have computer text.
>> Can you please put computer text between CODE tags: ‘Posting in Code
>> Tags - A Guide’ (http://tinyurl.com/2wwx7l9)
> Hello Henk, hello vodoo,
> Thank you for answering me :). As requested by Henk, I now have quoted
> the console output :shame:. Yes vodoo, I was aware of the problems with
> USB 3.0 support in the past (though I hadn’t looked for it in the the
> 64bit forum). Mainly, I seek to draw attention to the fact that these
> problems still seem to be not completely resolved, although for the
> Toshiba Satellite 755 the 3.1.0-rc1-98-g72fa599-1-vanilla kernel seems
> to work much better than the 2.6.37.6-0.7 kernel (wired internet
> connection with Atheros works out of the box, more hardware sensors e.g.
> temperature are recognized, notebook can resume from sleep mode,
> etc.).
> Regards tosh755
>
> Hardware: Toshiba Satellite L755
> Software: openSuse 11.4 with kernel 3.1.0-rc1-98-g72fa599-1-vanilla
> Peripherals: Logilink USB 3.0 to SATA HDD Adapter with Western Digital
> WD2500JS
>
> I installed the Vanilla kernel in the hope that USB 3.0 will work. But
> though some things really have been fixed (for instance, the notebook
> can resume from sleep mode), USB 3.0 still doesn’t work.
>
> Code:
> --------------------
>
> lsusb
> Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
> Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
> Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
> Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
> Bus 001 Device 003: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
> Bus 001 Device 004: ID 0bda:5801 Realtek Semiconductor Corp.
> Bus 001 Device 005: ID 0930:0215 Toshiba Corp.
> Bus 001 Device 006: ID 045e:0039 Microsoft Corp. IntelliMouse Optical
> Bus 001 Device 007: ID 1241:1503 Belkin Keyboard
> Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
> Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
>
> --------------------
>
> When plugging the adapter in the USB 3.0 port, there is no reaction.
>
> Code:
> --------------------
>
> sudo: harald : TTY=pts/0 ; PWD=/home/harald/Dokumente ; USER=root ; COMMAND=/usr/bin/tail -f /var/log/messages
> kernel: [10211.968034] hub 4-0:1.0: unable to enumerate USB device on port 1
>
> --------------------
>
> When plugging the adapter in the USB 2.0 port, everything works. Also,
> Windows 7 recognizes the disk on the USB 3.0 port.
> Does anyone know how to fix this? I really would like to the speed
> advantage of 3.0 vs. 2.0suse 11.4 error report

File a bug upstream, i.e. bugzilla.kernel.org. It seems obvious to me that the
kernel drivers do not yet support your hardware. USB 3.0 is still a work in
progress. Be careful to carefully detail the problem. In addition, there is
generally information in the output of dmesg that is not in /var/log/messages.

I have had really good luck with USB 3.0 lately. Not since the kernel that came with openSUSE 11.3, have I had any issues. I have not yet loaded 3.1-rc1 on my PC with USB 3.0, I will give it a try this weekend, but kernel 3.0.1 is working just fine. It has a USB 3.0 drive, USB 3.0 drive cable connected to a USB 3.0 motherboard connector. This is a Gigabyte Z67 chipset motherboard, the latest and greatest Intel chipset I think, though the USB 3.0 is not native as I understand it. None the less, I have had really good luck with USB 3.0. DO we know what file system is on this disk? Is it NTFS by chance? There is a issue in 11.4 and NTFS partitions that required a fix in the file /etc/filesystems, edited as root and adding the line at the end that said ntfs as I remember.

Thank You,

Hello jdmcdaniel3, there may be issue3s with NTFS and opensuse 11.4, but as the adapter works on the USB 2.0 that shouldn’t be the cause. Anyway, trying out won’t hurt and so I edited /etc/filesystems, but to no avail :(. I think reason lies much deeper, maybe because the adapter supposedly works with both USB 2.0 and USB 3.0 protocols and teh kernel cannot decide which to use.
Regards tosh755

I am trying with new releases of the kernel, the current being 3.1.0-rc3-1-vanilla. There seems to be a change in this last release. dmesg gives not only one line but a number of lines.

79.055695] usb 3-1: new high speed USB device number 2 using xhci_hcd
79.075477] xhci_hcd 0000:08:00.0: WARN: short transfer on control ep
79.076350] xhci_hcd 0000:08:00.0: WARN: short transfer on control ep
79.077345] xhci_hcd 0000:08:00.0: WARN: short transfer on control ep
79.078224] xhci_hcd 0000:08:00.0: WARN: short transfer on control ep
79.078362] usb 3-1: New USB device found, idVendor=1234, idProduct=5678
79.078370] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
79.078376] usb 3-1: Product: VLI Product String
79.078381] usb 3-1: Manufacturer: VLI manufacture String
79.078386] usb 3-1: SerialNumber: SD00000000004104
79.079621] scsi7 : usb-storage 3-1:1.0
79.219899] xhci_hcd 0000:08:00.0: WARN: short transfer on control ep
79.220271] xhci_hcd 0000:08:00.0: WARN: short transfer on control ep
80.011234] hub 4-0:1.0: unable to enumerate USB device on port 1
80.011264] usb 3-1: USB disconnect, device number 2

Still, the disk cannot be mounted via USB 3.0 :frowning: I have tried to trace the reason using the debugfs, but so far have not succeeded. Any tips how to configure debugfs to trace device handling?

Adding ntfs in /etc/filesystems solved my problem with USB 2 drive

After building a kernel with more trace information I found that the reason of the failure is that the NEC Corporation uPD720200 USB 3.0 Host Controller (rev 04) responds to the feature request “RESET” with a change in status information, and the function hub_port_wait_reset in linux-3.1.0-rc3-1-vanilla/drivers/usb/core/hub.c in this case returns -ENOTCONN. After modifying hub_port_wait_reset, the external disk is detected and can be mounted. Speed of the USB 3.0 connection for buffered disk reads is 56.93 MB/sec versus 31.24 MB/sec for the USB 2.0 connection.
So the reason seems to be a bug in the NEC Corporation uPD720200 USB 3.0 Host Controller (rev 04). Or is it OK with the USB 3.0 protocol to return a “not connected” status after a RESET feature request?

After building a kernel with more trace information I found that the reason of the failure is that the NEC Corporation uPD720200 USB 3.0 Host Controller (rev 04) responds to the feature request “RESET” with a change in status information, and the function hub_port_wait_reset in linux-3.1.0-rc3-1-vanilla/drivers/usb/core/hub.c in this case returns -ENOTCONN. After modifying hub_port_wait_reset, the external disk is detected and can be mounted. Speed of the USB 3.0 connection for buffered disk reads is 56.93 MB/sec versus 31.24 MB/sec for the USB 2.0 connection.
So the reason seems to be a bug in the NEC Corporation uPD720200 USB 3.0 Host Controller (rev 04). Or is it OK with the USB 3.0 protocol to return a “not connected” status after a RESET feature request?

tosh755 if you are modifying the C++ code for the kernel module you are way ahead of me. As I stated before, as for mounting and using USB 3.0 driver/adapters, I have not had any issues recently. I do know that in openSUSE, the kernel initrd module is not loading support for USB 3.0 by default. Look at my message #11 here in this thread: usb3 hd not detected

lwfinger here is a kernel developer and could tell you if you need to post a kernel bug report on this and perhaps how to do so. It might be worth a try to do so in my opinion.

Thank You,

On 09/02/2011 09:06 AM, jdmcdaniel3 wrote:
>
>> After building a kernel with more trace information I found that the
>> reason of the failure is that the NEC Corporation uPD720200 USB 3.0 Host
>> Controller (rev 04) responds to the feature request “RESET” with a
>> change in status information, and the function hub_port_wait_reset in
>> linux-3.1.0-rc3-1-vanilla/drivers/usb/core/hub.c in this case returns
>> -ENOTCONN. After modifying hub_port_wait_reset, the external disk is
>> detected and can be mounted. Speed of the USB 3.0 connection for
>> buffered disk reads is 56.93 MB/sec versus 31.24 MB/sec for the USB 2.0
>> connection.
>> So the reason seems to be a bug in the NEC Corporation uPD720200 USB
>> 3.0 Host Controller (rev 04). Or is it OK with the USB 3.0 protocol to
>> return a “not connected” status after a RESET feature request?
>>
>
> tosh755 if you are modifying the C++ code for the kernel module you are
> way ahead of me. As I stated before, as for mounting and using USB 3.0
> driver/adapters, I have not had any issues recently. I do know that in
> openSUSE, the kernel initrd module is not loading support for USB 3.0 by
> default. Look at my message #11 here in this thread: ‘usb3 hd not
> detected’ (http://tinyurl.com/3rhsohv)
>
> lwfinger here is a kernel developer and could tell you if you need to
> post a kernel bug report on this and perhaps how to do so. It might be
> worth a try to do so in my opinion.

I know the nVidia USB2.0 controllers have problems with RESET, and it appears
that your USB3.0 controller does as well. Please report this to
bugzilla.kernel.org and include the patch that makes it work. I have had
excellent interactions with Alan Stern who looks after the USB hub codes.

FWIW, there is no C++ in the kernel - only C.

Meanwhile, I have reported the problem to bugzilla.kernel.org
Bug 41752 - USB 3.0 port does not recognize external disk
Bug 42472 - USB 3.0 port does not recognize disconnect of external disk
Patches that make the µPD720200 work are available :slight_smile:
However, currently the server seems to out of service :frowning:

The Bugzilla website is still not fully functional otherwise I would have directed this information there instead. In the meantime, here are a few observations which might be of interest:

  1. The µPD720200 works reasonably well under openSUSE 11.3 and 11.4.
  2. The µPD720200 does not work under openSUSE 12.1 (I currently have 11.3 and 12.1 installed on the same PC).
  3. Attempted “Safe Removal Of Drive” of devices attached to the µPD720200 (under 11.3, 11.4) produces an error message as follows:
SYNCHRONIZE CACHE: FAILED: No such file or directory

but the attempted “Safe Removal Of Drive” succeeds in unmounting the device. A second attempted “Safe Removal Of Drive” seems to be device specific and removes some devices but not others.

Under openSUSE 12.1, dmesg contains a line which is not seen under 11.3 and 11.4:

    14.331695]  xhci_hcd 0000:02:00.0: PCI: Disallowing DAC for device

Hyperlinks to (or more information about) the patches and bug reports would have been appreciated but no criticism of your excellent work is intended.