传输队列 0 超时后以太网连接随机断开

传输队列 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<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

首先,我尝试用 替换r8169r8168这恰好是许多用户遇到的一个错误Realtek Ethernet Controller,但问题始终没有得到解决,甚至在发布这篇文章近一年后也是如此。即使使用最新的内核更新,我仍然面临同样的问题4.2.0-30-generic

解决方案:

用稳定的旧内核版本替换当前内核,就我而言,我3.2.0-83-generic在 中手动安装了内核版本14.04 LTS。现在以太网连接稳定,问题已解决。

.deb从以下位置下载以下软件包1234并安装它:

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

答案3

dmesg -T | grep eth0输出来看,您正在使用r8169驱动程序部分网卡不稳定 手动尝试降级司机r8168

希望这可以帮助

相关内容