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.
Devices · Lesson 6
lsusb, lspci, lsscsi
Learn how to inspect USB topology, PCI functions, SCSI-layer devices, and their active drivers.
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?
Use Explore Hardware Devices in Linux to compare these subsystem views on one controlled host.
Lesson complete
You finished lsusb, lspci, lsscsi
You can now select an inventory command for the device subsystem in question.
Use
lsusbandlsusb -tfor USB identity and topology.Use
lspci -kfor PCI functions and driver binding.Use
lsscsifor SCSI-layer devices andlsblkfor 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