1. 程式人生 > >Linux系統之lspci命令介紹

Linux系統之lspci命令介紹

  lspci,顧名思義,就是顯示所有的pci裝置資訊。pci是一種匯流排,而通過pci匯流排連線的裝置就是pci裝置了。如今,我們常用的裝置很多都是採用pci匯流排了,如:網絡卡、儲存等。下面就簡單介紹下該命令。

  lspci:顯示所有的pci裝置資訊。包括裝置的BDF,裝置型別,廠商資訊等。
  lspci -t [BDF]:顯示指定BDF號的裝置資訊。
  lspci -m/-mm:以一種機器可讀的格式來顯示pci裝置資訊。下面的例項可以看出其具體的區別。

# lspci -s ff:13.1
ff:13.1 System peripheral: Intel Corporation Broadwell Memory Controller 0
- Target Address/Thermal/RAS (rev 03) # lspci -mm -s ff:13.1 ff:13.1 "System peripheral" "Intel Corporation" "Broadwell Memory Controller 0 - Target Address/Thermal/RAS" -r03 "Intel Corporation" "Broadwell Memory Controller 0 - Target Address/Thermal/RAS"

  lspci -t:以樹的形式顯示pci裝置資訊。
  lspci -v/-vv/-vvv:顯示詳細的pci裝置資訊,v越多,越詳細,當然,上限3個。

# lspci -s ff:1f.2
ff:1f.2 System peripheral: Intel Corporation Broadwell Power Control Unit (rev 03)
# lspci -v -s ff:1f.2
ff:1f.2 System peripheral: Intel Corporation Broadwell Power Control Unit (rev 03)
    Flags: fast devsel
# lspci -vv -s ff:1f.2
ff:1f.2 System peripheral: Intel Corporation Broadwell Power
Control Unit (rev 03) Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- # lspci -vvv -s ff:1f.2 ff:1f.2 System peripheral: Intel Corporation Broadwell Power Control Unit (rev 03) Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-

  lspci -x/-xxx/-xxxx:-x以16進位制資訊顯示pci配置空間;-xxx顯示部分讀配置空間會crash的裝置;-xxxx顯示PCI-x2.0或者PCI-e匯流排擴充套件的配置空間。
  lspci -b:以匯流排的角度來顯示所有的IRQ和地址。根據我的觀察,大部分資訊和不帶引數時顯示一致,除了SR-IOV裝置分配出的Virtual Function裝置。如下示例:物理網絡卡PF(physical function )顯示一直 ,但VF(virtual function )顯示卻不同。

# lspci -b -s 0a:00.1; lspci -b -s 0a:10.0
0a:00.1 Ethernet controller: Intel Corporation Ethernet Controller 10-Gigabit X540-AT2 (rev 01)
0a:10.0 Ethernet controller: Illegal Vendor ID Device ffff (rev 01)
# lspci -s 0a:00.1; lspci -s 0a:10.0
0a:00.1 Ethernet controller: Intel Corporation Ethernet Controller 10-Gigabit X540-AT2 (rev 01)
0a:10.0 Ethernet controller: Intel Corporation X540 Ethernet Controller Virtual Function (rev 01)

  lspci -D:顯示PCI domain號,預設的不加引數命令並不顯示該值。如下示例:

# lspci -s 0a:00.0
0a:00.0 Ethernet controller: Intel Corporation Ethernet Controller 10-Gigabit X540-AT2 (rev 01)
# lspci -D -s 0a:00.0
0000:0a:00.0 Ethernet controller: Intel Corporation Ethernet Controller 10-Gigabit X540-AT2 (rev 01)

  lspci -n/-nn:顯示裝置的vendor廠商號和device裝置號;顯示廠商等資訊和名稱。

# lspci -nn | grep ff:1f.2
ff:1f.2 System peripheral [0880]: Intel Corporation Broadwell Power Control Unit [8086:6f8a] (rev 03)
# lspci -n | grep ff:1f.2
ff:1f.2 0880: 8086:6f8a (rev 03)

  lspci -D:顯示裝置的廠商號、裝置號、Class號。

# lspci -Q -s 0c:00.1
0c:00.1 Class 0200: Device 8086:1528 (rev 01)