1,475 瀏覽數

Redhat Driver Disk

一般在安裝系統時發現我們的的硬體裝置沒有被支援,此時再安裝時就必須先載入卡的模組,但是卡的廠商並沒有提供安裝磁片,但是有提供模組,此時我們是可以自己手動來做這一張安裝磁片.

首先,我們來看看 Driver Disk 包含哪些個檔案

  • modinfo
  • modules.dep
  • pcitable
  • rhdd-6.1
  • modules.cgz

一共有這五個檔案,他們主要的功能如下

  • modinfo : 關於這個driver module的描述
  • modules.dep : 是與本驅動程式模組有相依關係的驅動程式模組
  • pcitable : Device和driver module的對應表,OS藉此尋找適當的driver module給device使用.
  • rhdd-6.1 : 作用不明,該檔內容可以是空白
  • modules.cgz :  driver module的package檔

在這邊我把重點放在如何建立 modules.cgz 這個檔案。我們以 Emulex 1000EX 為例,示範如何建立一個 RHEL AS3 Update2 用的 Driver Disk。
首先安裝一個 RHEL3.0 AS Update2 的系統

  1. 建立工作目錄
    # cd /tmp
    # mkdir modules
    # mkdir modules/2.4.21-12.ELsmp
    # mkdir modules/2.4.21-12.EL
    # mkdir modules/2.4.21-12.ELBOOT
    
  2. 由 Emulex 官方網站取得 driver source code,並將系統啟動為 smp 模式,編譯 driver module (如果你的系統為 single processor ,則這一部分不需要作)。
    # cp lpfcdriver-2.01g.tgz /tmp
    # cd tmp
    # tar xvfz lpfcdriver-2.01g.tgz
    # cd lpfcdriver-2.01g
    # ./Install.sh
    # make
    # cp lpfcdd.o /tmp/modules/2.4.21-12.ELsmp
    
  3. 將系統重開,並啟動為 single processor 模式
    # cd /tmp/lpfcdriver-2.01g
    # make clean
    # ./Install.sh
    # make
    # cp lpfcdd.o /tmp/modules/2.4.21-12.EL
    
  4. 變更目錄至kernel source code所在的目錄,完成以下步驟
    # cd /usr/src/linux-2.4.21-12.EL
    # make clean
    # make mrproper
    # rm -f .config
    # make xconfig
    

    在 kernel 組態設定的畫面上,按 load configuration from file,在 Enter Filename 的欄位輸入: configs/kernel-2.4.21-i386-BOOT.config

    make

  5. 回到  /usr/src/linux-2.4.21-12.EL 目錄下,編輯 Makefile 將 EXTRAVERSION 的敘述改為
    EXTRAVERSION=-12.ELBOOT
    # make dep
    
  6. 回到 Emulex driver source code 的目錄,編譯模組
    # cd /tmp/lpfcdriver-2.01g
    # make clean;
    # ./Install.sh
    # make
    # cp lpfcdd.o /tmp/modules/2.4.21-12.ELBOOT
    
  7. 將檔案包裝成 modules.cgz 檔
    # cd /tmp/modules
    # find . -type f | cpio -H crc -o | gzip -9 > ../modules.cgz
    # cd ..
    # rm -rf modules
    
  8. 找現成的 driver disk image,如此ㄧ來省去編輯 modinfo modules.dep pcitable 這三個檔案的麻煩,我在 Emulex 的官方網站找到 as21.i686-1.23a.img.gz 這個檔案,並做成 Driver Disk。
    # gunzip as21.i686-1.23a.img.gz          解壓縮檔案
    # dd if=as21.i686-1.23.img of=/dev/fd0   將img檔寫入軟碟機,做成driver disk
    
  9. 將軟碟機裡的 modules.cgz 檔給替換掉
    # mount /dev/fd0 /mnt/floppy
    # cp /tmp/modules.cgz /mnt/floppy
    

    給 RHEL AS3.0 Update 2 用的 driver disk 到這裡就算完成了。Redhat 的 Driver Disk 的製作方法都與以上的步驟雷同,差別在 kernel 的版本不同。

發表迴響