lspci
概述
参考:
列出所有 PCI 设备。在列出的设备信息中,包含了一些供应商的名称、分类名称、etc. 信息。这些信息统一从 pci.ids 文件 文件中获取。
CentOS 包:pciutils
Ubuntu 包:pciutils
其中还有 setpci 工具用来配置 PCI 设备。
TODO: lspci 是如何从 Linux 中拿到 PCI 设备列表的?
Syntax(语法)
lspci [OPTIONS]
OPTIONS
基本显示模式
- -mm # 以机器可读的形式转储 PCI 设备数据,以便于脚本解析。 显示内容详见 详细格式,通常与 -v 一起使用
- -m # 与 -mm 一样,但是向后兼容。不要在新代码中使用
展示内容相关选项
- -v # 显示 PCI 设备的详细信息。多次使用 -v 可以显示更多信息,最多支持 3 个 v。
- -k # 显示用于处理 PCI 设备的内核驱动以及能够处理ta的内核模块。在正常输出模式下若使用 -v 选项时默认打开 -k。
- -D # 始终显示 PCI 的 Domain 部分。
选择指定设备选项
-s [[[[<DOMAIN>]:]<BUS>]:][<DEVICE>][.[<FUNC>]]
# 仅显示指定域中的设备(如果您的机器有多个主机桥,它们可以共享一个 Bus 编号空间,或者它们中的每一个都可以寻址自己的 PCI 域;域编号从 0 到 ffff),bus (0 到 ff)、设备(0 到 1f)和功能(0 到 7)。设备地址的每个组成部分都可以省略或设置为*
,均表示“任意值”。所有数字都是十六进制的。例如,“0:”表示总线 0 上的所有设备,“0”表示任何总线上设备 0 的所有功能,“0.3”选择所有总线上设备 0 的第三个功能,“.4”仅显示每个总线上的第四个功能设备。- 注意:-s 的值可以通过 uevent 文件中的 PCI_SLOT_NAME 字段的值获取
-d [<VENDOR_ID>]:[<DEVICE_ID>][:<CLASS_ID>]
# 根据指定的 VENDOR_ID、DEVICE_ID、CLASS_ID 显示 PCI 设备。若是某个 ID 为空可以省略,e.g.-d ::0200
表示只获取 CLASS_ID 为 0200 的 PCI 设备
ID 与名称的解析行为选项
- -n 显示数字化ID,而不是名称。
- -nn 显示数字化供应商和设备ID。
EXAMPLE
显示所有 Ethernet controller 类型的 PCI 设备(i.e. 显示所有网卡,因为 0200 表示网卡),并且始终显示 PCI Addr 的 Domain 部分。
lspci -Dd ::0200
显示模式与现实内容示例
lspci -Dvmmnnk
显示效果如下
~]# lspci -Dvmmnnk | more
Slot: 0000:00:00.0
Class: Host bridge [0600]
Vendor: Intel Corporation [8086]
Device: Xeon E7 v3/Xeon E5 v3/Core i7 DMI2 [2f00]
SVendor: Intel Corporation [8086]
SDevice: Device [0000]
Rev: 02
ProgIf: 00
NUMANode: 0
Slot: 0000:00:02.0
Class: PCI bridge [0604]
Vendor: Intel Corporation [8086]
Device: Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 2 [2f04]
SVendor: Intel Corporation [8086]
SDevice: Device [0000]
Rev: 02
ProgIf: 00
Driver: pcieport
NUMANode: 0
......略
详细格式
使用 -vmm 选项输出下面格式的内容
~]# lspci -vmm | more
Slot: 00:00.0
Class: Host bridge
Vendor: Intel Corporation
Device: Xeon E7 v3/Xeon E5 v3/Core i7 DMI2
SVendor: Intel Corporation
SDevice: Device 0000
Rev: 02
ProgIf: 00
NUMANode: 0
Slot: 00:02.0
Class: PCI bridge
Vendor: Intel Corporation
Device: Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 2
SVendor: Intel Corporation
SDevice: Device 0000
Rev: 02
ProgIf: 00
NUMANode: 0
......略
-vmm 输出的格式是由空行分隔的 PCI 设备信息。每个 PCI 设备信息称为 record(记录),每条有多行,每行是一个 TAG: VALUE
对。标记和值由单个制表符分隔。
有如下 TAG 可用
- Slot # 设备所在插槽的名称(
[domain:]bus:device.function
)。 该 TAG 始终是记录中的第一个。 - Class # 类别
- Vendor # 供应商
- Device # 设备名称或编号
反馈
此页是否对你有帮助?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.