[SOLVED] Via Labs USB 3.0 Hub will not recognize a USB 3.0 device
Linux - HardwareThis forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Via Labs USB 3.0 Hub will not recognize a USB 3.0 device
I am trying to connect some USB 3.0 HDD's up to a Via Labs USB 3.0 Hub. When I type 'lsusb', it only lists the hub and not the devices. If I plug in a USB 2.0 device to the hub, it can be recognized. If I plug the USB 3.0 device directly into the system, it is also recognized.
In further investigating, I typed 'lsusb -v' and found that the USB 3.0 part of the hub has an error - under where the Hub Descriptor information is supposed to be, it says "** UNRECOGNIZED: 06 30 00 00 02 00 can't get hub descriptor: Broken Pipe"
So that explains why the drive can't be recognized. My question is: Is this a Linux problem or a Via Labs problem? I am running Slackware 13.1.
Is there somewhere on the system I can make Linux recognize this properly?
This is Deja Vue for me.
/begin long true history
Back in the early 2000s, I had a Via chipset with usb-2.0 which was congenitally nobbled. We proved this. It was giving log spam "overcurrent change detected on port x,y" until I removed the ehci module. This log spam had been a continuing mystery. I kicked the appropriate butt (David Brownell?) who was perpared to look at evidence. I then vented on Via Hardware's most populated forum. This got swiftly moved to some obscure linux forum but they put a programmer helping me, who wrote a kernel patch which simply read out the appropriate registers into the log. We got it right after 2 or 3 tries, read the registers, I dutifully plugged stuff in and out, and it all went off to the maintainer who realised that the hardware was not listening to the registers it was supposed to be controlled by.
He added the kernel option 'option echi_hcd ignore_oc=1' which still exists afaict. That fixed it.
In subsequent dialogue, the via programmer and I realised we had the same chipset. Mine had 6 usb ports - his had 4, and never had the issue. Apparently via disabled 2 ports in subsequent chips, and even he didn't know :-/.
/end long history
The usb spec used to be on Intel's site. The patch simply spat
' "REGISTER NAME" register contents' for all the relevant registers into syslog for any change to the overcurrent, which was our problem. I'd suggest you try something similar.
I thought I would post back to let you know the outcome of this. Turns out that USB 3.0 hub support wasn't merged into the Linux kernel until 2.6.39. Only the USB 2.0 part of the USB 3.0 hub will be working in kernels before that version. That was according to the Linux USB developer, Sarah Sharp. I updated the kernel to 2.6.39 and low and behold, it worked.