昨天看了看在Linux下配置網卡的驅動程序,總結了一下:
?
??? 以D-Link530的網卡進行模塊的編譯.
??? 由于Linux的默認內核已經建立很多網卡驅動程序模塊,所以在編譯網卡模塊之前就要確認網卡芯片是否被支持,如果被支持,就不需要編譯模塊.
??? D-Link530的網卡的芯片組是有名的via-rhine(有時也寫成viarhine),先找找有沒有這塊網卡的模塊,如果有,你的網卡已經被支持,可以跳過編譯過程,直接進行模塊的加載.
??? 1.先查看內核版本,因為不同版本的模塊放置的路徑不同
????? uname -r
??? 2.內核模塊的路徑
????? cd /lib/modules/`uname -r`/kennel/drivers/net
????? 以上為2.4版的路徑
????? cd /lib/modules/`uname -r`/net
????? 以上為2.2版的路徑
??? 3.查詢模塊
????? ls -l via*
?
??? 如果自己不知道網卡被Linux檢測到,可以用以下方法來測試:
????? dmesg | grep eth
??? 如果檢測到,就不需要編譯內核模塊.萬一檢測不到,就必須進行編譯工作了.
?
??? 1.下載網卡驅動程序模塊.
??? 2.確定存在所需要的包:由于驅動程序需要配合內核來編譯,就會用到kernel source或kernel header的數據,此外也需要編譯器的幫助,先確定Linux中是否已經存在下面的包(以Red Hat 9為例):
????? kernel-source-2.4.20-18.9
????? kernel-2.4.20-18.9
????? gcc-3.2.2-5
????? make-3.79.1-17
???? 如果沒有以上的包,就要拿出光盤,將他們安裝到Linux中.
?
???? 注意:由于很多內核模塊默認都是由/usr/src/linux這個kernel source的目錄來取得所需信息,但偏偏目前很多的Linux都是使用/usr/src/linux-2.4這個目錄來鏈接,所以很多時候就會發現找不到文件的錯誤信息. 因此,可以使用下面的方式來鏈接目錄:
????? cd /usr/src
????? ln -s linux-2.4.20-18.9 linux?
?
???? 3.編譯下載的模塊
?????? 下載完整的驅動程序源代碼,如文件名為:dlkfet-4.24.tar.gz
??????? 1.將取得的文件放置到/tmp下,并解壓文件
????????? cp dlkfet-4.24.tar.gz /tmp
????????? cd tmp
????????? tar -zxvf dlkfet-4.24.tar.gz
????????? cd dlkfet-4.24
??????? 2.開始編譯
????????? make
????會產生一個文件模塊:rhinefet.o,將它移動到模塊放置的目錄后,執行depmod -a即可.
????????? cp rhinefet.o /lib/modules/`uname -r`/kennel/drivers/net
????????? depmod -a
????? 4.模塊測試
??????? 內核模塊編譯完成后,就要測試能否正常運行,因為我們已經運行depmod -a,所以直接以modprobe進行模塊的加載.
??????? 1.加載模塊測試
??????? modprobe rhinefet.o
??????? 注意,不要寫完整的名稱,.o不需要寫.rhinefet就是剛剛編譯出來的rhinefet.o.
??????? lsmod
??????? 2.設置開機加載摸塊
??????? 就是編輯/etc/modules.conf
??????? vi /etc/modules.conf
??????? 在文件中加入下面一行:
??????? alias eth0 rhinefet
??????? 3.重新啟動,看是否正常啟動模塊
??????? sync;sync;reboot
??? 上面我們使用的是rhinefet模塊,如果不是這個名稱,就請依你的實際情況來修改.接下來就是測試這個網卡是否正常工作.
本文出自 51CTO.COM技術博客