lsusb, lspci, lsscsi
100%

Devices · Lesson 6

lsusb, lspci, lsscsi

Learn how to inspect USB topology, PCI functions, SCSI-layer devices, and their active drivers.

Linux offers bus- and subsystem-specific inventory tools. Each command shows a different view, so combine their identifiers, topology, drivers, sysfs paths, and logs instead of expecting one complete hardware list.

Inspecting USB Devices

lsusb lists USB devices visible through the USB subsystem:

$ lsusb

Output normally includes bus and device numbers, a vendor and product ID pair, and a description from the local USB ID database. The numeric bus/device address can change after reconnecting or rebooting and should not be treated as a persistent identity.

Display controller, hub, port, interface, driver, and speed relationships with:

$ lsusb -t

Verbose descriptor output is available, but some details require elevated read access. Do not grant broad USB-device permissions merely to make an inspection command quieter.

Which command displays USB devices as a topology tree?

Inspecting PCI Functions

lspci lists functions discovered on PCI and PCI Express buses:

$ lspci

Internal and externally attached PCIe devices can include graphics, network, storage, USB, audio, and bridge controllers. Show the kernel driver in use and candidate modules with:

$ lspci -k

A PCI controller appearing in this list does not prove that every device behind it is initialized or healthy. Check the driver binding and kernel logs when troubleshooting.

Which command adds kernel-driver information to a PCI listing?

Inspecting SCSI-Layer Devices

lsscsi lists devices represented through the Linux SCSI mid-layer:

$ lsscsi

This can include native SCSI devices and SATA, USB-storage, or virtual disks presented through SCSI-compatible layers. NVMe namespaces normally belong to a different subsystem and are not comprehensively inventoried by lsscsi.

For a storage-oriented hierarchy that includes many block-device types, use lsblk as well:

$ lsblk -o NAME,TYPE,SIZE,MODEL,SERIAL,TRAN,FSTYPE,MOUNTPOINTS

What does lsscsi primarily list?

Interpreting Inventory Results

Descriptions often come from local ID databases and can be generic or stale. A listed device can lack a working driver, and a virtualized environment can present emulated or paravirtual hardware. Correlate results with udevadm info, sysfs, lsblk, network tools, and journalctl -k or dmesg according to permissions and the problem being investigated.

The utilities may be packaged separately, commonly through packages such as usbutils, pciutils, and lsscsi. Use the distribution package manager rather than downloading unknown replacements when a command is absent.

Does seeing a device in lspci prove its driver is active and functioning correctly?

Lesson complete

You finished lsusb, lspci, lsscsi

You can now select an inventory command for the device subsystem in question.

  • Use lsusb and lsusb -t for USB identity and topology.

  • Use lspci -k for PCI functions and driver binding.

  • Use lsscsi for SCSI-layer devices and lsblk for block topology.

  • Correlate enumeration with drivers, sysfs, and kernel messages.

Keep your learning progress

Create a free account to save this lesson and continue learning on any device.

Create a free account
Next Lesson
Back to Devices