学习啦 > 学习电脑 > 操作系统 > Linux教程 > linux系统centos6.0自带的R8169驱动问题

linux系统centos6.0自带的R8169驱动问题

时间: 若木635 分享

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 一样版本的软件包 .

116894