Linux に Lshw をインストールし、それを使用してハードウェア情報を検索する方法

Linux Ni Lshw Woinsutorushi Sorewo Shi Yongshitehadou Ea Qing Baowo Jian Suosuru Fang Fa



Lshw は、コンピュータ/サーバーにインストールされているハードウェアに関する情報を検索する Linux コマンド ライン ツールです。 Lshw は、マザーボード/メインボード、CPU、メモリ、ディスク、PCIE、USB、およびその他のハードウェア情報をレポートできます。

Lshw は、世の中のすべての Linux ディストリビューションで利用できます。したがって、同じツールを使用して、すべての Linux ディストリビューションで必要なハードウェア情報を見つけることができます。







この記事では、一般的な Linux ディストリビューションに lshw をインストールし、それを使用してハードウェア情報を検索する方法を説明します。



内容のトピック:

Ubuntu/Debian/Linux Mint/Kali Linux への Lshw のインストール

Lshw は、Ubuntu/Debian/Linux Mint/Kali Linux の公式パッケージ リポジトリで入手できます。したがって、コンピュータ/サーバーに簡単にインストールできます。



まず、次のコマンドを使用して APT パッケージ リポジトリ キャッシュを更新します。





$ 須藤 適切なアップデート



lshw をインストールするには、次のコマンドを実行します。

$ 須藤 適切な インストール -そして

Lshw は、Ubuntu/Debian/Linux Mint/Kali Linux システムにインストールする必要があります。

Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS Stream への Lshw のインストール

Lshw は、Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS Stream の公式パッケージ リポジトリで入手できます。したがって、コンピュータ/サーバーに簡単にインストールできます。

まず、次のコマンドを使用して DNF パッケージ リポジトリ キャッシュを更新します。

$ 須藤 dnf メイクキャッシュ

lshw をインストールするには、次のコマンドを実行します。

$ 須藤 DNF インストール

インストールを確認するには、「Y」を押してから、 <入力>

Lshw は、Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS Stream システムにインストールする必要があります。

Lshw を使用して利用可能なハードウェアをリストする

次のように、lshw を使用して、コンピュータ/サーバーの利用可能なすべてのハードウェアを一覧表示できます。

$ 須藤 -短い

コンピュータ/サーバーの利用可能なすべてのハードウェアが適切な形式でリストされるはずです。

ここでは次の情報が見つかります。

  1. ハードウェアパス : これは、コンピュータ/サーバーにインストールされているハードウェアの物理パスです。ここで、/0 はマザーボード、/0/100 はプロセッサ (マザーボードに接続されている)、/0/100/ はプロセッサ レーンに接続されているハードウェアなどです。
  2. デバイス : これは、カーネルによって割り当てられたハードウェアの名前/識別子です。最も一般的な例は、enp38s0、enp39s0 などのネットワーク デバイスのデバイス名/識別子です。
  3. クラス : コンピュータ/サーバーのすべてのハードウェアは、特定のグループ/クラスに属します。たとえば、ネットワーク デバイスはネットワーク クラスにグループ化され、ストレージ デバイスはストレージ クラスにグループ化されます。ハードウェア クラスは次の目的で使用できます。 lshw の出力をフィルタリングする
  4. 説明 : それぞれのハードウェアの簡単な説明です。

ハードウェア パス (H/W パス) ではなくハードウェアのバス情報を確認したい場合は、次のように lshw コマンドを実行します。

$ 須藤 -バス情報

ご覧のとおり、最初の列にはハードウェア パスではなくハードウェアのバス情報が表示されます。

さまざまなハードウェアのバス情報は、さまざまな形式で情報を表示します。

  • CPU : CPU のバス ID は cpu@ , にあります。たとえば、CPU cpu@0 (私の場合は AMD Ryzen 9 3900X プロセッサー) の ID は 0 です。ほとんどのデスクトップ コンピューターとラップトップでは、プロセッサと CPU エントリ「cpu@0」が 1 つだけ存在します。
  • PCIE デバイス: PCIE デバイスのバス ID は、 pci@<ドメイン>:<バス>:<スロット>.<関数 > <スロット> 番号は、<デバイス> 番号とも呼ばれます。たとえば、PCIE デバイス pci@0000:26:00.0 (この例では I211 ギガビット ネットワーク デバイス) には、ドメイン 0000、バス 26、スロット/デバイス 00、および機能 0 があります。ID 番号は 16 進数で、ゼロが埋め込まれています。
  • SCSIデバイス : SCSI ストレージ デバイスのバス ID は、 scsi@<コントローラ>:<ターゲット>. .,<パーティション> > たとえば、scsi@1:0.0.0 は、コントローラー 1、ターゲット 0、ID 0、LUN 0 を持ち、パーティションのない SCSI/SATA ストレージ デバイスです。 SCSI/SATA ストレージ デバイスにパーティションがある場合、バス ID は最初のパーティションの場合は scsi@1:0.0.0,1、2 番目のパーティションの場合は scsi@1:0.0.0,2、scsi@1:0.0.0 になります。 3 番目のパーティションの場合は ,3 などとなります。
  • USB デバイス : USB ストレージデバイスのバス ID は、 usb@<コントローラー>:<スロット>. たとえば、usb@3:6.3 は、コントローラー 3、スロット 6、ID 3 を持つ USB デバイスです。 usb@3:1 は、コントローラー 3 とスロット 1 を持つ USB デバイスです。

ハードウェア クラスによる Lshw 出力のフィルタリング

Lshw は、すべてのハードウェア デバイスにクラスを割り当てます。これらのクラス名を使用して、「lshw」コマンドの出力をフィルター処理して、特定のタイプのハードウェアのみを含めることができます。

利用可能な lshw ハードウェア クラスは次のとおりです。

  • システム : システムのマザーボードと PnP デバイス。
  • : PCIE、ホストブリッジなどの内部バスデバイス。
  • メモリ : BIOS、RAM、ROM、CPU キャッシュ、ファームウェアなどのメモリ デバイス。
  • プロセッサー : コンピュータのプロセッサと SCSI RAID コントローラ。
  • 住所 : 拡張 ROM およびビデオのメモリ アドレス。
  • ストレージ : SCSI および IDE コントローラー。
  • ディスク : HDD、SSD、NVME SSD、CD-ROM、DVD などのランダム アクセス ストレージ デバイス。
  • 音量 : ディスク/ストレージデバイスのパーティション。
  • テープ : DAT、DDS などのシーケンシャル アクセス ストレージ デバイス。
  • バス : USB、SCSI、FireWireなどのバスを接続するデバイス。
  • 通信網 : イーサネット、WiFi などのネットワーク インターフェイス。
  • 画面 : GPU のようなディスプレイ デバイス。
  • 入力 : キーボード、マウス、HDMI/DP ポート、HD オーディオ ポート、電源ボタン、PC スピーカーなどの入力デバイス。
  • プリンター : 印刷デバイス、つまりプリンター。
  • マルチメディア : ビデオ カード (GPU)、サウンド カード、TV 出力カードなどのオーディオおよびビデオ デバイス。
  • コミュニケーション : Bluetooth などの通信デバイス。
  • : 電源 (PSU)、内蔵バッテリーなどのエネルギー源。
  • ジェネリック :分類できないデバイス。

すべてのコンピュータ/サーバーにすべてのクラスのハードウェアがインストールされているわけではありません。したがって、コンピュータ/サーバーが備えているハードウェアのクラスを見つけるには、「-short」または「-businfo」オプションを指定して「lshw」コマンドを実行することをお勧めします。

$ 須藤 -短い

$ 須藤 -バス情報

「lshw」コマンドの出力をフィルタリングして、特定のタイプのハードウェア (ストレージデバイスなど) のみを表示するには、次のように「-class」オプションを使用します。

$ 須藤 -バス情報 -クラス ディスク

または

$ 須藤 -短い -クラス ディスク

ご覧のとおり、lshw はコンピューターにインストールされているストレージ デバイス (2x 500GB Samsung 860 EVO SATA SSD) のみをリストしました。

「-class」オプションを複数回使用すると、「lshw」コマンドで複数の種類のハードウェアを一度に表示できます。

たとえば、「lshw」コマンドを使用してストレージ デバイスとディスク パーティションを表示するには、次のように「-class」オプションを 2 回使用します。

$ 須藤 -バス情報 -クラス ディスク -クラス 音量

または

$ 須藤 -短い -クラス ディスク -クラス 音量 -クラス

ご覧のとおり、lshw はストレージ デバイスとそれらのストレージ デバイスのパーティションをリストしました。

Lshw を使用して詳細なハードウェア情報を検索する

特定の種類のハードウェア (ネットワークなど) に関する詳細情報を確認するには、次のように「-class」オプションを指定して lshw を実行します。

$ 須藤 -クラス 通信網

ご覧のとおり、コンピュータにインストールされているすべてのネットワーク デバイスに関する非常に詳細な情報が出力されます。

Lshw 出力からの機密情報の非表示

デフォルトでは、「lshw」コマンドは、詳細なハードウェア情報を表示しながら、機密情報 (つまり、ネットワーク デバイスの MAC アドレス) を出力します。たとえば、ドライバーのインストールに関するサポートを受けるために、インターネット上の他のユーザーとハードウェア情報を共有する必要がある場合は、lshw 出力からそれらの機密情報を非表示にすることができます。

詳細なハードウェア情報から機密情報を非表示にするには、次のように「lshw」コマンドの「-sanitize」オプションを使用します。

$ 須藤 -消毒する -クラス 通信網

ご覧のとおり、MAC アドレスと IP アドレスがネットワーク デバイスから削除されます。

PCIe および USB デバイスの数値 ID の表示

デフォルトでは、「lshw」コマンドの出力に PCIe および USB デバイスの数値 ID は表示されません。

「lshw」コマンドの出力に PCIe および USB デバイスの数値 ID を表示するには、次のように「-numeric」オプションを使用します。

$ 須藤 -数値 -クラス 通信網

または

$ 須藤 -数値 -クラス バス

ご覧のとおり、「lshw」コマンドの出力には、USB デバイスの数値 ID が表示されます。

Lshw 出力からの揮発性タイムスタンプの削除

デフォルトでは、lshw はディスク ボリュームおよびその他のデバイスの揮発性タイムスタンプ (時間データの変更) を出力します。これらのタイムスタンプを表示したくない場合は、次のように「-notime」オプションを指定して「lshw」コマンドを実行します。

$ 須藤 -時間がない -クラス 音量

ご覧のとおり、マウントされたタイムスタンプ データは、「-notime」オプションが使用されている lshw 出力から削除されます。

Lshwを使用したハードウェア情報のエクスポート

lshw ハードウェア情報をさまざまな形式でエクスポートできます。この記事の執筆時点では、lshw は次の形式でハードウェア情報をエクスポートできます。

  • SQLiteデータベース
  • HTML
  • XML
  • JSON

lshw ハードウェア情報を SQLite データベース ファイルにエクスポートするには、次のコマンドを実行します。

$ 須藤 -ごみ / データ / lshw.db &>/ 開発者 / ヌル

ご覧のとおり、「lshw.db」SQLite データベース ファイルが作成されます。

$ ls -lh / データ

次のように、SQLite で「lshw.db」データベース ファイルを読み取り、すべてのデータベース テーブルを出力できます。

$ 須藤 sqlite3〜 / データ / lshw.db - ライン '.tables'

次の SQLite コマンドを使用して、「lshw.db」ファイルからネットワーク デバイスに関する情報を出力できます。

$ 須藤 sqlite3〜 / データ / lshw.db - ライン 「SELECT * FROM ノード WHERE クラス LIKE 'ネットワーク'」

lshw ハードウェア情報を HTML ファイルにエクスポートするには、次のコマンドを実行します。

$ 須藤 -html > / データ / lshw.html

機密情報もサニタイズ/非表示にしたい場合は、次のように lshw HTML エクスポート コマンドを実行します。

$ 須藤 -消毒する -html > / データ / lshw.html

ご覧のとおり、lshw ハードウェア情報は「lshw.html」HTML ファイルにエクスポートされます。

$ ls -lh / データ

「lshw.html」ファイルは、お好みの Web ブラウザで開くことができます。

$ ファイアフォックス〜 / データ / lshw.html

Mozilla Firefox Web ブラウザで「lshw.html」ファイルを開くと、次のスクリーンショットに示すようにハードウェア情報が表示されます。

lshw ハードウェア情報を XML ファイルにエクスポートするには、次のコマンドを実行します。

$ 須藤 -xml > / データ / lshw.xml

機密情報もサニタイズ/非表示にしたい場合は、次のように lshw XML エクスポート コマンドを実行します。

$ 須藤 -消毒する -xml > / データ / lshw.xml

ご覧のとおり、lshw ハードウェア情報は「lshw.xml」XML ファイルにエクスポートされます。

$ ls -lh / データ

Vim テキスト エディターで「lshw.xml」ファイルを開くと、次のスクリーンショットに示すように、lshw ハードウェア情報が XML 形式で表示されます。

$ なぜなら / データ / lshw.xml

lshw ハードウェア情報を JSON ファイルにエクスポートするには、次のコマンドを実行します。

$ 須藤 -json > / データ / lshw.json

機密情報もサニタイズ/非表示にしたい場合は、次のように lshw JSON エクスポート コマンドを実行します。

$ 須藤 -消毒する -json > / データ / lshw.json

ご覧のとおり、lshw ハードウェア情報は「lshw.json」JSON ファイルにエクスポートされます。

$ ls -lh / データ

Vim テキスト エディターで「lshw.json」ファイルを開くと、次のスクリーンショットに示すように、lshw ハードウェア情報が JSON 形式で表示されます。

$ なぜなら / データ / lshw.json

lshw -sanitize、-numeric、および -notime オプションは、SQLite エクスポートではなく、lshw HTML、XML、および JSON エクスポートで機能します。これらのオプションの詳細については、この記事の前のセクションを参照してください。

例 1: Lshw を使用してコンピューター/サーバーにインストールされている GPU を検索する

コンピューター/サーバーに新しいオペレーティング システムをインストールした後、最も重要なことの 1 つは、コンピューター/サーバーにインストールした GPU (グラフィック カード/プロセッサー) を見つけ、それに適切なドライバーをインストールすることです。

次の「lshw」コマンドを使用して、コンピューター/サーバーにインストールした GPU を見つけることができます。

$ 須藤 -クラス 画面

ご覧のとおり、コンピューターには NVIDIA GeForce RTX 4070 がインストールされています。 [1] 。公式の NVIDIA ドライバーを使用しています (インストールしたとおり) [2] 。コンピューター/サーバーに NVIDIA GPU がインストールされているが、公式の NVIDIA ドライバーがインストールされていない場合は、代わりに「driver=nouveau」が表示されます。その場合、すべての機能を使用して GPU から最高のパフォーマンスを得ることができるように、公式の NVIDIA ドライバーをコンピューター/サーバーにインストールする必要があります。

例 2: Lshw を使用したネットワーク デバイス/インターフェイスのチップセットの検索

正しいネットワーク ドライバーをインストールすることも、新しい Linux インストールの重要な部分です。正しいネットワーク ドライバーがインストールされていないと、ネットワーク デバイスが動作しないか、機能が制限されて動作する可能性があります (ネットワーク パフォーマンスが非常に低下する可能性があります)。正しいネットワーク ドライバーをインストールできるようにするには、ネットワーク デバイスのチップセットを知る必要があります。

コンピューター/サーバーにインストールされているネットワーク デバイスのチップセットおよびその他の情報を確認するには、次のように「lshw」コマンドを実行します。

$ 須藤 -クラス 通信網

ご覧のとおり、コンピューターには 2 つのイーサネット デバイスがインストールされています。

そのうちの 1 つは Intel I211 ギガビット ネットワーク インターフェイスです [1] 。 Linux カーネルは、これに enp38s0 という論理名を付けました。 [2] 。ご覧のとおり、Intel igb チップセット (driver=igb) が使用されています。 [3] 。したがって、このネットワーク インターフェイスを動作させるには、Intel IGB ドライバー/ファームウェアをコンピューター/サーバーにインストールする必要があります (まだインストールされていない場合)。

もう 1 つは Realtek RTL8125 2.5GbE ネットワーク インターフェイスです [4] 。 Linux カーネルは、これに enp39s0 という論理名を付けました。 [5] 。ご覧のとおり、Realtek r8169 チップセット (ドライバー=r8169) が使用されています。 [6] 。したがって、このネットワーク インターフェイスを動作させるには、Realtek r8169 ドライバー/ファームウェアをコンピューター/サーバーにインストールする必要があります (まだインストールされていない場合)。

USB イーサネット デバイスと WiFi アダプターもコンピューターに接続しています。

USB 10/100 mbps LAN ネットワーク インターフェイス [1] 論理名は enp42s0f3u6u3 です [2] 。ご覧のとおり、Realtek r8152 チップセット (ドライバー=r8152) が使用されています。 [6] 。したがって、このネットワーク インターフェイスを動作させるには、Realtek r8152 ドライバー/ファームウェアをコンピューター/サーバーにインストールする必要があります (まだインストールされていない場合)。

WiFi 802.11n ネットワーク インターフェイス[4]の論理名は wlp42s0f3u1[5] です。ご覧のとおり、MediaTek mt7601u チップセット (driver=mt7601u) が使用されています。 [6] 。したがって、このネットワーク インターフェイスを動作させるには、MediaTek mt7601u ドライバー/ファームウェアをコンピューター/サーバーにインストールする必要があります (まだインストールされていない場合)。

結論

これは lshw に関する広範なガイドです。この記事では、一般的な Linux ディストリビューション (Ubuntu、Debian、Linux Mint、Kali Linux、Fedora、RHEL、AlmaLinux、Rocky Linux、CentOS Stream) に lshw をインストールする方法を説明しました。また、コンピューターのハードウェアを一覧表示する方法、lshw の出力をフィルターして特定の種類のハードウェアを表示する方法、および lshw の出力から機密のハードウェア情報を非表示にする方法も示しました。 PCIE および USB デバイスの数値 ID を表示する方法と、lshw 出力から揮発性タイムスタンプを削除する方法を説明しました。また、lshw ハードウェア情報を SQLite データベース、HTML、XML、および JSON 形式でエクスポートして読み取る方法も示しました。最後に、コンピューターにインストールされている GPU とネットワーク デバイス、およびネットワーク デバイスが lshw で使用しているチップセットを見つけて、ドライバー/ファームウェアを正しくインストールする方法を説明しました。

参考文献: