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(高级配置和电源接口)。请不要将其与 apic(高级可编程中断控制器)混淆。

这样做的方法是改变线路

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

进入

 GRUB_CMDLINE_LINUX_DEFAULT="acpi=off ro quiet splash"

在(在我的 Ubuntu 系统上)/etc/default/grub 中。在 Gentoo 中,我不知道,但我确信您可能会找到完全等同的东西。

相关内容