Last Update 2009-04-03

Driver Disk (ドライバ・ディスク)

Linuxインストールの時、新しめのH/Wだと対応するドライバがディストリビューションに含まれていないことがある。
インストール時にドライバを含むディスクを用意しておいて、インストーラに指示することでディストリビューションに含まれないドライバを導入しつつインストールを進めることができる。
RedHat EL5 のドライバ・ディスクの作成を行ってみる。

リンク


ダウンロード


ドライバ・ディスクの内容

ドライバ・ディスクについて色々調べてみると、古いディストリビューションでの情報が多い。
またドライバ・ディスク自体の仕様をまとめたようなサイトが見つからない。

RHEL5での事例を探していて、次のサイトに行き当たった。
Bug 195899 - dd (driver disk) not working with fc5, works with centos4
このComment#18によると、必須なのは以下の5つということになる。
  • modinfo
  • modules.alias
  • modules.cgz
  • modules.dep
  • rhdd

古い情報だと、modules.pcimap、pci.ids、pcitableなどのファイルがドライバ・ディスクに必要だったようである。
またmodules.aliasは存在しなかった様子。
RHEL5では上記のファイル構成となる。

ドライバ・ディスク内のファイルの内容

以下は、Intel 82567 LM 用のドライバを想定した例となる。
ドライバのコンパイル方法は省略する。

modinfo
Version 0
e1000e
	eth
	"Intel 82567LM Gigabit Network Connection"
 

modules.alias
alias pci:v00008086d000010DFsv*sd*bc*sc*i* e1000e
alias pci:v00008086d000010DEsv*sd*bc*sc*i* e1000e
alias pci:v00008086d000010CEsv*sd*bc*sc*i* e1000e
alias pci:v00008086d000010CDsv*sd*bc*sc*i* e1000e
alias pci:v00008086d000010CCsv*sd*bc*sc*i* e1000e
...(略)... 

modules.dep
(空のファイル) 

rhdd
RHEL5 Driver Update Disk

modules.cgzはドライバ本体をcpio+gzipでまとめたファイルとなる。
作成方法は後述。

ドライバ・ディスクの作成

例えば以下のようなディレクトリ構成を作っておく。
dud/
 |- driver/
 |   |-2.6.18-92.el5/i686/e1000e.ko
 |
 |- image/
     |- modinfo
     |- modules.alias
     |- (modules.cgz)
     |- modules.dep
     |- rhdd
 
  • driverの下に、kernelのバージョン(uname -r)/アーキテクチャ/ のディレクトリを作りドライバを置く
  • imageの下にドライバ・ディスクに必要なファイルを置く
  • この時点ではmodules.cgzはまだ存在しないので()で括ってある

modules.cgzを作成する。
% cd dud/driver/
% find . -name '*.ko' | cpio -oH crc | gzip -c > ../image/modules.cgz 

ドライバ・ディスクのISOを作成する。
% cd dud/image/
% mkisofs -R -o ../drvdisk.iso . 

作成されたdud/drvdisk.isoをCD-Rに焼く。
インストーラ起動時、linux dd としてドライバディスクの使用を指定する。
最終更新:2009年04月03日 00:24