# [Solved] USB 2.0 getting 1.1 Driver

## Sorry Go Fish

Running: linux-2.6.22-gentoo-r5

lspci -v gives me the following USB related output:

```
00:09.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 50) (prog-if 00 [UHCI])

        Subsystem: ASUSTeK Computer Inc. A7V333 motherboard

        Flags: bus master, medium devsel, latency 32, IRQ 11

        I/O ports at d800 [size=32]

        Capabilities: [80] Power Management version 2

00:09.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 50) (prog-if 00 [UHCI])

        Subsystem: ASUSTeK Computer Inc. A7V333 motherboard

        Flags: bus master, medium devsel, latency 32, IRQ 11

        I/O ports at d400 [size=32]

        Capabilities: [80] Power Management version 2

00:09.2 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 51) (prog-if 20 [EHCI])

        Subsystem: ASUSTeK Computer Inc. Unknown device 8080

        Flags: bus master, medium devsel, latency 32, IRQ 11

        Memory at d7800000 (32-bit, non-prefetchable) [size=256]

        Capabilities: [80] Power Management version 2

00:11.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 23) (prog-if 00 [UHCI])

        Subsystem: ASUSTeK Computer Inc. VT6202 USB2.0 4 port controller

        Flags: bus master, medium devsel, latency 32, IRQ 7

        I/O ports at a800 [size=32]

        Capabilities: [80] Power Management version 2

00:11.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 23) (prog-if 00 [UHCI])

        Subsystem: ASUSTeK Computer Inc. VT6202 USB2.0 4 port controller

        Flags: bus master, medium devsel, latency 32, IRQ 7

        I/O ports at a400 [size=32]

        Capabilities: [80] Power Management version 2

```

All of the enabled USB or SCSI flags in my /usr/src/linux/.config are as follows:

```
CONFIG_USB_HID=y

CONFIG_USB_ARCH_HAS_HCD=y

CONFIG_USB_ARCH_HAS_OHCI=y

CONFIG_USB_ARCH_HAS_EHCI=y

CONFIG_USB=y

CONFIG_USB_DEVICEFS=y

CONFIG_USB_EHCI_HCD=y

CONFIG_USB_UHCI_HCD=y

CONFIG_USB_PRINTER=y

CONFIG_USB_STORAGE=y

CONFIG_USB_SERIAL=m

CONFIG_USB_SERIAL_VISOR=m

...

CONFIG_SCSI=y

CONFIG_SCSI_WAIT_SCAN=m

CONFIG_SCSI_SPI_ATTRS=y
```

Proof (?) that I'm getting a USB 1.1 connection:

```
# hdparm -tT /dev/sda

/dev/sda:

 Timing cached reads:   418 MB in  2.00 seconds = 208.86 MB/sec

 Timing buffered disk reads:    4 MB in  4.13 seconds = 990.78 kB/sec
```

lsusb -v Output Here

I'm guessing that I have a problem with my kernel config, but I'm not sure which drivers I should build, not build. The drive is a new Seagate 650GB drive. Thanks for any help.Last edited by Sorry Go Fish on Fri Oct 05, 2007 4:53 pm; edited 1 time in total

----------

## Monkeh

Paste the contents of /proc/bus/usb/devices please. Also the output of dmesg.

----------

## Sorry Go Fish

/proc/bus/usb/devices

dmesg

Thanks

----------

## Monkeh

Use a different port. You're sharing a root hub with your mouse receiver, which is a USB 1.1 device.

----------

## Sorry Go Fish

I tried it the other day, with a fresh reboot, no mouse plugged in and got the same hdparm test results. Will try again now. Thanks.

----------

## Sorry Go Fish

Yeah, no luck in front or back ports. One dmesg section below:

```
usb 5-1: USB disconnect, address 2

usb 4-1: new full speed USB device using uhci_hcd and address 4

usb 4-1: not running at top speed; connect to a high speed hub

usb 4-1: configuration #1 chosen from 1 choice

scsi2 : SCSI emulation for USB Mass Storage devices

usb-storage: device found at 4

usb-storage: waiting for device to settle before scanning

scsi 2:0:0:0: Direct-Access     ST375064 0A               3.AA PQ: 0 ANSI: 0

sd 2:0:0:0: [sda] 1465149168 512-byte hardware sectors (750156 MB)

sd 2:0:0:0: [sda] Write Protect is off

sd 2:0:0:0: [sda] Mode Sense: 10 00 00 00

sd 2:0:0:0: [sda] Assuming drive cache: write through

sd 2:0:0:0: [sda] 1465149168 512-byte hardware sectors (750156 MB)

sd 2:0:0:0: [sda] Write Protect is off

sd 2:0:0:0: [sda] Mode Sense: 10 00 00 00

sd 2:0:0:0: [sda] Assuming drive cache: write through

 sda: sda1 sda2 < sda5 >

sd 2:0:0:0: [sda] Attached SCSI disk

sd 2:0:0:0: Attached scsi generic sg0 type 0

usb-storage: device scan complete
```

----------

## ppurka

Your kernel is using the uhci_hcd instead of ehci_hcd to control your device.  You need ehci_hcd to get full 2.0 speeds.

Remedy: you can build those as modules, and ensure that you load ehci_hcd through /etc/modules.autoload.d

I use a USB keyboard which requires ohci_hcd (which is also does not provide 2.0 speeds), and an external hard disk which requires 2.0 speeds. My /etc/modules.autoload.d/kernel-2.6 reads as follows:

```
# Load Microsoft keyboard driver

ohci-hcd

usbnek4k

ehci-hcd
```

HTH.

----------

## Monkeh

You have an EHCI controller, and it is working. You must have more ports somewhere. See if you've got an unused header on the board.

----------

## Cyker

Check BLK_DEV_UB in your kernel config; Disable it if it's enabled?

----------

## Monkeh

 *Cyker wrote:*   

> Check BLK_DEV_UB in your kernel config; Disable it if it's enabled?

 

It's not using the ub driver, so that isn't the issue..

----------

## Sorry Go Fish

 *Monkeh wrote:*   

> You have an EHCI controller, and it is working. You must have more ports somewhere. See if you've got an unused header on the board.

 

Solved! It turns out that most of the ports on my motherboard are USB 1.1. I found the unused 2.0 slot, and wired up the case. Now I'm getting a Device Not Accepting Address issue (even with the cord that came with the board). I guess that one's on me. I'll try updating my BIOS, unless you think there's something smarter to do.

Thanks for your help.

----------

## Monkeh

Can't help you with that one. Good luck with it. If you can't get it working, PCI cards are cheap as chips..

----------

## Sorry Go Fish

From lsusb it sounds like I need to be using EHCI for the 2.0 slots, and UHCI for the rest. I have compiled these as modules. However, regardless if EHCI module is loaded I see from dmesg that it's using the UHCI driver:

```
usb 3-2: new full speed USB device using uhci_hcd and address 6

usb-3-2: device descriptor read/64, error -71

...
```

If I load the EHCI driver, I get no change in output or functionality. 

If I plug the device in one of the USB 1.1 slots I get functionality, but at the 1.1 speeds. Is it possible I'm doing something wrong with the drivers?

Thanks

----------

## Sorry Go Fish

Actually, that's what ppurka was suggesting. Thanks for the tip. I guess my problem is now wondering why EHCI isn't doing anything for my USB 2.0 slot. Is it possible that my motherboard is not really 2.0 compliant?

----------

## ppurka

 *Sorry Go Fish wrote:*   

> Actually, that's what ppurka was suggesting. Thanks for the tip. I guess my problem is now wondering why EHCI isn't doing anything for my USB 2.0 slot. Is it possible that my motherboard is not really 2.0 compliant?

 Try rmmod uhci_hcd, and modprobe only ehci_hcd.  Then plug in your device. If it works without loading uhci_hcd, then you are in good shape,- you can try and see whether your mouse also works with ehci, if not you will probably have to experiment a bit (as I had to do  :Smile:  )

----------

## Sorry Go Fish

 *ppurka wrote:*   

> Try rmmod uhci_hcd, and modprobe only ehci_hcd.  Then plug in your device. If it works without loading uhci_hcd, then you are in good shape,- you can try and see whether your mouse also works with ehci, if not you will probably have to experiment a bit (as I had to do  )

 

No luck. I tried unloading all of them, then just loading ehci_hcd. I get nothing from any port untill uhci_hcd is loaded, and it doesn't seem to matter if ehci is loaded at all.

Thanks

----------

## Sorry Go Fish

With all usb modules unloaded. Then I load ehci_hcd I get the following in dmesg:

 *Quote:*   

> ehci_hcd 0000:00:09.2: EHCI Host Controller
> 
> ehci_hcd 0000:00:09.2: new USB bus registered, assigned bus number 1
> 
> ehci_hcd 0000:00:09.2: irq 10, io mem 0xd7800000
> ...

 

Nothing shows up when I plug in a device in any port.

With just ehci_hcd I get the following in /proc/bus/usb/devices

 *Quote:*   

> T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh= 4
> 
> B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
> 
> D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
> ...

 

I have to load uhci_hdc to get any device related output and this is what I get in dmesg

 *Quote:*   

> uhci_hcd 0000:00:11.3: UHCI Host Controller
> 
> uhci_hcd 0000:00:11.3: new USB bus registered, assigned bus number 5
> 
> uhci_hcd 0000:00:11.3: irq 3, io base 0x0000a400
> ...

 

----------

## ppurka

This is for your logitech USB mouse (which will probably not work with ehci anyway).  What do you get with only ehci loaded and when you plug in your USB 2.0 device (flash drive or external HDD)?

----------

## Sorry Go Fish

I think all of the usb 3-2 are the USB 2.0 device and the usb 4-2 lines pertain to the mouse.

If I only have ehci loaded (no uhci) then I get the first section of output. That is, nothing relating to the device, no matter what port.

Thanks

----------

## Sorry Go Fish

I noticed in /proc/bus/usb/devices that it says MxPwr= 0mA. Does this mean my MB isn't powering the ports? Could this be a contributing factor?

----------

## Monkeh

 *Sorry Go Fish wrote:*   

> I noticed in /proc/bus/usb/devices that it says MxPwr= 0mA. Does this mean my MB isn't powering the ports? Could this be a contributing factor?

 

That's power draw. Only USB devices have draw, controllers supply it.

----------

## Sorry Go Fish

Well, at least I'm learning stuff! Thanks.

----------

## Sorry Go Fish

Monkeh, you seem to know a lot about this stuff. Does it make sense that my 2.0 port would only respond to the uhci_hcd driver? Earlier you noted that "You have an EHCI controller, and it is working." Is that really true? I see in the lspci output that it reports that it wants ehci, but it doesn't seem to take that driver when a device is inserted.

----------

## Sorry Go Fish

It seems like this is a common problem with my motherboard. See This Google Groups Discussion. I'll see if I can figure it out, then will mark this thread as solved. Thanks to all who helped.

----------

