Linux lspci コマンド
lspci コマンドとは
lspciは、Linux システムで、すべての PCI デバイス情報を一覧表示するための実用的なツールコマンドです。PCI(Peripheral Component Interconnect)は、マザーボードとさまざまなハードウェアデバイスを接続するためのコンピュータバス規格です。
このlspciコマンドを使用することで、システム管理者と開発者は以下のことができます:
- システムにインストールされているすべての PCI デバイスを表示する
- ベンダー ID、デバイス ID などを含むデバイスの詳細情報を取得する
- ハードウェアの互換性の問題を診断する
- ドライバーが正しくロードされているかを確認する
基本構文
lspciコマンドの基本構文は以下の通りです:
lspci [选项]
オプションを何も指定しない場合は、lspciシステム内のすべての PCI デバイスの簡易情報リストが表示されます。
よく使うオプションと引数
詳細情報を表示する
例
lspci -v # 詳細情報を表示する(verbose)
lspci -vv # より詳細な情報を表示する(very verbose)
lspci -vvv # 最も詳細な情報を表示する(very very verbose)
lspci -vv # より詳細な情報を表示する(very verbose)
lspci -vvv # 最も詳細な情報を表示する(very very verbose)
特定デバイスの照会
例
lspci -s <バス>:<デバイス>.<ファンクション> # 特定のデバイス情報を表示する
例えば:
例
lspci -s 00:02.0 # バス00、デバイス02、ファンクション0のデバイスを表示する
その他のよく使うオプション
例
lspci -n # ベンダーIDとデバイスIDを数値形式で表示する
lspci -nn # 数値IDとデバイス名を同時に表示する
lspci -k # カーネルドライバーモジュール情報を表示する
lspci -t # ツリー図でデバイスの階層構造を表示する
lspci -mm # 機械可読形式で出力する
lspci -D # 完全なドメイン名(ドメイン番号を含む)を表示する
lspci -nn # 数値IDとデバイス名を同時に表示する
lspci -k # カーネルドライバーモジュール情報を表示する
lspci -t # ツリー図でデバイスの階層構造を表示する
lspci -mm # 機械可読形式で出力する
lspci -D # 完全なドメイン名(ドメイン番号を含む)を表示する
出力の解釈
典型的なlspci出力は以下の通りです:
00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 01) 00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 01) 00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 08) 00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01) 00:07.2 USB controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01) 00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08) 00:0f.0 VGA compatible controller: VMware SVGA II Adapter 00:10.0 SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 01) 00:11.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01) 00:12.0 Multimedia audio controller: Ensoniq ES1371/ES1373 / Creative Labs CT2518 (rev 02)
出力形式の説明:
- 最初の部分:
00:00.0はデバイスアドレスで、形式はバス:デバイス.機能 - 2番目の部分:デバイスタイプ。例:「Host bridge」「VGA compatible controller」など
- 3番目の部分:デバイスのベンダーと具体的なモデル
実際の応用例
例1:すべてのPCIデバイスの基本情報を表示する
例
lspci
例2:グラフィックカードの詳細情報を表示する
例
lspci -v | grep -i vga -A 12
例3:USBコントローラーとそのドライバー情報を表示する
例
lspci -v -k | grep -i usb -A 3
例4:ツリー構造でPCIデバイスを表示する
例
lspci -t
出力例:
-[0000:00]-+-00.0
+-01.0
+-07.0
+-07.1
+-07.2
+-07.3
+-0f.0
+-10.0
+-11.0
\-12.0
よくある問題の解決
1. コマンドが見つからない場合
システムに次のメッセージが表示された場合lspci: command not found、インストールが必要なpciutilsパッケージ:
例
# Debian/Ubuntu
sudo apt-get install pciutils
# CentOS/RHEL
sudo yum install pciutils
sudo apt-get install pciutils
# CentOS/RHEL
sudo yum install pciutils
2. 権限が不足している場合
一般ユーザーがlspciを実行する場合、完全な情報を取得できない場合があります。その場合は sudo を使用できます。sudo:
例
sudo lspci -v
3. デバイス認識の問題
一部のデバイスが認識されない場合は、PCI ID データベースの更新を試みてください:
例
sudo update-pciids
上級テクニック
1. grep と組み合わせて特定デバイスをフィルタリングする
例
lspci | grep -i ethernet # ネットワークカードを検索する
lspci | grep -i audio # サウンドカードを検索する
lspci | grep -i audio # サウンドカードを検索する
2. デバイス情報をファイルにエクスポートする
例
lspci -vvv > pci_info.txt
3. デバイスの完全なコンフィギュレーション空間を表示する
例
lspci -xxxx # コンフィギュレーション空間を16進数で表示する
まとめ
lspciは、Linux システムで PCI デバイス情報を診断・確認するための重要なツールです。この記事の学習を通じて、以下のことができるようになります:
- 理解すること
lspciコマンドの基本的な使い方とよく使うオプション - 解釈すること
lspciの出力情報 - 使用すること
lspciよくあるハードウェア認識の問題を解決すること - いくつかの高度な使用テクニックを習得すること
システム管理者や開発者にとって、熟練したlspciコマンドの使用は、ハードウェア関連の問題を迅速に特定するのに役立ち、Linux システム保守の重要なスキルの一つです。