69

I want to buy an external USB 3.0 drive and I wonder how to figure out whether my laptop has such a port (or only 2.0).

Neither lsusb -v, nor /proc/bus/input/devices offers any obvious hints, although the former says a lot of 2.0 root hub which might imply v2 and not v3. Right?

75

lsusb does show you whether the kernel sees usb 3.0 support.

Contrast this non-USB3 system:

$ lsusb 
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 1210:2604 DigiTech 
Bus 002 Device 003: ID 0a5c:219c Broadcom Corp. 

with this one, which does support USB3:

$ lsusb 
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 08ff:168b AuthenTec, Inc. 
Bus 001 Device 004: ID 04f2:b1d6 Chicony Electronics Co., Ltd 
Bus 002 Device 015: ID 0cf3:3005 Atheros Communications, Inc. AR3011 Bluetooth

a "3.0 root hub" is present for USB3.

That said, I concur that the best way to determine if your hardware is USB3 is by looking at the ports themselves; USB3 is usually color-coded and is blue, and has some extra conductors (which are however a bit difficult to see). If a USB 3.0 port is not blue, you will most likely see the phrase "SS" for super speed next to it, like this:

Identifying USB 3.0 Ports

  • 1
    Sometimes when the name doesn't show USB3.0, you can use lsusb -t (see Bain's answer) or lsusb -v Of course you can copy a file and if it exceeds 480Mbps or 60MB/s transfer speed then it should be >USB2.0 (I've found sometimes lsusb doesn't show the versions correctly for my devices - they say 480M but I can copy faster than that.) – pd12 Apr 2 '16 at 9:38
21

USB 3 ports are blue. Just look at the ports on your laptop. If they aren't blue, they aren't USB 3 ports. There is probably some terminal command to determine this but just visually inspecting the ports will be the simplest.

Edit: An anonymous user suggested a helpful edit which was rejected, but I think it's helpful as it proves my answer isn't 100% correct. I'll copy it verbatim below and hope it proves useful:

I have read many places that the UBS 3.0 ports are blue, but that is not true in my experiences. I have a Dell Latitude E6430 that does have two 2.0 USB ports and two 3.0 USB ports. They are labeled with the above mentioned SS marking, but there is no blue parts of any kind visible from the outside of the laptop.

I have been researching this subject for a bit and I'm seeing the, sometimes condescending, but not in this case, comments about just looking. They are not always blue and as a matter of fact I'm a software test engineer and I work with numerous computers through the day and I have yet to find one where the port had any blue showing externally. I have seen a device with some blue but not the computer port.

Thanks for listening!

  • 3
    My Lenovo Thinkpad X240 also comes with two USB 3.0 ports and none of them is blue, they look exactly like every other USB port. They are labeled “SS” for “SuperSpeed”, but they are not blue. – dessert Sep 7 '17 at 13:55
  • @dessert Same here, with a Dell Inspiron. – Nonny Moose May 26 '18 at 22:18
15

USB host controllers are PCI devices, so you can view them with lspci. Look for 'xHCI' which is USB3:

$ lspci | grep USB
00:14.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller (rev 04)
00:1a.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (rev 04)
00:1d.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (rev 04)

lsusb -t will also show any xhci controllers or hubs:

$ lsusb -t | grep xhci
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M

The operating speed is shown at the end of each line. USB3 should be 5000M.

8

You should be able to find out by using a program such as UsbView, which gives very detailed and technical information. As noted on the github site,

USBView is a small GTK application to show what the device tree of the USB bus looks like. It shows...the topology of the USB bus. It also displays information on each individual device on the bus.

It has recently been updated, and is simple to compile and run. Here's how to do it:

First install some essential programs and gtk dependencies with

sudo apt-get install git build-essential libgtk2.0-dev libgtk-3-dev

Then enter

git clone git://github.com/gregkh/usbview.git

and cd to the usbview folder and run

./autogen.sh && ./configure

and then

make

You can either run sudo make install or sudo checkinstall, depending which you use.

When you run the program, you will need to use gksudo because of the probing it does:

gksudo usbview

You will see a screenshot as below detailing your usb capabilities: the host controllers listed will show the capabilities you have: I have no usb 3 host controller present.

enter image description here

  • 1
    cool app, but I never install from sources unless I contribute to the application. – sds Nov 15 '12 at 18:23
  • 1
    usbview is available in the universe repository since 14.04: packages.ubuntu.com/usbview – hfs Jul 11 '14 at 19:30
  • This looks like simply a graphical presentation of the text returned by lsusb and lspci, and installing an app just to answer this question seems a bit over the top. However, for repeated use, this does look like a nice tool. – Neil Mayhew Aug 21 '15 at 21:40
  • May just be me but I just tried usbview over 14.04 with the latest kernel updates and so on and it errors, so be aware! – PeterDz Jul 12 '16 at 11:11
  • 1
    ./autogen.sh && ./configure is producing bash: ./autogen.sh: No such file or directory – voo_doo Apr 13 '17 at 7:30
4

If the output of lsusb shows ports with varying USB versios and you're having trouble matching each line to the corresponding USB port of your machine, try the following: Plug in a memory stick at the port in question. Then run lsusb -t and look for the phrase "Mass Storage". The parent of this node corresponds to the USB port where you plugged in your memory stick. As Bain said, the transfer speed at the end of that line tells you the USB version (USB 1 is 12M, USB 2 is 480M, and USB 3 is 5000M on my machines).

(Sorry, I tried to just add a comment to Bain's answer but I don't have enough reputation.)

2

To check your USB versions just type:

sudo lsusb -v | grep -i bcdusb
  • Super easy answer – Bonn 8 hours ago

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.