萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> linux系統centos 6.0自帶的R8169驅動問題

linux系統centos 6.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 一樣版本的軟件包 .

copyright © 萬盛學電腦網 all rights reserved