lsusb、lspci 与 lsscsi
100%

设备 · 第 6 课

lsusb、lspci 与 lsscsi

学习如何检查 USB 拓扑、PCI 功能、SCSI 层设备及其活动驱动程序。

Linux 提供针对总线和子系统的清单工具。每条命令展示不同视角,因此应结合标识符、拓扑、驱动程序、sysfs 路径和日志,而不要期待某个工具提供完整的硬件清单。

检查 USB 设备

lsusb 列出 USB 子系统可见的设备:

$ lsusb

输出通常包含总线号和设备号、厂商与产品 ID 对,以及来自本地 USB ID 数据库的描述。重新连接或重启后,数字总线/设备地址可能改变,不应将其当作持久身份。

使用以下命令显示控制器、集线器、端口、接口、驱动程序和速度之间的关系:

$ lsusb -t

还可以查看详细的描述符输出,但部分信息需要较高的读取权限。不要仅仅为了消除检查命令的权限提示,就授予范围过大的 USB 设备权限。

哪个命令以拓扑树形式显示 USB 设备?

检查 PCI 功能

lspci 列出在 PCI 和 PCI Express 总线上发现的功能:

$ lspci

内部和外部连接的 PCIe 设备可能包括图形、网络、存储、USB、音频和桥接控制器。使用以下命令显示当前使用的内核驱动程序和候选模块:

$ lspci -k

PCI 控制器出现在列表中,并不能证明其后的每个设备都已初始化或处于健康状态。排查问题时应检查驱动程序绑定和内核日志。

哪个命令会在 PCI 列表中添加内核驱动程序信息?

检查 SCSI 层设备

lsscsi 列出通过 Linux SCSI 中间层表示的设备:

$ lsscsi

其中可能包括原生 SCSI 设备,以及通过 SCSI 兼容层呈现的 SATA、USB 存储或虚拟磁盘。NVMe 命名空间通常属于不同子系统,lsscsi 无法提供其完整清单。

要查看包含多种块设备类型、以存储为中心的层次结构,还应使用 lsblk

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

lsscsi 主要列出什么?

解读清单结果

描述通常来自本地 ID 数据库,可能过于笼统或已经过时。列出的设备可能没有正常工作的驱动程序,虚拟化环境也可能提供模拟或半虚拟化硬件。应根据权限和所调查的问题,将结果与 udevadm info、sysfs、lsblk、网络工具以及 journalctl -kdmesg 相互关联。

这些实用工具可能分别打包,常见软件包包括 usbutilspciutilslsscsi。命令缺失时,应使用发行版软件包管理器,而不是下载来源不明的替代程序。

lspci 中看到设备,是否能证明它的驱动程序已活动并正常工作?

课程已完成

你已完成 lsusb、lspci 与 lsscsi

现在,你可以为所调查的设备子系统选择清单命令。

  • 使用 lsusblsusb -t 查看 USB 身份与拓扑。

  • 使用 lspci -k 查看 PCI 功能和驱动程序绑定。

  • 使用 lsscsi 查看 SCSI 层设备,使用 lsblk 查看块设备拓扑。

  • 将枚举结果与驱动程序、sysfs 和内核消息关联。

保存学习进度

创建免费账户即可保存本课进度,并在任意设备上继续学习。

创建免费账户
下一节
返回 设备