Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I recently found out about the lsusb command while troubleshooting a headset issue..

My laptop runs debian and doesn't have anything plugged into USB currently, but when I run the "lsusb" command, I still get quite a bit of output:

root@t500:~# lsusb
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 003: ID 0a5c:2145 Broadcom Corp. Bluetooth with Enhanced Data Rate II
Bus 004 Device 002: ID 08ff:2810 AuthenTec, Inc. AES2810
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0781:b6d0 SanDisk Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Could someone break down what this means in more detail?

The SanDisk card is connected via PCMCIA, not USB. Are both PC cards and USB devices listed in lsusb?

I don't have any external bluetooth connected, why would this display?

Why are some root hubs 1.1, and some 2.0? Does that mean some of my USB ports are 2.0 and others aren't?

What is a root hub exactly, just an empty USB port?

share|improve this question

3 Answers 3

up vote 4 down vote accepted

A USB hub is a device that has one cord that plugs into one USB port, but provides multiple USB ports for you to plug devices into. It's essentially a USB multiplexer.

A root hub, AFAIK, is a USB hub that's internal. For example, there might ony be one USB slot in your motherboard, but there are multiple external ports because there's an internal root hub plugged into the motherboard. (This is simplified, of course. I'm not an expert in hardware.)

The Bluetooth device is the chip inside your computer that actually broadcasts Bluetooth radio traffic. Probably, it's wired through a USB port inside the computer's case.

With regards to the display of "Linux Foundation", my guess is that that's where the drivers come from. But I'm not sure.

share|improve this answer

check this

lsusb -t

-t Dump the physical USB device hierarchy as a tree

share|improve this answer

The "root hub" is a phony device and represents the bus itself. It always has a device number of 1 on whatever bus it sits on. The "manufacturer" is always 1d6b, the "Linux Foundation," but so far as I can tell, that's merely to create a "root" for the tree's "branches" (as you'll see from lsusb -t, as suggested by Wagner). The nature of the bus (version 1.1, 2.0, 3.0) is reflected is the device ID (0001, 0002, 0003).

(A subtle point -- there actually is a "USB Host Controller" that is a physical device -- but it's NOT itself a USB device! It's normally a PCI device. For instance, on my machine I have two USB buses, and two USB Host Controllers visible by the lspci command. They're made by Intel, not the Linux Foundation. A "USB root hub" represents the physical PCI device. I believe that the whole "Linux Foundation" thing came about because the physical device has PCI, not USB, identifiers. http://www.usblyzer.com/usb-topology.htm)

The SanDisk device might present itself to the outside world as a PCMCIA slot (I'm guessing) but internally it's connected to USB Bus 001. (Again, it's labeled as Device 002 because the bus itself is Device 001.)

Similarly, the Bluetooth device is internal (as strugee noted) and again is connected to a USB bus, in this case Bus 004, which is a USB 1.1 (low-speed) bus. That makes sense, since Bluetooth is relatively low speed. On the same bus is the AuthenTec device, which is a fingerprint scanner, again low-speed.

So this output indicates that you have eight (!) built-in USB buses, with three devices connected to them. And you have two high-speed USB buses and six low-speed ones. Some or all of these might have external ports for plugging in various USB external devices. You can try plugging in a device and running lsusb again to see which port is connected to which bus.

share|improve this answer
    
P.S. -- it looks like MS Windows also cheats on this question, using the PCI identifiers for the USB Root Hubs. There's no good solution, I suppose, so the "Linux Foundation" one is reasonable. The MSW solution risks conflicting with a real USB device ID, while offering the advantage of being able to look it up in the PCI registry. (It turns out that Intel has a vendor ID of 8086 for both USB and PCI.) –  John F Feb 21 at 19:09

Your Answer

 
discard

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.