昨天看了看在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模組,如果不是這個名稱,就請依你的實際情況來修改.接下來就是測試這個網路卡是否正常工作.