CentOS——自己安裝網卡驅動


前言

前幾個星期,自己攢了一台電腦,主板是Gigabit的Z77-DS3H,系統裝了CentOS 6.4。郁悶的是,這個系統不支持主板自帶點的網卡。沒辦法,自己一個人折騰了好久,終於被我解決了,在此過程中各種碰壁,故特此記錄。

正文

問題出現

如圖:

這是我剛安裝好系統之后的截圖。在終端可以發現只有一個lo連接而沒有eth0,而在右上角,聯網圖標下面的提示上顯示了“No network device availabal”。由此判斷,是系統沒有合適的驅動所致。

查看設備

使用以下命令查看網卡信息:

1 lspci | grep -i eth

 顯示的結果為:

02:00.0 Ethernet controller: Atheros Communications Inc. AR8161 Gigabit Ethernet (rev 10)

CentOS論壇上找了一下,發現了一則帖子。在#6的回復里面,我找到了可行的解決方案。

 之前試過了無數次,簡直是個噩夢。。。

在那則回復里面,作者要我們去這里下載驅動。

我這里直接給出文件的鏈接,大家可以用wget或者其他下載工具直接下載:

http://fichiers.touslesdrivers.com/34178/alx-linux-v2.0.0.6.rar

下載下來的文件名是alx-linux-v2.0.0.6.rar

根據您在看這則文章時使用的操作系統:

Windows系統

建議安裝7Z這個壓縮軟件,他可以將文件夾或多個文件打包並壓縮為tar.gz/bz2格式,(當然也支持rar格式,而且和rar不同,他是免費軟件。。。這里當成是對7Z的推廣好了)當然也支持將tar.gz/bz2等文件解壓縮。

這樣一來,如果你下載的是rar文件,也可以將其解壓后重新壓縮為tar格式,然后用U盤之類的存儲器轉移到Linux下進行編譯安裝。不然,Linux一般是解壓不了rar文件的,但是網上大部分的壓縮文件都是rar格式了。

Linux系統

可能是有其他網卡,所以還能聯網,還能看到這篇文章。或者就是兩台Linux主機,用其中一台可以上網的來下載。

下載到tar之類的格式的不用擔心,下載到rar格式的,用yum搜索一下rar好了。

啊,悲劇了,下載來的文件是rar格式的。我是在windows下下載的,所以用7Z解壓再壓縮,然后用手機轉移過去(因為沒有U盤Orz...)

  編譯和安裝

編譯前提

你要安裝了kernel-headers 和 kernel-devel。當然,還有gcc。

不過悲劇的是,CentOS默認是沒有安裝好gcc的。如果你不確定是否有安裝gcc的話,請直接在終端里輸入gcc,如果沒有安裝,就會提示bash: gcc: comman not found。

要是真的悲劇了,gcc沒有安裝怎么辦?我是插入一張bin DVD,然后更改了yum的配置文件,讓yum的軟件源變成本地的光盤。這個方法有機會以后再介紹。

要安裝kernel-headers 和 kernel-devel,你需要以下兩條命令:

1 sudo yum install kernel-headers
2 sudo yum install kernel-devel 

 以上兩個只需要安裝一次,以后編譯其他驅動就不用再安裝了。

編譯

將下載下來的壓縮包解壓后,出現一個目錄(alx-linux-v2.0.0.6),我們進入這個目錄之后,直接執行make就可以了。

之后,我們再進入當前目錄的src目錄,用ls可以發現,有一個叫做alx.ko的文件,這個就是我們要用的網卡驅動了。

安裝驅動

執行一下pwd,我們應該是在xxxx/alx-linux-v2.0.0.6/src目錄下。接下來,我們只要再把那個alx.ko復制到指定目錄下就可以了。

這里直接上圖:

只要按照上面顯示的步驟來,馬上就會有效果了——請看此圖右上角,從原來的紅叉叉變成綠圈圈了。

命令:

1 sudo mkdir /lib/modules/$(uname -r)/kernrl/net/wireled        #這里的$(uname -r)會替換成系統當前的版本號
2 sudo cp alx.ko /lib/modules/$(uname -r)/kernrl/net/wireled    #將驅動文件拷貝到指定位置
3 sudo depmod -a                                                #檢測模塊的相依性,lib下驅動文件改變后最好執行一下
4 sudo modprobe alx                                             #在默認位置上加載了alx.ko

至於lsmod | grep alx是為了查看該驅動是加載成功。如果該驅動沒有被加載的話,那么就什么都不顯示。

在上圖,執行modprobe之前和之后有明顯不同。

顯示:alx             90654   0  說明該驅動成功被載入了。

重啟之后,該驅動也還在。所以,不用像那個論壇里那個人寫的那么麻煩了。

解決問題

好了,用不管是用ifconfig看,還是用右上角的圖標看,問題似乎都完全解決了。接下來,就隨你怎么配置網卡了。我是配置了撥號連接。

后記

  •  如果載入驅動成功后,使用ifconfig還無法看到eth0的話,使用:
    1 ifconfig -a                #這樣就可以發現eth0了(eth0是第一個,如果你有其他網卡,就會有eth1,2,3...)
    2 sudo ifconfig eth0 up      #根據上面看到的替換eth0,一般是eth0

     

  • 要想編譯驅動之類的東西,必須先安裝kernel-headers 和 kernel-devel

  • 查看設備信息,使用:
    1 lspci #加上 -v 選項更完整

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM