如何阻止以太网网络连接丢弃?
我的基于以太网的网络连接不能保持一致。 我正在对网关运行ping,它将:
- 工作一分钟
- 冻结,超时或提供多秒响应时间
- 重复
如果它被卡住了,我通过网络管理器小程序禁用/启用网络,一切都会再次正常工作一分钟。 发送280个数据包后,我得到41%的数据包丢失。 我尝试了不同的电缆和连接到网关,但这没有任何影响。 到网关的距离只有3英尺左右。
如果我切换到Windows,似乎工作正常,但Ubuntu是我的主要操作系统,我现在甚至无法使用它,因为我依赖于网络。
我的设置……
- 操作系统:Ubuntu 11.04,双启动Windows 7
- Mobo:技嘉Z68X-UD4-B3
- CPU:Intel Core 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不会超时,应用程序不会抱怨没有网络可用性,大量下载不会中断或减慢。
下载官方realtek驱动程序。
然后从linux内核中删除r8169模块。
# rmmod r8169 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/找到了它,它可以工作。 现在网速一切都很好。
就这样,我可以在下次SSD爆炸时找到它。 以下是删除损坏的r8169并在具有Linux Kernel 3.x的Ubuntu上插入r8168的说明。
内核3.x.
- 下载r8168
- 如果仍然标记为未解析,请应用此修补程序 。
- 停止 :如果您打算使用DKMS,请立即跳至DKMS部分。
- 运行
sudo ./autogen.sh
,它将构建模块,删除旧模块(如果需要,将其列入黑名单)并将r8168.ko安装到/ lib / modules /’uname -r’/ drivers / net /。
DKMS
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
我有类似的问题,我找到了解决方案。
请参阅https://bugs.launchpad.net/ubuntu/+source/linux/+bug/889527
这可能是有用的
如果您在某些系统上双启动Windows,则可能会遇到r8169驱动程序的问题。 Windows默认情况下会在Windows关闭时禁用NIC以禁用Wake-On-Lan,并且此NIC将在下次Windows打开时保持禁用状态。 内核中的r8169驱动程序不知道如何从此禁用状态打开NIC; 因此,即使驱动程序加载并报告设备已启动,设备也不会响应。 若要解决此问题,只需启用“关闭后唤醒lan”function。 您可以通过Windows的设备管理器设置此选项。
编辑:在2.6.19.5和2.6.20.8内核中也存在使用Windows进行双启动的问题,因此可以安全地假设它将涉及所有2.6内核,直到内核开发人员将RTL8168的驱动程序更新为可以的版本从禁用状态打开NIC
还有一件事 – 使用驱动程序进行更改并防止在重新启动后再次启动r8169,我使用了这个:
勘误表:
echo 'blacklist r8169' | sudo tee /etc/modprobe.d/blacklist-r8169.conf dkms add -m r8168 -v 8.025.00 dkms build -m r8168 -v 8.025.00 dkms install -m r8168 -v 8.025.00 sudo update-initramfs -u