我的以太网网络连接无法持续保持正常。我对网关执行 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 驱动程序。
然后从 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,我使用了这个: