はじめに
lspci
(list PCI)Linuxコマンドは、システム上の各PCIバスに関する情報を表示します。これには、PCIサブシステムに接続されているデバイスに関する情報が含まれます。
このチュートリアルでは、lspci
について説明します。 コマンド構文を使用して、さまざまな使用方法を示します。
前提条件
- Linuxディストリビューションを実行しているシステム。
- sudo権限を持つアカウントへのアクセス。
- ターミナルウィンドウまたはコマンドラインへのアクセス。
lspciのインストール方法
システムリポジトリを最新バージョンに更新することから始めます:
sudo apt update
lspci
コマンドはpciutilsの一部です パッケージ。 Pciutils ほとんどのLinuxディストリビューションにはデフォルトで含まれています。
pciutilsをインストールする場合 手動でパッケージ化する場合は、Linuxディストリビューションに応じて、次のいずれかのコマンドを使用します。
- Ubuntu / Debian:
sudo apt install pciutils
- RedHat / CentOS:
sudo yum install pciutils
- Fedora:
sudo dnf install pciutils
- Arch Linux:
sudo pacman -S pciutils
lspciコマンド構文
lspci
コマンドは次の構文を使用します:
lspci [options]
lspci
を使用する オプションを指定せずにコマンドを実行すると、次のような出力が生成されます。
出力の最初の行を見てみましょう:
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
上記の出力には、次のセクションが含まれています。
-
00:00.0
-バス番号、デバイス番号、機能番号の順。 -
Host bridge:
-デバイスクラス。 Intel Corporation
-デバイスベンダー。-
440FX - 82441FX PMC
-デバイス名。 -
[Natoma]
-動作モード。 -
(rev 02)
-リビジョン番号。
lspciコマンドオプション
lspci
コマンドは次のオプションを使用します:
オプション | 説明 |
---|---|
-m | 下位互換性のある機械可読形式で出力を表示します。 |
-mm | 出力を機械可読形式で表示して、スクリプトで簡単に解析できるようにします。 |
-t | 出力を樹形図として表示します。 |
-v | 出力の詳細バージョンを表示します。 |
-vv | 非常に詳細なバージョンの出力を表示します。 |
-vvv | 利用可能なすべての情報を出力に表示します。 |
-k | 各デバイスを処理するカーネルドライバとモジュールを表示します。 |
-x | 構成スペースの標準部分を16進形式で表示します。 |
-xxx | PCI構成スペース全体を16進形式で表示します。 |
-xxxx | 拡張PCI構成スペースを16進形式で表示します。 |
-b | カーネルではなくカードから見た番号と住所を表示します。 |
-D | 常にPCIドメイン番号を表示します。 |
-P | バス番号ではなく、各ブリッジを通るパスでPCIデバイスを識別します。 |
-PP | バスとデバイス番号の両方を表示して、各ブリッジを通るパスでPCIデバイスを識別します。 |
-n | PCIベンダーとデバイスコードを数字で表示します。 |
-nn | PCIベンダーとデバイスコードを番号と名前の両方で表示します。 |
-q | ローカルのpci.idsファイルにデバイスが見つからない場合は、DNSを使用して中央のPCI IDデータベースにクエリを実行し、結果をローカルキャッシュに保存します。 |
-qq | ローカルpci.idsファイルにデバイスが見つからない場合は、DNSを使用して中央PCI IDデータベースにクエリを実行し、ローカルキャッシュをリセットします。 |
-Q | ローカルのpci.idsファイルにデバイスが見つかった場合でも、DNSを使用して中央のPCIIDデータベースにクエリを実行します。 |
-s | 指定したドメイン内のデバイスのみを表示します。 |
-d | 指定されたベンダー、デバイス、およびクラスIDを持つデバイスのみを表示します。 |
-i | ユーザー定義ファイルからPCIID情報を読み取ります。 |
-p | カスタムファイルを使用して、カーネルモジュールによって処理されるPCIIDをマッピングします。 |
-M | すべてのPCIデバイスの徹底的なスキャンを実行します。 |
--version | 現在のコマンドバージョンを表示します。 |
-A | カスタムPCIアクセス方法を選択します。 |
-O | PCIライブラリのカスタムパラメータを設定します。 |
-H1 | インテルの構成メカニズム1を介したハードウェアへの直接アクセスを使用します。 |
-H2 | インテル構成メカニズム2を介した直接ハードウェアアクセスを使用します。 |
-F | PCIデバイスのリストとしてテキストファイルを使用します。 |
-G | PCIライブラリのデバッグレベルを上げます。 |
lspciの例
lspci
を使用してPCIデバイス情報を表示する方法は次のとおりです。 コマンド。
PCI情報を機械可読形式で表示する
-mm
を使用します PCI情報を機械可読形式で表示するオプション:
lspci -mm
この出力形式では、二重引用符( "
)が追加されます )各情報カテゴリを中心に、データをシェルスクリプトに簡単に渡すことができます。
PCI情報を樹形図として表示する
-t
を使用する オプションは、バス、デバイス、および機能の番号をツリー図で表示し、それらがどのように接続されているかを示します。
lspci -t
PCI情報を詳細な形式で表示する
lspci
コマンドを使用すると、出力に表示する詳細レベルを設定できます。 -v
を使用する オプションは、すべてのデバイスに関する詳細情報とともに、出力を詳細形式で表示します。
lspci -v
-vv
オプションは非常に詳細な出力を表示します:
lspci -vv
-vvv
オプションは、出力に最高レベルの詳細を表示します:
lspci -vvv
PCI情報をTag:Value形式で表示する
詳細形式と機械可読形式を組み合わせると、出力が tag:valueに表示されます。 フォーマット:
lspci -vmm
tag:value formatは、PCIデバイスをJSONと同様の形式でリストし、情報を読みやすくします。各デバイスは個別のセクションであり、情報は複数の行に表示されます:
特定のデバイスのPCI情報を表示する
-s
を使用する オプションを使用すると、バス、デバイス、および機能番号を指定して、デバイスの情報を表示できます。
lspci -s [bus number]:[device number].[function number]
たとえば、 00:00.0にデバイスの情報を表示します :
lspci -s 00:00.0
もう1つの方法は、ベンダーとデバイスのコードを -d
で使用することです。 オプション:
lspci -d [vendor code]:[device code]
たとえば、上記と同じデバイスを、今回はベンダーとデバイスコードで検索します。
lspci -d 8086:1237
デバイスコードの表示
-n
を使用する オプションは、各PCIデバイスのベンダーとデバイスコードを表示します:
lspci -n
-nn
オプションは、ベンダーとデバイスの両方のコードとデバイス名を表示し、出力を読みやすくします。
lspci -nn
ベンダーとデバイスのコードは、各エントリの最後に括弧で囲まれて表示されます:
カーネルドライバーの表示
-k
を使用する オプションは、現在使用されているカーネルドライバーやモジュールなど、出力のより詳細なバージョンを表示します。
lspci -k