學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 操作系統(tǒng) > Linux教程 > linux系統(tǒng)centos6.0自帶的R8169驅(qū)動(dòng)問題

linux系統(tǒng)centos6.0自帶的R8169驅(qū)動(dòng)問題

時(shí)間: 若木635 分享

linux系統(tǒng)centos6.0自帶的R8169驅(qū)動(dòng)問題

  本文是linux系統(tǒng)centos 6.0自帶的R8169驅(qū)動(dòng)問題,歡迎大家閱讀借鑒。

  最近用PC主板安裝了一臺(tái)centos服務(wù)器,但總是不定時(shí)死機(jī),死機(jī)前的各種負(fù)載均很低,多次測試找不出具體問題。后來發(fā)現(xiàn)原來系統(tǒng)是把R8168安裝了R8169的驅(qū)動(dòng),雖然能用,但問題多多。

  ethtool -i eth0

  driver: r8169

  哦,集成的r8169芯片啊,不過聽說這個(gè)網(wǎng)卡在Linux下會(huì)出一些問題,從網(wǎng)上搜了下,果然好多人都說這個(gè)網(wǎng)卡CentOS自帶的驅(qū)動(dòng)不好,那就干脆換成官方的吧!

  于是就上Realtek去搜索R8169的驅(qū)動(dòng),找到了,幾十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

  結(jié)果在這時(shí)候出錯(cuò)了

  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

  后面省略。這是怎么回事?有很多未定義很多錯(cuò)誤,有網(wǎng)友告訴我要裝kernel-head還有kernel-devel ,可是我這兩個(gè)都裝了啊

  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

  這可怪了,有幾個(gè)做開發(fā)的朋友告訴我讓我修改驅(qū)動(dòng)源代碼一個(gè)個(gè)指定上面的那些缺少和找不到的變量,我暈還要改源代碼….. 我又一想是不是因?yàn)轵?qū)動(dòng)程序不對啊,于是 用 lspci 查看了一下

  lspci |grep Ethernet

  02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03)

  咦這不是 R8168B嗎!我說怎么不讓我裝驅(qū)動(dòng)呢…可是為什么系統(tǒng)會(huì)認(rèn)成了R8169呢?于是我把所有關(guān)于 R8169 的模塊和驅(qū)動(dòng)都刪掉了,重新啟動(dòng)了一下,結(jié)果發(fā)現(xiàn)系統(tǒng)仍然把他認(rèn)成 R8169,沒辦法重裝 R8168驅(qū)動(dòng)吧,在官網(wǎng)搜了下

  http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=3&PNid=13&PFid=5&Level=5&Conn=4&DownTypeID=3&

  GetDown=false#2

  下載最新的驅(qū)動(dòng) 版本是r8168-8.018.00,解壓縮一看,這個(gè)簡單 直接給個(gè)執(zhí)行權(quán)限 然后 ./autorun.sh 全自動(dòng)執(zhí)行了,呵呵

  再看看現(xiàn)在用的是哪個(gè)驅(qū)動(dòng)

  ethtool -i eth0

  driver: r8168

  version: 8.018.00-NAPI

  firmware-version:

  bus-info: 0000:02:00.0

  重啟了一下網(wǎng)絡(luò) ,然后讓開發(fā)的同事繼續(xù)跑測試程序,ok跑了一個(gè)小時(shí)沒有出現(xiàn)問題,在網(wǎng)上搜索的時(shí)候發(fā)現(xiàn)與我類似的問題還有很多,都是系統(tǒng)自帶R8169網(wǎng)卡驅(qū)動(dòng)造成的,建議大家如果拿到這樣的網(wǎng)卡還是重裝一下驅(qū)動(dòng)吧!

  如果安裝需到make: *** /lib/modules/2.6.18-164.el5/build: No such file or

  確認(rèn)當(dāng)前內(nèi)核是這個(gè)版本么,是的話安裝 kernel-devel, kernel-headers 一樣版本的軟件包 .

116894