連載
» 2019年01月18日 05時00分 公開

Linux基本コマンドTips(274):【 lspci 】コマンド――PCIデバイスの情報を表示する

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、PCIデバイスの情報を表示する「lspci」コマンドです。

[西村めぐみ,@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、PCIデバイスの情報を表示する「lspci」コマンドです。

lspciコマンドとは?

 「lspci」はPCIデバイスの情報を表示するコマンドです。接続されているPCIデバイスを一覧表示できる他、詳細情報を表示可能です。



lspciコマンドの書式

lspci [オプション]

※[ ]は省略可能な引数を示しています。





lspciの主なオプション(※1)

短いオプション 意味
-s ドメイン:バス:デバイス.ファンクション 表示したいデバイスの識別番号を全て16進数で指定する(各要素は省略可能、任意の値という意味で「*」も使用可能)(本文を参照
 指定例
 -s ドメイン:バス:デバイス.ファンクション
 -s ドメイン:バス:デバイス
 -s バス:デバイス
 -s バス:*
 -s デバイス
 -s デバイス.ファンクション
 -s .ファンクション
-d ベンダーID:デバイスID 表示したいデバイスのベンダーIDとデバイスIDを16進数で指定する(それぞれ省略可能、ベンダーIDのみを指定したい場合は「-d 8086:」のように末尾に「:」を付ける)
-D ドメイン番号も表示する
-k PCIデバイスに使用されているドライバも表示する
-mm,-m 文字列を "〜"(ダブルクオート)で囲むなど、機械で処理しやすい書式で表示する
-t デバイスをツリーで表示する
-n ベンダーとデバイスコードを名称ではなく16進のIDで表示する
-nn ベンダーとデバイスコードを名称とIDの両方で表示する
-i ファイル ベンダーIDの一覧が書かれたファイルを指定する(デフォルトは「/usr/share/hwdata/pci.ids」)(※2)
-p ディレクトリ PCIバスの情報取得元のディレクトリを指定する(デフォルトは/proc/bus/pci)(※3)
-b カーネル側からのIRQ(割り込み番号)とアドレスの代わりに、PCIバス側からのIRQとアドレスを表示する(IRQの競合を調べることができる)
-v 詳細を表示する
-vv -vよりさらに詳しい情報を表示する

※1 この他、デバッグ用のオプションがある。一部のオプションはシステムのクラッシュを招く可能性があり、rootユーザーだけが指定できる(lspci --helpを参照)。
※2 Ubuntu 18.04.1 LTSに含まれるlspciコマンドでは、/usr/share/misc/pci.idsをデフォルトで参照する。
※3 Ubuntu 18.04.1 LTSに含まれるlspciコマンドでは、/lib/modules/カーネルのバージョン/modules.pcimapをデフォルトで参照する。





PCIデバイスを一覧表示する

 「lspci」で、PCIデバイスを一覧表示します(画面1)。識別番号(バス:デバイス:ファンクション)に続いて、デバイスの種類と「:」記号、ベンダー名とデバイス名を表示します。デバイスによってはリビジョン番号も表示します。

 ベンダー名とデバイス名は、「/usr/share/hwdata/pci.ids」などに書かれている情報に基づいています。「-n」オプションを指定すると、名称ではなく16進数によるIDを表示します。両方同時に表示したい場合は「-nn」オプションを使います。

 画面1では、「lspci」の実行結果に続き、比較用に「lspci -n」と「lspci -nn」の実行結果を表示しました。headコマンドで冒頭3行分のみを選んでいます。

コマンド実行例

lspci

(PCIデバイスを一覧表示する)(画面1

lspci -n

(ベンダーIDとデバイスIDで表示する)(画面1

lspci -nn

(ベンダーとデバイスの名称とIDを表示する)(画面1


画面1 画面1 PCIデバイスの情報を表示したところ


ドライバを併せて表示する

 「-k」オプションを指定すると、デバイスを制御しているドライバ(カーネルドライバ)を併せて表示します(画面2)。

コマンド実行例

lspci -k

(PCIデバイス一覧を、デバイスを制御しているドライバとともに表示する)


画面2 画面2 PCIデバイスの情報と同時にカーネルドライバの情報を表示したところ


詳しい情報を表示する

 PCIデバイスについて詳しい情報を表示したい場合は「-v」オプション(画面3)を使い、さらに詳しい情報を表示したい場合は「-vv」オプションを指定します(画面4)。

 表示対象のデバイスを指定したい場合は「-s」オプションで識別番号(バス:デバイス:ファンクション)を指定します。または、「-d」オプションでベンダーIDやデバイスIDを指定できます。ベンダーIDやデバイスIDは、画面1のように「-n」または「-nn」オプションで確認できます。

 画面3と画面4では、ネットワークカード(Ethernet controller、スロット3のファンクション0)の詳細情報を表示しています。

コマンド実行例

lspci -v

(詳細情報を表示)

lspci -vv

(さらに詳細な情報を表示)

lspci -v -d ベンダーID:デバイスID

(指定したデバイスの詳細情報を表示)


画面3 画面3 特定のPCIデバイスの情報を詳しく表示したところ
画面4 画面4 画面3と同じPCIデバイスについてさらに詳しく情報を表示したところ


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801NからのDOSユーザー。PC-486DX時代にDOS版UNIX-like toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『Accessではじめるデータベース超入門[改訂2版]』『macOSコマンド入門』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。