昨天看了看在Linux下配置網路卡的驅動程式,總結了一下:
以D-Link530的網路卡進行模組的編譯.
由於Linux的預設核心已經建立很多網路卡驅動程式模組,所以在編譯網路卡模組之前就要確認網路卡晶片是否被支援,如果被支援,就不需要編譯模組.
D-Link530的網路卡的晶片組是有名的via-rhine(有時也寫成viarhine),先找找有沒有這塊網路卡的模組,如果有,你的網路卡已經被支援,可以跳過編譯過程,直接進行模組的載入.
1.先檢視核心版本,因為不同版本的模組放置的路徑不同
uname -r
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
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
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
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
depmod -a
4.模組測試
核心模組編譯完成後,就要測試能否正常執行,因為我們已經執行depmod -a,所以直接以modprobe進行模組的載入.
1.載入模組測試
modprobe rhinefet.o
注意,不要寫完整的名稱,.o不需要寫.rhinefet就是剛剛編譯出來的rhinefet.o.
lsmod
2.設定開機載入摸塊
就是編輯/etc/modules.conf
vi /etc/modules.conf
vi /etc/modules.conf
在檔案中加入下面一行:
alias eth0 rhinefet
3.重新啟動,看是否正常啟動模組
sync;sync;reboot
上面我們使用的是rhinefet模組,如果不是這個名稱,就請依你的實際情況來修改.接下來就是測試這個網路卡是否正常工作.