![传输队列 0 超时后以太网连接随机断开](https://linux22.com/image/980359/%E4%BC%A0%E8%BE%93%E9%98%9F%E5%88%97%200%20%E8%B6%85%E6%97%B6%E5%90%8E%E4%BB%A5%E5%A4%AA%E7%BD%91%E8%BF%9E%E6%8E%A5%E9%9A%8F%E6%9C%BA%E6%96%AD%E5%BC%80.png)
问题描述:
以太网连接似乎毫无原因地随机断开。我尝试使用以下命令重新启动以太网连接,
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<br>
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 64 位。
观察:当我在 Skype 或 Hangout 上打电话时,这种情况更常发生。似乎是以太网的大量使用导致了断线。
迄今为止尝试过的调试步骤:
我找到了一个帖子Ubuntu 13.04(64 位)中有线网络不稳定有类似我的问题描述,但不完全一样。按照该帖子中给出的解决方案,我安装并尝试使用较旧的内核linux-image-3.5.0-27-generic
。但同样的问题仍然存在。
同时,我不确定这是否是与硬件相关的问题,因为以前我使用的 Windows 7 从未发生过这种情况。我进行了大量 Google 搜索,但除了一些有关旧版本和错误报告之外,找不到解决方案。
作为提示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
答案1
首先,我尝试用 替换r8169
,r8168
这恰好是许多用户遇到的一个错误Realtek Ethernet Controller
,但问题始终没有得到解决,甚至在发布这篇文章近一年后也是如此。即使使用最新的内核更新,我仍然面临同样的问题4.2.0-30-generic
。
解决方案:
用稳定的旧内核版本替换当前内核,就我而言,我3.2.0-83-generic
在 中手动安装了内核版本14.04 LTS
。现在以太网连接稳定,问题已解决。
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
您可以通过编辑以下内容GRUB_DEFAULT=0
来更改启动顺序:/etc/default/grub
这里。 然后
sudo update-grub
sudo reboot
我认为您可以尝试安装其他v3.2
可能也稳定的最新内核,例如:3.2.0-98-generic
笔记:我已经对 32 位和 64 位 Ubuntu 14.04 LTS 进行了测试
答案2
也许您可以尝试限制以太网适配器的速度?尝试:
sudo ethtool -s eth0 speed 100 duplex half
如果这没有帮助,请尝试https://unix.stackexchange.com/questions/37727/solving-ethernet-watchdog-timer-deadlocks