ハードウェアボードのステータスを確認するためのLinuxツールはありますか?
Windowsでは、「ハードウェアは正常に動作しています」などの行を表示するハードウェアダイアログがあります(英語版がないため、文字列が実際には異なる場合がありますが、アイデアは得られました)。
Linuxでも同じことを確認したいのですが。インストールされているハードウェアはわかっていますが、ドライバーが正しくロードされており、エラーがないことを知る必要があることに注意してください。
まったく同じハードウェアを備えた異なるPCにLinuxをインストールしているので、インストール後にすべてが機能することをすばやく知る方法が必要です。したがって、ボード(イーサネットカードなど)が何らかの理由で機能しない場合は、そのことを通知したいと思います。
lsmod
とdmesg
を使用できることは知っていますが、それはそれほど「迅速」ではありません。 /proc
に、特定のボードですべてが正しく機能していることを(ボードごとに)通知するマジックファイルがあるのではないでしょうか。
具体的には、イーサネットボードとシリアルラインのステータスをテストする必要があります。
(シリアルラインドライバーはカーネルに直接コンパイルされるため、ここではlsmod
はあまり便利ではありません)
イーサネットインターフェイスの場合、ethtool
を使用できます。
# ethtool -t eth0 online
The test result is PASS
The test extra info:
nvram test (online) 0
link test (online) 0
register test (offline) 0
memory test (offline) 0
loopback test (offline) 0
interrupt test (offline) 0
これはセルフテストを実行しますが、ハードウェアとドライバーの適切なサポートに依存します。ステータスを取得することもできます。
# ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
MDI-X: Unknown
Supports Wake-on: g
Wake-on: g
Current message level: 0x000000ff (255)
drv probe link timer ifdown ifup rx_err tx_err
Link detected: yes
これにより、接続パラメータとリンクステータスがわかります。
シリアル回線の場合、udevルールはドライバーをロードし、デバイスノードが存在する場合はそれを登録します。/dev/ttySの単なる存在?そこにハードウェアがあり、サニティテストに合格したことを示します。 Linuxドライバーはテストを実行し、合格しなかった場合、デバイスは登録されません。しかし、それが機能するかどうかを本当に知るには、ループバックプラグでテストする必要があります。
ああ、s setserial
コマンドを使用してシリアルポートに関する情報を取得することもできます。
# setserial /dev/ttyS0
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
その情報の存在は、あなたがそのシリアルポートハードウェアを持っていることを示しています。
テストは間違いなく正解です。どのハードウェアも故障する可能性があり、故障する可能性があります。さらに、使用しようとするまでは、動作しているように見えるように失敗することがよくあります。高負荷などの特定の場合を除いて、正常に動作する場合があります。これを念頭に置いて、「このハードウェアは正常に動作している」と言っているWindowsが役に立たないことは明らかです。
適度に大規模なハードウェアのセットを管理している場合でも、何らかのバーンインを実行することが不可欠です。CPUを集中的に使用するタスクを数時間実行し、大量のデータをディスクに書き込み、それを読み戻して、正しいこと、飽和状態であることを確認します。トラフィックのあるネットワークカードとドロップされたパケットを確認します。これが確実な唯一の方法です。
また、マシンの寿命を通じて、同様の(ただしおそらく小さい)チェックを実行するようにしてください。 nagiosのようなものを使用して、何かが間違っているとすぐにアラートを受け取るようにします。ハードウェアに障害が発生し、頻繁に障害が発生します。