问题描述:

1.网卡灯不亮,拔下网线查到其他机器是正常的,排除网线或者交换机端口问题

2.显示没有网卡连接信息

mii-tool eth0 提示网卡没有连接

3.网络无法ping通网关

4.这个系统一直用了很久都没有问题,突然之间就网络挂了

5.网卡是可以启动的,但是无法进行网络连接等访问

系统版本:

debian 7.5 x64位

网卡信息

lspci -v
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03)
Subsystem: ASRock Incorporation Device 8168
Kernel driver in use: r8169
Kernel modules: r8169

网上查询发现有人遇到这种情况:

The most of the Realtek ethernet cards are working out of the box on a Linux machine. But some of them, for e. g. the RTL8111/RTL8168, making some troubles.

这种问题存在于debian和ubuntu系列,驱动不兼容。

 To solve this problem you have to use the official Realtek (r8168) driver instead of the r8169 driver, which is included in the Linux Kernel.

需要更换官方版驱动,代替默认自带的驱动

解决:

前提:

1.网卡无法使用,那么就没有办法连网,所有的软件包都无法下载,只能u盘进行蚂蚁搬家,前提你要有一个u盘或者移动硬盘

2.在有网的电脑下载好软件

在官网找到驱动包

Unix (Linux)
Description Version Update

LINUX driver for kernel 3.x and 2.6.x and 2.4.x 8.040   2015/5/14   85k Global  Server

http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PN...

下载下来是叫这个名字的 r8168-8.040.00.tar.bz2

3.准备好一个完整debian相同版本的dvd安装iso,主要是为了要编译网卡驱动,需要编译软件和linux-headers,编译网卡驱动需要linux-headers,因为网卡驱动会跟linux内核有沟通,所以需要linux内核的头文件进行编译。

科普linux-headers
linux-headers文件用途解释。
Linux-headers是Linux 开发头文件,位于 /usr/include/linux 里面。另外,有的系统习惯放在/usr/src 里面一份。这种情况很少,正常情况下会放在 /lib/modules/<内核版本>/ 下面的具体某个目录,好像是目录build有的软件去这里寻找当前内核的源代码来调用当前源代码的header进行编译。/usr/include里面的Linux 内核头文件,是专门编译libc用的,不能保证内核模块的编译要求。

有些linux发行版本的系统,叫linux-sources,也有叫kernel-source的,名字很多,不确定,具体情况根据你系统而定。

4.有root权限,没有的话就要有sudo权限


开始干:

1.因为没有安装开发工具,所以先挂载本地debian apt 源,以debian 7.8举例,将iso文件放到某个位置,例如/root

root@debian:~# pwd
/root
root@debian:~# ls
debian-7.8.0-amd64-DVD-1.iso

然后进行挂载

mount -o loop debian-7.8.0-amd64-DVD-1.iso /mnt

挂载的目的在于将iso变成一个目录,一个系统软件库目录,也可以理解为解压iso出来。

挂载成功后

root@debian:~# df -h
Filesystem                                              Size  Used Avail Use% Mounted on
rootfs                                                   19G  4.6G   14G  26% /
udev                                                     10M     0   10M   0% /dev
tmpfs                                                    99M  240K   99M   1% /run
/dev/disk/by-uuid/31ad3271-1f90-439d-8e26-e93faee5b88b   19G  4.6G   14G  26% /
tmpfs                                                   5.0M     0  5.0M   0% /run/lock
tmpfs                                                   374M     0  374M   0% /run/shm
/dev/loop1                                              3.7G  3.7G     0 100% /mnt

看到/mnt目录已经变成了3.7G,dvd iso的size了

2.修改apt 源文件

/etc/apt/sources.list

将其他内容注释掉,然后添加这一行

deb file:///mnt wheezy contrib main

这个意思是使用本地文件作为源,位置是/mnt,后面是一些参数,详细自行参考apt文档。

修改完成后更新apt软件库的信息

apt-get update

root@debian:~# apt-get update
Ign file: wheezy Release.gpg
Get:1 file: wheezy Release [18.6 kB]
Reading package lists... Done 

3.安装开发软件包

apt-get install build-essential

4.安装linux-headers

apt-get install linux-headers-*

5.将下载好的网卡包放到一个目录,例如/root

tar -jxpf r8168-8.040.00.tar.bz2

root@debian:~# cd r8168-8.040.00/
root@debian:~/r8168-8.040.00# ls
autorun.sh  log.txt  Makefile  README  src
root@debian:~/r8168-8.040.00# 

执行autorun.sh进行编译
./autorun.sh

编译完成后可以查询到新网卡模块已经临时加载上去了

root@debian:~/r8168-8.040.00# lsmod | grep r8168
r8168                 311352  0

6.将新网卡驱动加载启动列表,并且禁用系统的原来的网卡驱动

echo “r8168″ >> /etc/modules

添加blacklist r8169禁用列表
cat /etc/modprobe.d/fbdev-blacklist.conf
blacklist arkfb
blacklist aty128fb
blacklist atyfb
blacklist radeonfb
blacklist cirrusfb
blacklist cyber2000fb
blacklist gx1fb
blacklist gxfb
blacklist kyrofb
blacklist matroxfb_base
blacklist mb862xxfb
blacklist neofb
blacklist nvidiafb
blacklist pm2fb
blacklist pm3fb
blacklist s3fb
blacklist savagefb
blacklist sisfb
blacklist tdfxfb
blacklist tridentfb
blacklist viafb
blacklist vt8623fb
#blacklist r8169 driver
blacklist r8169

7.重启系统

重启系统后就能够发现新网卡模块出来了,然后网卡又可以用了。


参考文档:

1.http://ubuntuforums.org/showthread.php?t=1022411

2.http://murzal-arsya.blogspot.com/2012/01/ubuntu-1110-and-realtek-rtl81...

3.https://unixblogger.wordpress.com/2011/10/18/the-pain-of-an-realtek-rt...

4.http://unix.stackexchange.com/questions/75558/ubuntu-make-fails-with-n...

原文链接:http://www.godblessyuan.com/2015/06/01/an-realtek-rtl8111rtl8168-ether...


线上猛如虎
2.2k 声望178 粉丝

你们都有梦想的,是吧.怀抱着梦想并且正朝着梦想努力的人,寻找着梦想的人,我想为这些人加油呐喊!


引用和评论

0 条评论