发送队列0超时后,以太网连接随机断开连接
问题描述:
以太网连接在没有任何理由的情况下随意断开连接。 我尝试了以下命令来重启我的以太网连接,
sudo service network-manager restart
虽然它从未解决过这个问题。 每次我必须重新启动系统才能恢复连接。
我的以太网卡的详细信息:
$ lspci -nnk | grep -iA2 net 06:00.0 Network controller [0280]: Qualcomm Atheros AR9285 Wireless Network Adapter (PCI-Express) [168c:002b] (rev 01) Subsystem: Lenovo Device [17aa:30a1] Kernel driver in use: ath9k
07:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller [10ec:8136] (rev 02) Subsystem: Lenovo Device [17aa:392e] Kernel driver in use: r8169
我的系统:联想ideapad z560上的Ubuntu 14.04 LTS 64bit。
观察:当我在Skype或环聊中进行调用时,它会更频繁地发生。 似乎大量使用以太网导致断开连接。
到目前为止尝试调试步骤:
我发现有线网络在ubuntu中不稳定13.04(64位)有类似我的问题描述,但不完全一样。 根据该post中给出的解决方案,我安装并尝试使用较旧的内核linux-image-3.5.0-27-generic
。 但同样的问题仍然存在。
同时我不确定它是否是硬件相关问题,因为我之前使用的Windows 7从未发生过这种情况。 我做了很多谷歌搜索,但除了一些关于旧版本和错误报告之外,找不到解决方案。
作为调查dmesg
[感谢@noleti]的提示,我发现了以下内容:
$ dmesg -T | grep eth0 [2015年5月2日星期六19:52:37] r8169 0000:07:00.0:eth0:RTL8102e位于0xffffc90000348000,88:ae:1d:3a:ec:ff,XID 04e00000 IRQ 41 [2015年5月2日星期六19:52:45] IPv6:ADDRCONF(NETDEV_UP):eth0:链接未准备好 [2015年5月2日星期六19:52:51] r8169 0000:07:00.0:eth0:链接下来 [2015年5月2日星期六19:52:51] IPv6:ADDRCONF(NETDEV_UP):eth0:链接未准备好 [2015年5月2日星期六19:52:51] IPv6:ADDRCONF(NETDEV_UP):eth0:链接未准备好 [2015年5月2日星期六19:52:56] r8169 0000:07:00.0:eth0:链接起来 [2015年5月2日星期六19:52:56] IPv6:ADDRCONF(NETDEV_CHANGE):eth0:链接准备就绪 [2015年5月2日星期六20:09:01] NETDEV WATCHDOG:eth0(r8169):传输队列0超时 [2015年5月2日星期六20:09:01] r8169 0000:07:00.0:eth0:链接起来 [2015年5月2日星期六20:09:13] r8169 0000:07:00.0:eth0:链接起来 [2015年5月2日星期六20:09:19] r8169 0000:07:00.0:eth0:链接起来 [2015年5月2日星期六20:09:31] r8169 0000:07:00.0:eth0:链接起来 [2015年5月2日星期六20:10:13] r8169 0000:07:00.0:eth0:链接起来 [2015年5月2日星期六20:10:55] r8169 0000:07:00.0:eth0:链接起来 [2015年5月2日星期六20:12:07] r8169 0000:07:00.0:eth0:链接起来 [2015年5月2日星期六20:13:49] r8169 0000:07:00.0:eth0:链接起来
在dmesg
输出中显示的事件之后,我的连接丢失了。
NETDEV WATCHDOG: eth0 (r8169): transmit queue 0 timed out
首先,我尝试用r8168
取代r8169
,这对于许多拥有Realtek Ethernet Controller
用户来说恰好是一个错误,但是从来没有解决过这个问题,即使现在发布这个问题差不多一年了。 即使使用最新的内核更新4.2.0-30-generic
我也面临同样的问题。
解:
用一个稳定的旧内核版本替换当前内核,在我的例子中,我在14.04 LTS
手动安装了内核版本3.2.0-83-generic
。 现在以太网连接稳定,问题解决了。
从1,2,3,4下载以下.deb
软件包并安装它:
sudo dpkg -i linux-headers-3.2.0-83_3.2.0-83.120_all.deb sudo dpkg -i linux-headers-3.2.0-83-generic_3.2.0-83.120_i386.deb sudo dpkg -i linux-image-3.2.0-83-generic_3.2.0-83.120_i386.deb
您可以通过编辑/etc/default/grub
GRUB_DEFAULT=0
来更改引导顺序, GRUB_DEFAULT=0
处所示 。 然后
sudo update-grub sudo reboot
我想你可以尝试安装其他最新的v3.2
内核,这些内核也可能很稳定,例如: 3.2.0-98-generic
注意:我已经测试了32位和64位Ubuntu 14.04 LTS
可能你可以尝试限制以太网适配器的速度? 尝试:
sudo ethtool -s eth0 speed 100 duplex half
或者,如果这没有帮助,请尝试https://unix.stackexchange.com/questions/37727/solving-ethernet-watchdog-timer-deadlocks
从dmesg -T | grep eth0
dmesg -T | grep eth0
输出,你正在使用r8169
驱动程序已经不稳定少数网卡尝试手动降级驱动程序到r8168
希望这可以帮助