22

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?

10

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.

| improve this answer | |
  • 1
    Many devices are wired as USB devices, but are not connected to a "port" in the sense of a port like we have on the outside of the computer. They are just logically connected by USB (e.g. paths between the device and the USB hub may be directly on the motherboard of the system, such as the wired network port on the Raspberry Pi). They work just like they're plugged into standard USB ports, but of course can't be removed. – Jim MacKenzie Mar 20 '18 at 22:15
24

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.

| improve this answer | |
  • 2
    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 '14 at 19:09
9

check this

lsusb -t

-t Dump the physical USB device hierarchy as a tree

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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