Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I copy some files between my external HDD and Lenovo T400 laptop. The external HDD is 7 years old and has "USB 2.0" on its enclosure, and the laptop is 3 years old. The copying speed is mostly 8.3MB/sec, and no more than 10MB/sec. I wonder if there is module for USB 2.0 loaded? If not, how shall I get one?

The output of lsmod | grep hci is

firewire_ohci 40172 0
firewire_core 56906 1 firewire_ohci. 

I guess both are about firewire not USB.

Note lsmod | grep HCI returns nothing.


share|improve this question
up vote 3 down vote accepted

USB 1 only goes up to 12Mb/s = 1.5MB/s raw bus rate (a bit less for the effective rate since the raw rate includes the command overhead). So you are definitely using USB 2. USB 2 is older than Ubuntu anyway.

The module for USB 2.0 support is ehci_hcd. I think that all Ubuntu kernels include it as a module, but I'm not sure, it may be included in the kernel image in your version.

You can check what USB controllers you have by running lspci; you're likely to see several USB1 controllers and one USB2 controller (USB2 controllers can handle more devices, so most computers can do with a single one). lspci -v will show what driver is handling each PCI device.

The easiest way of finding out in detail what the disk is connected to is to run udevadm info -a -n /dev/sdb (or whatever the block device is corresponding to the disk). You can also look up the information directly under /sys (that's what udevadm does); look where the symlink /sys/block/sdb points to.

There is also some information in the output of lsusb -v. For a hard disk, there'll be a line bInterfaceClass 8 Mass Storage. The bcdUSB value is the version of the USB protocol: 2.00 for a USB2 device. The bus number identifies which hub the device is connected to (which may be the root hub inside the controller).

share|improve this answer
Thanks! (1) Do you mean ehci_hcd for USB 2.0 may be built into the kernel, so lsmod doesn't give any information about it? (2)When I run udevadm info -a -n /dev/sdb, among many reports about looking at (parent) device ..., what should I look for? – Tim Aug 18 '12 at 13:28
@Tim Look at the ones about USB, they'll be near the bottom. When I plug in a USB flash drive on my machine, the next-to-last device has KERNELS=="usb1" and ATTRS{product}=="EHCI Host Controller". – Gilles Aug 18 '12 at 13:41
lsusb is a good command and might help – Joe Aug 19 '12 at 5:05

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.