如何防止我的以太网连接断开?

如何防止我的以太网连接断开?

我的以太网网络连接无法持续保持正常。我对网关执行 ping 操作,结果如下:

  • 工作一分钟
  • 冻结、超时或给出数秒的响应时间
  • 重复

如果它卡住了,我通过网络管理器小程序禁用/启用网络,一切都会再次正常工作一分钟。传输 280 个数据包后,我的数据包丢失率为 41%。我尝试了不同的电缆和连接到网关,但这没有效果。到网关的距离只有大约 3 英尺。

如果我切换到 Windows,它似乎可以正常工作,但 Ubuntu 是我的主要操作系统,而且由于我依赖网络,我现在甚至无法使用它。

我的设置...

  • 操作系统:Ubuntu 11.04,双启动 Windows 7
  • 主板:技嘉 Z68X-UD4-B3
  • 处理器:英特尔酷睿 i7 2600K

编辑

需要澄清一点... 网络管理器仍显示我已连接,但我无法访问网关或更远的地方。NM 从未提示连接丢失,调用 ifconfig 时显示我仍有 IP 地址。

我尝试用不同的电缆连接到不同的网关,但同样的问题仍然存在。

按照要求:

lspci | grep -i eth
07:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)

dmesg | tail -f
[   14.024709] EXT4-fs (sda5): re-mounted. Opts: errors=remount-ro,commit=0
[   14.026443] EXT4-fs (sda7): re-mounted. Opts: commit=0
[   14.176101] hda-intel: IRQ timing workaround is activated for card #2. Suggest a bigger bdl_pos_adj.
[   23.917731] eth0: no IPv6 routers present
[  726.109697] r8169 0000:07:00.0: eth0: link up
[  733.169494] r8169 0000:07:00.0: eth0: link up
[  753.930119] r8169 0000:07:00.0: eth0: link up
[  880.787332] r8169 0000:07:00.0: eth0: link up
[ 1159.161283] r8169 0000:07:00.0: eth0: link up
[ 1406.623550] r8169 0000:07:00.0: eth0: link up

编辑

@roland-taylor:Windows 下网络始终可用。Ping 不会超时,应用程序不会抱怨没有网络可用,大型下载不会中断或变慢。

答案1

下载官方的 realtek 驱动程序。

http://www.realtek.com/downloads/downloadsView.aspx?Langid=1&PNid=5&PFid=5&Level=5&Conn=4&DownTypeID=3&GetDown=false#2

然后从 Linux 内核中删除 r8169 模块。

# rmmod r8169

<Quick install with proper kernel settings>
Unpack the tarball :
# tar vjxf r8168-8.aaa.bb.tar.bz2
Change to the directory:
# cd r8168-8.aaa.bb
If you are running the target kernel, then you should be able to do :
# ./autorun.sh (as root or with sudo)
You can check whether the driver is loaded by using following commands.
# lsmod | grep r8168
# ifconfig -a
If there is a device name, ethX, shown on the monitor, the linux
driver is loaded. Then, you can use the following command to activate
the ethX.
# ifconfig ethX up

最后,将 r8169 驱动程序列入黑名单,将以下内容添加到 /etc/modprobe.d/blacklist.conf:

#blacklist r8169 driver
blacklist r8169

我发现http://www.rvdavid.net/how-to-get-gigabit-speeds-from-rtl81118168b-pci-express-gigabit-ethernet-controller-on-ubuntu-linux/并且成功了。现在网速很好。

答案2

这样下次我的 SSD 爆炸时我就能找到它了。以下是在 Ubuntu w/Linux Kernel 3.x 上移除损坏的 r8169 并插入 r8168 的说明。

内核 3.x

  • 下载 r8168
  • 申请此补丁如果仍然标记为未解决。
  • 停止:如果您计划使用 DKMS,请立即跳至 DKMS 部分。
  • 运行sudo ./autogen.sh,它将构建模块,删除旧模块(如果需要,将其列入黑名单)并将 r8168.ko 安装到 /lib/modules/'uname -r'/drivers/net/。

知识管理系统

DKMS 将在安装新内核时构建并安装模块。您还需要将旧模块列入黑名单。

如果尚未将旧模块列入黑名单,请将其列入黑名单。

echo 'rmmod r8169' | sudo tee /etc/modprobe.d/blacklist.conf

安装 DKMS 和 gcc。

sudo apt-get install dkms gcc

将模块源文件复制到持久位置,这样您以后就不会意外删除它们。

sudo cp -R r8168-8.025.00 /usr/src

echo 'PACKAGE_NAME=r8168
PACKAGE_VERSION=8.025.00
MAKE[0]="make"
BUILT_MODULE_NAME[0]=r8168
BUILT_MODULE_LOCATION[0]="src/"
DEST_MODULE_LOCATION[0]="/kernel/updates/dkms"
AUTOINSTALL="YES"' | sudo tee /usr/src/r8168-8.025.00/dkms.conf

然后运行,

dkms add -m r8168 -v 8.025.00
dkms build -m r8168 -v 8.025.00
dkms install -m r8168 -v 8.019.00
sudo update-initramfs -u

答案3

我遇到了类似的问题并且找到了解决方案。

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/889527

答案4

还有一件事 - 为了对驱动程序进行更改,并防止重启后再次启动 r8169,我使用了这个:

http://ubuntuforums.org/showthread.php?t=723569

相关内容