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即可,连重启都不用,系统自动刷新,网络连接上了。奇怪了~