CentOS6.6自带的网卡驱动是r8169,实际物理网卡的芯片是r8168(RTL8168/8111/8112Gigabit Ethernet Controller),驱动不匹配导致网络无法连接。困扰了我很久,今天终于解决,把方法记录下来,分享给遇到同样问题的小伙伴们~

     

解决办法:卸载r8169原来的驱动,安装新的r8168驱动,步骤如下:

一、下载驱动

http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=3&PNid=5&PFid=5&Level=5&Conn=4&DownTypeID=3&GetDown=false#RTL8111B/RTL8168B/RTL8111/RTL8168/RTL8111C

 

二、卸载r8169驱动

1、输入以下命令查看当前驱动:

ethtool –i eth0

 

显示:

driver:r8169

 

2、输入以下命令,查看网卡芯片

lspci | grep net

 

显示:

RTL8168/8111/8112Gigabit Ethernet Controller

 

3、以上两结果对比,确定确实是驱动不匹配,查看驱动路径,把该驱动备份,(或直接删除)。

 

查看驱动路径命令:

modinfo r8169 |grep filename

 

备份命令:

mv 驱动路径/r8169.ko驱动路径/r8169.ko.backup

 

(直接删除命令:

rm驱动路径/r8169.ko)

 

4、输入以下命令删除驱动:

rmmod r8169

 

5、输入以下命令查看是否删除成功

lsmod | grepr8169

 

无显示,或结果中没有r8169说明删除成功

 

 

三、安装r8168驱动

 

1、前提:默认centos安装的时候,并没有带上需要支持编译的源码包,需要自己用yum install

命令同时安装:kernel、kernel-headers和kernel-devel,以及gcc

否则执行网卡驱动编译的时候会报错误。

 

一般kernel、kernel-headers都已经安装,用以下命令可查看:

rpm –qa | grep kernel*

 

rpm -qa gcc

 

发现没有kernel-devel,gcc

2、建立本地yum源

参照文档是:http://jingyan.baidu.com/article/e9fb46e1aed8207521f7662c.html

 

1)放入Centos6.6的镜像光盘或找到镜像文件,我用的是U盘做的镜像,直接插入U盘,在终端输入lsblk,记下U盘挂载路径:/media/……

2)cd /etc/yum.repos.d/

备份该路径下的所有.repo文件(或直接删除),目的是使用本地源

 

在终端输入vim local.repo,回车,输入以下内容

 

[local_server](库名称)

name=Thisis alocal repo(名称描述)

baseurl=file:///media/dvd(yum源目录,源地址,把上一步记下的U盘挂载路径写在这里)

enabled=1(是否启用该yum源,0为禁用)

gpgcheck=1 (检查GPG-KEY,0为不检查,1为检查)

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6(gpgcheck=0时无需配置)

保存退出!

3)输入以下命令(清除缓存):

yumclean all

4)输入命令:yum makecache (建立新缓存)

3、输入yum install kernel-devel安装kernel-devel

(如果kernelkernel-devel kernel-headers都没安装,可一起安装

 yum install kernel kernel-devel kernel-headers)

 

输入yum –y install gcc安装gcc

 

4、安装驱动

# tar vjxf r8168-8.006.00.tar.bz2 

# cd r8168-8.006.00 

# vim readme (查看安装说明)

# make clean modules (as root or withsudo) 

# make install 

# depmod -a 

# insmod ./src/r8168.ko

# service network restart


补充说明:其实直接执行目录下autorun.sh脚本即可,该脚本先检查原来的驱动,有则先删除,后安装新的。

 

5、vi /etc/sysconfig/network-scripts/ifcfg-eth0

把onboot=no改成yes

 

6、重启电脑

 

电脑右上角网络连接图标正常,在终端输入mii-tool eth0,显示link ok,网络正常。


补充说明:后来在另一台相同配置的电脑上装相同的系统,输入mii-tool eth0,显示link ok,结果却是正常的,只需把ifcfg-eth0文件中的onboot=no改成yes即可,连重启都不用,系统自动刷新,网络连接上了。奇怪了~