lspciはLinuxに搭載されているPCIバスについての情報を表示するコマンドだ。
目次
- 1 lspciコマンドの基本
- 2 lspciコマンドのオプションたち
- 2.1 オプションの一覧
- 2.2 -sオプション:domain、bus、slot、funcを指定して表示するする
- 2.3 -dオプション:vendorとdeviceを指定して表示するする
- 2.4 -mオプション:旧形式でパラメータを"で囲んで表示する
- 2.5 -mmオプション:パラメータを"で囲んで表示する
- 2.6 -tオプション:ツリー形式で表示する
- 2.7 -vオプション:詳細に表示する
- 2.8 -vvオプション:さらに詳細に表示する
- 2.9 -vvvオプション:最も詳細に表示する
- 2.10 -kオプション:カーネルモジュールも表示する
- 2.11 -xオプション:PCI設定空間の先頭をダンプする
- 2.12 -xxxオプション:PCI設定空間をダンプする
- 2.13 -xxxxオプション:PCI設定空間を拡張してダンプする
- 2.14 -bオプション:PCIバスからの情報を表示する
- 2.15 -Dオプション:ドメイン番号も併せて表示する
- 2.16 -nオプション:vendorとdeviceを数字で表示する
- 2.17 -nnオプション:vendorとdeviceを名称と数字で表示する
- 2.18 -qオプション:認識できないデバイスはDNSに問い合わせ登録する
- 2.19 -qqオプション:ローカルのキャッシュをリセットしつつ認識できないデバイスはDNSに問い合わせ登録する
- 2.20 -Qオプション:ローカルのみで設定されているものでも中央データベースに問い合わせする
- 2.21 -iオプション:PCIのデータベースとして利用するファイルを指定する
- 2.22 -pオプション:カーネルモジュールの情報を取り込むファイルを指定する
- 2.23 -Mオプション: バスマッピングモードを有効にする
- 2.24 -Aオプション: PCIアクセス方法を指定する
- 2.25 -Oオプション:制御するパラメータに値を設定する
- 2.26 -H1オプション:構成メカニズム1でハードウェアにアクセスする
- 2.27 -H2オプション:構成メカニズム2でハードウェアにアクセスする
- 2.28 -Fオプション:-xオプションで得たファイルでPCIを設定する
- 2.29 -Gオプション:デバッグレベルを上げる
- 3 lspci関連コマンド
lspciコマンドの基本
コマンドの基本動作
使い方は、次のとおりだ。
$ lspci
Linuxに搭載されているPCIバスの情報を表示した。
lspciコマンドのオプションたち
オプションの一覧
後から詳細をご紹介するが、まずは一覧で見てみよう。
オプション -s
domain、bus、slot、funcを指定して表示するする。
オプション -d
vendorとdeviceを指定して表示するする。
オプション -v
詳細に表示する。
オプション -mm
パラメータを"で囲んで表示する。
オプション -t
ツリー形式で表示する。
オプション -m
旧形式でパラメータを"で囲んで表示する。
オプション -vv
さらに詳細に表示する。
オプション -vvv
最も詳細に表示する。
オプション -k
カーネルモジュールも表示する。
オプション -x
PCI設定空間の先頭をダンプする。
オプション -xxx
PCI設定空間をダンプする。
オプション -xxxx
PCI設定空間を拡張してダンプする。
オプション -b
PCIバスからの情報を表示する。
オプション -D
ドメイン番号も併せて表示する。
オプション -n
vendorとdeviceを数字で表示する。
オプション -nn
vendorとdeviceを名称と数字で表示する。
オプション -q
認識できないデバイスはDNSに問い合わせ登録する。
オプション -qq
ローカルのキャッシュをリセットしつつ認識できないデバイスはDNSに問い合わせ登録する。
オプション -Q
ローカルのみで設定されているものでも中央データベースに問い合わせする。
オプション -i
PCIのデータベースとして利用するファイルを指定する。
オプション -p
カーネルモジュールの情報を取り込むファイルを指定する。
オプション -M
バスマッピングモードを有効にする。
オプション -A
PCIアクセス方法を指定する。
オプション -O
制御するパラメータに値を設定する。
オプション -H1
構成メカニズム1でハードウェアにアクセスする。
オプション -H2
構成メカニズム2でハードウェアにアクセスする。
オプション -F
-xオプションで得たファイルでPCIを設定する。
オプション -G
デバッグレベルを上げる。
-sオプション:domain、bus、slot、funcを指定して表示するする
domain、bus、slot、funcを指定して表示するする書式は次のとおりだ。
$ lspci -s domain:bus:slot.func
domainが00、busが06のデバイスを指定して表示する場合は、次のコマンドだ。
$ lspci -s 00:06
domainが00、busが06のデバイスを指定して表示した。
bus、slot 、funcは省略できる。
-dオプション:vendorとdeviceを指定して表示するする
vendorとdeviceを指定して表示するする書式は次のとおりだ。
$ lspci -d vendor:device
vendorとdeviceは後述する-nオプションで確認できる。
vendor が8086とdeviceが2829のデバイスを指定して表示する場合は、次のコマンドだ。
$ lspci -d 8086:2829
vendor が8086とdeviceが2829のデバイスを指定して表示した。
-mオプション:旧形式でパラメータを"で囲んで表示する
それぞれのパラメータは半角空白で区切られているが、パラメータの名称の中に半角空白が含まれる場合もあるため、一つのパラメータを"で囲み、名称であることを明示する必要がある。
-mオプションはパラメータを"で囲んで表示する。
形式は昔のシステムで扱う形式での表示となる。
書式は次のとおりだ。
$ lspci -m
domainが00、busが06のデバイスを旧形式でパラメータを"で囲んで表示する場合は、次のコマンドだ。
$ lspci -m -s 00:06
domainが00、busが06のデバイスを旧形式でパラメータを"で囲んで表示した。
-mmオプション:パラメータを"で囲んで表示する
-mオプションと同じく、パラメータを"で囲んで表示するが、新形式の書式でパラメータを囲む。
書式は次のとおりだ。
$ lspci -mm
domainが00、busが06のデバイスを新形式でパラメータを"で囲んで表示する場合は、次のコマンドだ。
$ lspci -mm -s 00:06
domainが00、busが06のデバイスを新形式でパラメータを"で囲んで表示した。
-tオプション:ツリー形式で表示する
ツリー形式で表示する書式は次のとおりだ。
$ lspci -t
domainが00、busが01のデバイスをツリー形式で表示する場合は、次のコマンドだ。
$ lspci -t -s 00:01
domainが00、busが01のデバイスをツリー形式で表示した。
00:01のデバイスはfunc0の配下にfunc1が存在していることがわかる。
-vオプション:詳細に表示する
詳細に表示する書式は次のとおりだ。
$ lspci -v
domainが00、busが08のデバイスを詳細に表示しする場合は、次のコマンドだ。
$ lspci -v -s 00:08
domainが00、busが08のデバイスを詳細に表示した。
-vvオプション:さらに詳細に表示する
-vオプションよりもさらに詳細に表示する書式は次のとおりだ。
$ lspci -vv
domainが00、busが08のデバイスをさらに詳細に表示する場合は、次のコマンドだ。
$ lspci -vv -s 00:08
domainが00、busが08のデバイスをさらに詳細に表示した。
-vvvオプション:最も詳細に表示する
-vvオプションよりもさらに詳しく、最も詳細に表示する書式は次のとおりだ。
$ lspci -vvv
domainが00、busが08のデバイスを最も詳細に表示しする場合は、次のコマンドだ。
$ lspci -vvv -s 00:08
domainが00、busが08のデバイスを最も詳細に表示しした。
-kオプション:カーネルモジュールも表示する
カーネルモジュールも表示する書式は次のとおりだ。
$ lspci -k
domainが00、busが08のデバイスをカーネルモジュールも表示しする場合は、次のコマンドだ。
$ lspci -k -s 00:08
domainが00、busが08のデバイスをカーネルモジュールも表示した。
-xオプション:PCI設定空間の先頭をダンプする
PCI設定空間の先頭をダンプする書式は次のとおりだ。
$ lspci -x
domainが00、busが08のデバイスのPCI設定空間の先頭をダンプする場合は、次のコマンドだ。
$ lspci -x -s 00:08
domainが00、busが08のデバイスのPCI設定空間の先頭をダンプした。
-xxxオプション:PCI設定空間をダンプする
-xオプションと違い、PCI設定空間をすべてダンプする。
管理者権限以外で-xxxオプションを実行すると先頭の設定空間しかダンプしない。
書式は次のとおりだ。
$ lspci -xxx
domainが00、busが08のデバイスのPCI設定空間をダンプする場合は、次のコマンドだ。
$ lspci -xxx -s 00:08
domainが00、busが08のデバイスのPCI設定空間をダンプした。
-xxxxオプション:PCI設定空間を拡張してダンプする
PCI設定空間の中でも拡張した空間までダンプする書式は次のとおりだ。
$ lspci -xxxx
domainが00、busが08のデバイスのPCI設定空間を拡張してダンプする場合は、次のコマンドだ。
$ lspci -xxxx -s 00:08
domainが00、busが08のデバイスのPCI設定空間を拡張してダンプした。
-bオプション:PCIバスからの情報を表示する
PCIバスからの情報を表示する書式は次のとおりだ。
$ lspci -b
domainが00、busが06のデバイスのPCIバスからの情報を詳細に表示する場合は、次のコマンドだ。
$ lspci -b -v -s 00:06
domainが00、busが06のデバイスのPCIバスからの情報を詳細に表示した。
-bオプションなしの場合とありの場合でIRQ番号が変わっている。
-Dオプション:ドメイン番号も併せて表示する
ドメイン番号も併せて表示する書式は次のとおりだ。
$ lspci -D
domainが00、busが08のデバイスのドメイン番号も併せて表示する場合は、次のコマンドだ。
$ lspci -D -s 00:08
domainが00、busが08のデバイスのドメイン番号も併せて表示した。
-nオプション:vendorとdeviceを数字で表示する
vendorとdeviceを数字で表示する書式は次のとおりだ。
$ lspci -n
domainが00、busが08のデバイスのvendorとdeviceを数字で表示する場合は、次のコマンドだ。
$ lspci -n -s 00:08
domainが00、busが08のデバイスのvendorとdeviceを数字で表示した。
-nnオプション:vendorとdeviceを名称と数字で表示する
vendorとdeviceを名称と数字で表示する書式は次のとおりだ。
$ lspci -nn
domainが00、busが08のデバイスのvendorとdeviceを名称と数字で表示しする場合は、次のコマンドだ。
$ lspci -nn -s 00:08
domainが00、busが08のデバイスのvendorとdeviceを名称と数字で表示した。
-qオプション:認識できないデバイスはDNSに問い合わせ登録する
認識できないデバイスはDNSに問い合わせ登録する書式は次のとおりだ。
$ lspci -q
-qqオプション:ローカルのキャッシュをリセットしつつ認識できないデバイスはDNSに問い合わせ登録する
ローカルのキャッシュをリセットしつつ認識できないデバイスはDNSに問い合わせ登録する書式は次のとおりだ。
$ lspci -qq
-Qオプション:ローカルのみで設定されているものでも中央データベースに問い合わせする
ローカルのみで設定されているものでも中央データベースに問い合わせする書式は次のとおりだ。
$ lspci -Q
-iオプション:PCIのデータベースとして利用するファイルを指定する
PCIのデータベースとして利用するファイルを指定する書式は次のとおりだ。
$ lspci -i ファイルパス
PCIのデータベースとして利用するファイルを/dev/pcitestに指定する場合は、次のコマンドだ。
$ lspci -I /dev/pcitest
-pオプション:カーネルモジュールの情報を取り込むファイルを指定する
カーネルモジュールの情報を取り込むファイルを指定する書式は次のとおりだ。
$ lspci -p ファイルパス
カーネルモジュールの情報を取り込むファイルを/dev/kerneltestに指定する場合は、次のコマンドだ。
$ lspci -p /dev/kerneltest
-Mオプション: バスマッピングモードを有効にする
バスマッピングモードを有効にする書式は次のとおりだ。
$ lspci -M
-Aオプション: PCIアクセス方法を指定する
PCIアクセス方法を指定する書式は次のとおりだ。
$ lspci -A アクセス方法
-Oオプション:制御するパラメータに値を設定する
制御するパラメータに値を設定する書式は次のとおりだ。
$ lspci -O パラメータ名=値
制御するパラメータtestに値1010を設定する場合は、次のコマンドだ。
$ lspci -O test=1010
-H1オプション:構成メカニズム1でハードウェアにアクセスする
構成メカニズム1でハードウェアにアクセスする書式は次のとおりだ。
$ lspci -H1
-H2オプション:構成メカニズム2でハードウェアにアクセスする
構成メカニズム2でハードウェアにアクセスする書式は次のとおりだ。
$ lspci -H2
構成メカニズム2でハードウェアにアクセスする場合は、次のコマンドだ。
-Fオプション:-xオプションで得たファイルでPCIを設定する
-xオプションで得たファイルでPCIを設定する書式は次のとおりだ。
$ lspci -F ファイルパス
-xオプションで得たファイル/tmp/pcitestでPCIを設定する場合は、次のコマンドだ。
$ lspci -F /tmp/pcitest
-Gオプション:デバッグレベルを上げる
デバッグレベルを上げる書式は次のとおりだ。
$ lspci -G
lspci関連コマンド
最後にlspciコマンドに関連して、基本的なLinuxに搭載されているPCIバスについての情報を表示するコマンドも紹介しておく
lsusbコマンド
USBの情報を表示する
まとめ
Linuxのハードウェアがどのような構成になっているかはPCIブリッジを確認すればわかる。また、ハードウェアが正常に動作しているかはPCIブリッジの接続状況を診断すればわかる。そのような時にlspciを活用しよう。
また、-xオプションを使えばバックアップも取れるので、ハードウェア追加前などにバックアップすることでリスクを軽減できる。