When developing USB device drivers or troubleshooting unrecognized USB peripherals on Ubuntu/Debian, the usbutils package provides essential CLI utilities for inspecting the Linux kernel’s USB bus subsystem.
1. Visualize USB Bus Tree Topology (lsusb -t)
The lsusb -t command renders a physical tree layout displaying connected USB hubs, bus speeds (1.5M, 12M, 480M, 5000M, 10000M), and active driver bindings:
$ lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M
|__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 480M
|__ Port 3: Dev 4, If 0, Class=Vendor Specific Class, Driver=ftdi_sio, 12M2. Inspect Full Device Descriptors (lsusb -v)
# Inspect detailed USB descriptor tree for a specific Vendor ID / Product ID
sudo lsusb -v -d 0403:6001
Comments and corrections