“NETDEV WATCHDOG: eth0: transmit timed out”问题解决办法小结

这个问题可真是疑难杂症了,从2001年甚至更早到2009年5月就在前几天,都有人在网上问这个问题,并且能得到答案的人很少,能最终解决了的更是少之又少。我也遇到了这个问题,经过千辛万苦终于找到了答案。这个问题的答案不只一个,我做个小结,你可以挨个试试,应该有一个适合你的情况。

先说我的情况。我以前是debian + win2K 双系统。最近终于决定要升级到winxp了。在原来win的分区重新装了xp后,就出现这种问题了。可偏偏此前还升级了debian,并在xp下运行过p2pover之类的软件。所以问题原因就不好确定了。最后,确定原因是:winxp的网卡设置里有一项功能是在关闭xp时关闭网卡的网络唤醒(wake-on-lan)。而debian却偏偏不能把这个打开。这才出现了这个问题。解决办法呢,就是在winxp下,右键点击“网上邻居”,点击“属性”,在右键点击“本地连接”,再点“属性”->"配置"->"高级",然后设置“Wake-on-LAN”为“enable”。然后重启,进入linux就可以联网了。

下面是我在搜索过程中看到的其他情况的解决办法:

1. 打开/boot/grub/menu.lst文件,在启动的核心kernel那行最后加上: acpi=off noapic。

   其中:1) acpi=off 禁止了一些电源高级管理功能,对你的应用程序没有影响。

        2)noapic 改变了中断方式,对应用也没有影响。
   详见:http://blog.chinaunix.net/u/25264/showart_545308.html

2. ethtool -K eth0 tso off

3. 重新装网卡驱动。
   rmmod r8169 && modprobe r8169 && update-modules
   或更彻底点重新下载个驱动安装,不一定下最新的,因为更新的驱动可能会不适合一些老网卡,所以老的驱动可能没有这个 问题。

4. 换用旧的内核试试。

5. 关闭ecn。 在文件/etc/sysctl.conf中加入 net.ipv4.tcp_ecn=0

6. 关闭IPV6支持。在文件/etc/modprobe.d/aliases中把alias net-pf-10 ipv6 替换成如下两行:
   alias net-pf-10 off
   alias ipv6 off

7. 强制设定网卡工作模式: mii-tool 100baseTx-HD
   100baseTx-HD 是100M双绞线全双工的意思。其他的可以mii-tool --help看看,或到网上查查。


你可能感兴趣的:(“NETDEV WATCHDOG: eth0: transmit timed out”问题解决办法小结)