lspci
コマンド の出力について概要をまとめました。
lspci
lspci は PCIバスとそこに接続されたデバイスの情報を表示してくれるコマンドです。
オプションを付けない場合
lspci
を、オプションを付けずに実行した場合は何が表示されるのでしょうか。
下は、 AWS EC2 での実行した場合の出力例です。
[ec2-user@sample systemd]$ lspci
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma]
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.3 Non-VGA unclassified device: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)
00:03.0 VGA compatible controller: Amazon.com, Inc. Device 1111
00:04.0 Non-Volatile memory controller: Amazon.com, Inc. Device 8061
00:05.0 Ethernet controller: Amazon.com, Inc. Elastic Network Adapter (ENA)
このうちの Non-VGA unclassified device の行を例にして、何が表示されているのか見ていきましょう。
バス・デバイス・ファンクション
一番左の数値は、バス番号、デバイス番号、ファンクション番号を表します。
バス番号
:
の左にある数値です。
16真数で、 範囲は 0-ff です。
3行目では 00 となっています。
デバイス番号
:
と .
の間にある数値です。
16真数で、 範囲は 0-1f です。
3行目では 01 となっています。
ファンクション番号
.
の右にある数値です。
範囲は 0-7 です。
3行目では 3 です。
ファンクションって何?
ファンクションというのは、PCIデバイスに搭載される機能です。
ひとつのPCIデバイスには2つ以上のファンクションが搭載されることがあります。
たとえばネットワークカードには、2つの NIC がある場合があります。
そういうときにひとつめを ファンクション 0、 ふたつめを ファンクション 1 とします (Viscarola, 2009)。
デバイスクラス
デバイスクラスというのは、どんなデバイスなのか(オーディオデバイスなのか、ネットワークデバイスなのか)、デバイスの種類を表すものです。
1行目から6行目まで:
- Host bridge
- ISA bridge
- Non-VGA unclassified device
- VGA compatible controller
- Non-Volatile memory controller
- Ethernet controller
- Elastic Network Adapter (ENA)
ベンダ
1行目から6行目までに2社含まれています。
- Intel Corporation
- Amazon.com, Inc.
名前
- 440FX - 82441FX PMC [Natoma]
- 82371SB PIIX3 ISA [Natoma/Triton II]
- 82371AB/EB/MB PIIX4 ACPI
- Device 1111
- Device 8061
リビジョン
3行目ではリビジョンも書かれています。
その値は 08 です。 16進数なので、もし 11 となっていたら10進数で 17 です。
もうちょっと詳しく表示してみる
PCIデバイスは、device's configuration space と呼ばれるレジスタを持っており、デバイスID、ベンダID、デバイスクラスといった情報を格納しています。
全て数値ですが、それをOSが読みやすい形に変換して表示します。
ベンダID は PCI-SIG (PCI Special Interest Group) と呼ばれる企業団体が各企業に割り当てます。
デバイスID は PCI-SIG 内 のベンダが割り当てます。
それらのIDは lspci
コマンド に -nn
オプションを付けると表示されます。
[ec2-user@sample systemd]$ lspci -nn
00:00.0 Host bridge [0600]: Intel Corporation 440FX - 82441FX PMC [Natoma] [8086:1237]
00:01.0 ISA bridge [0601]: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II] [8086:7000]
00:01.3 Non-VGA unclassified device [0000]: Intel Corporation 82371AB/EB/MB PIIX4 ACPI [8086:7113] (rev 08)
00:03.0 VGA compatible controller [0300]: Amazon.com, Inc. Device [1d0f:1111]
00:04.0 Non-Volatile memory controller [0108]: Amazon.com, Inc. Device [1d0f:8061]
00:05.0 Ethernet controller [0200]: Amazon.com, Inc. Elastic Network Adapter (ENA) [1d0f:ec20]
デバイスクラスコード
デバイスクラスの右にある、 [ ] で囲まれた数値です。 16進数で表示されます。
ベンダID・デバイスID
右の方に [ ] の中に :
で区切って2つの数字が表示されています。
左がベンダID、右がデバイスIDです。
いずれも16進数です。
インテルは 8086, Amazon.com, Inc. は 1d0f になっていますね。
References
- Viscarola, P. (2009). PCI Function Number. OSR. https://community.osr.com/discussion/155585