一般在安裝系統時發現我們的的硬體裝置沒有被支援,此時再安裝時就必須先載入卡的模組,但是卡的廠商並沒有提供安裝磁片,但是有提供模組,此時我們是可以自己手動來做這一張安裝磁片.
首先,我們來看看 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 的系統
- 建立工作目錄
# 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
- 由 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
- 將系統重開,並啟動為 single processor 模式
# cd /tmp/lpfcdriver-2.01g # make clean # ./Install.sh # make # cp lpfcdd.o /tmp/modules/2.4.21-12.EL
- 變更目錄至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
- 回到 /usr/src/linux-2.4.21-12.EL 目錄下,編輯 Makefile 將 EXTRAVERSION 的敘述改為
EXTRAVERSION=-12.ELBOOT # make dep
- 回到 Emulex driver source code 的目錄,編譯模組
# cd /tmp/lpfcdriver-2.01g # make clean; # ./Install.sh # make # cp lpfcdd.o /tmp/modules/2.4.21-12.ELBOOT
- 將檔案包裝成 modules.cgz 檔
# cd /tmp/modules # find . -type f | cpio -H crc -o | gzip -9 > ../modules.cgz # cd .. # rm -rf modules
- 找現成的 driver disk image,如此ㄧ來省去編輯 modinfo modules.dep pcitable 這三個檔案的麻煩,我在 Emulex 的官方網站找到 as21.i686-1.23a.img.gz 這個檔案,並做成 Driver Disk.
解壓縮檔案# gunzip as21.i686-1.23a.img.gz
將 img 檔寫入軟碟機,做成driver disk.
# dd if=as21.i686-1.23.img of=/dev/fd0
- 將軟碟機裡的 modules.cgz 檔給替換掉
# mount /dev/fd0 /mnt/floppy # cp /tmp/modules.cgz /mnt/floppy
給 RHEL AS3.0 Update 2 用的 driver disk 到這裡就算完成了。Redhat 的 Driver Disk 的製作方法都與以上的步驟雷同,差別在 kernel 的版本不同。
沒有解決問題,試試搜尋本站其他內容