How to Check USB Bus Topology and Transfer Speeds in Ubuntu Terminal Using lsusb

Universal Serial Bus (USB) standards span multiple generations—from legacy USB 2.0 (High-Speed 480 Mbps) to USB 3.2 Gen 1 (SuperSpeed 5 Gbps), USB 3.2 Gen 2 (SuperSpeed+ 10 Gbps), and modern USB4 / Thunderbolt 4 (up to 40 Gbps). When connecting high-bandwidth external devices—such as external NVMe storage enclosures, high-frame-rate webcams, or gigabit USB network dongles—a faulty cable or hub can silently degrade your connection to legacy USB 2.0 speeds. In Ubuntu, the lsusb -t command provides a real-time structural tree map detailing bus hierarchies and negotiated bandwidths.

Querying the USB Topology Tree with lsusb -t

The standard lsusb tool is included by default in Ubuntu as part of the usbutils package:

  1. Launch your terminal via Ctrl + Alt + T or connect over SSH.
  2. Run the tree-view command:
    lsusb -t
  3. The terminal renders an ASCII tree mapping every host controller, root hub, chained external hub, and connected peripheral:
    /:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M
        |__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=uas, 10000M
    /:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 480M
        |__ Port 2: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 4: Dev 4, If 0, Class=Video, Driver=uvcvideo, 480M

Decoding Negotiated USB Speed Indicators

The number appearing at the far right of each device branch indicates the exact physical speed negotiated between the peripheral and the USB host controller:

  • 1.5M (Low-Speed): Legacy USB 1.0/1.1 speed (1.5 Mbps), typical for basic computer mice and low-polling keyboards.
  • 12M (Full-Speed): USB 1.1 standard speed (12 Mbps), common for audio interfaces and microcontroller boards.
  • 480M (High-Speed): USB 2.0 standard speed (480 Mbps). If your USB 3.0 SSD enclosure shows 480M here, your cable or port is failing to negotiate SuperSpeed links.
  • 5000M (SuperSpeed): USB 3.2 Gen 1 (5 Gbps), supporting real-world transfer rates up to ~450 MB/s.
  • 10000M (SuperSpeed+): USB 3.2 Gen 2 (10 Gbps), delivering real-world throughput up to ~1,050 MB/s for fast NVMe enclosures.
  • 20000M: USB 3.2 Gen 2×2 (20 Gbps) dual-lane operations.

Identifying Device Vendor and Product IDs

To cross-reference a specific tree node with its commercial brand and model:

  1. Run standard lsusb to list all devices with vendor IDs:
    lsusb
  2. Locate the target entry (for example, Bus 002 Device 002: ID 0bda:9210 Realtek Semiconductor Corp. RTL9210 M.2 NVMe Adapter).
  3. For exhaustive descriptor dumps including maximum power draw (mA) and USB specification version, run:
    sudo lsusb -v -s 02:02

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.