ネットワークカードへのリンクが引き続き上昇または下降する理由のデバッグ

ネットワークカードへのリンクが引き続き上昇または下降する理由のデバッグ

Ubuntu Intel NUCでイーサネットリンクがダウンして再び表示される問題を発見しました。これは、NICが4秒間オフになってから12秒間オンになってから4秒間オフになる通常モードです。
これ可能物理的な損傷がある可能性がありますが、ネットワークカードが一体型なので交換できません。明らかに高価な部品を交換する前にこれを確認したいと思います。

カーネルモジュールを削除して再挿入すると、kern.logに次の出力が表示されます。これは最後の数行を除いて正常な現象です。

kernel: [ 1299.003606] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
kernel: [ 1299.003608] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
kernel: [ 1299.004140] e1000e 0000:00:1f.6: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
kernel: [ 1299.216578] e1000e 0000:00:1f.6 0000:00:1f.6 (uninitialized): registered PHC clock
kernel: [ 1299.288105] e1000e 0000:00:1f.6 eth0: (PCI Express:2.5GT/s:Width x1) 94:c6:91:a7:78:3f
kernel: [ 1299.288112] e1000e 0000:00:1f.6 eth0: Intel(R) PRO/1000 Network Connection
kernel: [ 1299.288256] e1000e 0000:00:1f.6 eth0: MAC: 13, PHY: 12, PBA No: FFFFFF-0FF
kernel: [ 1299.293482] e1000e 0000:00:1f.6 eno1: renamed from eth0
kernel: [ 1304.424541] e1000e 0000:00:1f.6 eno1: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
kernel: [ 1304.424696] IPv6: ADDRCONF(NETDEV_CHANGE): eno1: link becomes ready
kernel: [ 1325.609674] e1000e 0000:00:1f.6 eno1: NIC Link is Down
kernel: [ 1330.702483] e1000e 0000:00:1f.6 eno1: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx

私が試したこと:

  • ケーブルの交換
  • 接続されたハブのポートを変更しました。 (同じハブの他のコンピュータに問題はありませんでした。)
  • BIOSアップデート
  • 前のカーネルに戻る
  • デバッグパラメータを使用してモジュールをロードしてみてください。

モジュール情報を見ると、$ modinfo e1000e出力にデバッグパラメータを表示できます。

parm:           debug:Debug level (0=none,...,16=all) (int)

ただし、たとえばmodprobeまたはinsmodを実行します。$ sudo modprobe e1000e debug=16kern.log には追加情報は生成されません。これは私が期待するものです。

次はどこに行くのか分からない。誰かがモジュールからデバッグ情報を取得できない理由を教えてもらえれば、良いスタートになり、追加情報も大いに感謝します。

ベストアンサー1

新しいカーネルをインストールしましたが、良いニュースはそうする必要はありません。デバッグ情報を取得する方法についていくつかの矛盾する情報がありますが、その秘密は動的デバッグを正しく設定することです。

まず、e1000eの各デバッグメッセージをカーネルdebugFSにダンプします。

echo "module e1000e +flmpt" > /sys/kernel/debug/dynamic_debug/control

モジュールがロードされた後にこれを行う必要があることがわかりました。 /sys/kernel/debug/dynamic_debug/control を使用して、このコマンドに基づいて変更される方法を確認できます。バラよりhttps://www.kernel.org/doc/html/v4.11/admin-guide/dynamic-debug-howto.htmlより多くの情報を知りたい場合

この方法でカーネルロギングを有効にすることもできますが、上記の echo 8 > /proc/sys/kernel/printk動的デバッグ制御設定を変更するまで、この機能は機能しないようです。この方法は、モジュールがロードされたときに情報も提供すると考えられますが、まだ見ていません。

これにより、2 つのデバッグ情報セットが生成されます。 kern.logには現在多くのデバッグ情報があり、両方cat /proc/kmsgとも同じ情報を表示しているようです。

おすすめ記事