linux系统centos6.0自带的R8169驱动问题
学习啦在线学习网linux系统centos6.0自带的R8169驱动问题
本文是linux系统centos 6.0自带的R8169驱动问题,欢迎大家阅读借鉴。
学习啦在线学习网 最近用PC主板安装了一台centos服务器,但总是不定时死机,死机前的各种负载均很低,多次测试找不出具体问题。后来发现原来系统是把R8168安装了R8169的驱动,虽然能用,但问题多多。
学习啦在线学习网 ethtool -i eth0
学习啦在线学习网 driver: r8169
学习啦在线学习网 哦,集成的r8169芯片啊,不过听说这个网卡在Linux下会出一些问题,从网上搜了下,果然好多人都说这个网卡CentOS自带的驱动不好,那就干脆换成官方的吧!
学习啦在线学习网 于是就上Realtek去搜索R8169的驱动,找到了,几十K很快就down下来,http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=3&PNid=4&PFid=4&Level=5&Conn=4&DownTypeID=3&GetDown=false&Downloads=true#RTL8110S-32/RTL8110SB%28L%29/RTL8169SB%28L%29/RTL8169SC%28L%29%3Cbr%3ERTL8169
解压缩,lsmod |grep r8169 然后 rmmod r8169 删除之后 再make clean modules
结果在这时候出错了
make clean modules
make -C src/ clean
学习啦在线学习网 make[1]: Entering directory `/soft/r8169-6.012.00/src’
rm -rf *.o *.ko *~ core* .dep* .*.d .*.cmd *.mod.c *.a *.s .*.flags .tmp_versions Module.symvers Modules.symvers rset modules.order Module.markers
make[1]: Leaving directory `/soft/r8169-6.012.00/src’
学习啦在线学习网 make -C src/ modules
学习啦在线学习网 make[1]: Entering directory `/soft/r8169-6.012.00/src’
学习啦在线学习网 make -C /lib/modules/2.6.18-128.el5/build SUBDIRS=/soft/r8169-6.012.00/src modules
make[2]: Entering directory `/usr/src/kernels/2.6.18-128.el5-x86_64′
CC [M] /soft/r8169-6.012.00/src/r8169_n.o
学习啦在线学习网 /soft/r8169-6.012.00/src/r8169_n.c: In function ‘rtl8169_alloc_rx_skb’:
/soft/r8169-6.012.00/src/r8169_n.c:3012: error: ‘uintptr_t’ undeclared (first use in this function)
学习啦在线学习网 /soft/r8169-6.012.00/src/r8169_n.c:3012: error: (Each undeclared identifier is reported only once
学习啦在线学习网 后面省略。这是怎么回事?有很多未定义很多错误,有网友告诉我要装kernel-head还有kernel-devel ,可是我这两个都装了啊
学习啦在线学习网 rpm -qa |grep kernel
学习啦在线学习网 kernel-devel-2.6.18-164.15.1.el5
学习啦在线学习网 kernel-devel-2.6.18-128.el5
学习啦在线学习网 kernel-headers-2.6.18-164.15.1.el5
学习啦在线学习网 kernel-2.6.18-128.el5
学习啦在线学习网 这可怪了,有几个做开发的朋友告诉我让我修改驱动源代码一个个指定上面的那些缺少和找不到的变量,我晕还要改源代码….. 我又一想是不是因为驱动程序不对啊,于是 用 lspci 查看了一下
学习啦在线学习网 lspci |grep Ethernet
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03)
咦这不是 R8168B吗!我说怎么不让我装驱动呢…可是为什么系统会认成了R8169呢?于是我把所有关于 R8169 的模块和驱动都删掉了,重新启动了一下,结果发现系统仍然把他认成 R8169,没办法重装 R8168驱动吧,在官网搜了下
http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=3&PNid=13&PFid=5&Level=5&Conn=4&DownTypeID=3&
GetDown=false#2
下载最新的驱动 版本是r8168-8.018.00,解压缩一看,这个简单 直接给个执行权限 然后 ./autorun.sh 全自动执行了,呵呵
再看看现在用的是哪个驱动
学习啦在线学习网 ethtool -i eth0
学习啦在线学习网 driver: r8168
学习啦在线学习网 version: 8.018.00-NAPI
firmware-version:
学习啦在线学习网 bus-info: 0000:02:00.0
学习啦在线学习网 重启了一下网络 ,然后让开发的同事继续跑测试程序,ok跑了一个小时没有出现问题,在网上搜索的时候发现与我类似的问题还有很多,都是系统自带R8169网卡驱动造成的,建议大家如果拿到这样的网卡还是重装一下驱动吧!
如果安装需到make: *** /lib/modules/2.6.18-164.el5/build: No such file or
学习啦在线学习网 确认当前内核是这个版本么,是的话安装 kernel-devel, kernel-headers 一样版本的软件包 .