以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
如果沒有以上的包,就要拿出CD光牒,将他們安裝到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子產品,如果不是這個名稱,就請依你的實際情況來修改.接下來就是測試這個網卡是否正常工作.