dmesg のエラー「eth0: Transmit timeout」の原因は何ですか?

dmesg のエラー「eth0: Transmit timeout」の原因は何ですか?

Gentoo Linux システムでは、dmesg出力には次のような内容が繰り返し表示されます。

eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
eth0: Transmit timeout, status 0c 0005 c07f media 10.
eth0: Tx queue start entry 18  dirty entry 14.
eth0:  Tx descriptor 0 is 0008a5ea.
eth0:  Tx descriptor 1 is 0008a5ea.
eth0:  Tx descriptor 2 is 0008a5ea. (queue head)
eth0:  Tx descriptor 3 is 0008a5ea.
eth0: link up, 100Mbps, full-duplex, lpa 0x45E1

そして出力ethtool -S eth0

NIC statistics:
     early_rx: 0
     tx_buf_mapped: 0
     tx_timeouts: 137
     rx_lost_in_ring: 0

ただし、同一のイーサネット カード、同一の Linux、同一のカーネルを備えた同一のシステムでは、このようなエラーは表示されません。このエラー メッセージの理由を調べるにはどうすればよいでしょうか?

投機: ファイアウォールの問題でしょうか。Linux システムが何かを別のシステムにコピーしようとしているのでしょうか。他にネットワーク関連の問題はありますか。

答え1

このエラー メッセージは長い間見ていません。古いハードウェア/ソフトウェアを使用していますか?

いずれにしても、これを機能させるための秘訣は、acpi (Advanced Configuration and Power Interface) を無効にすることです。これを apic (Advanced Programmable Interrupt Controller) と混同しないでください。

それを実現するには、ラインを変更することです

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

の中へ

 GRUB_CMDLINE_LINUX_DEFAULT="acpi=off ro quiet splash"

(私の Ubuntu システムでは) /etc/default/grub にあります。Gentoo の場合はわかりませんが、厳密に同等のものが見つかるはずです。

関連情報