無線LANのドライバーをインストールするための準備

 DebianをWindows端末と同等の端末として使えるためにはネットワークインタフェースの自由度が重要である。
 私としては無線LANで家庭内を繋いでいるため、このDebian端末でも無線LANのインタフェースであるUSBやPCMCIAのアダプターが動いて欲しいというのが当然の要求である。
 ところが調べてみると手持ちのアダプターの内、PCMCIAについてはカーネルに組み込まれているようであるがUSBのものについては外部のドライバーを持ってくる必要がある様である。
 この外部のドライバーの組込みにはコンパイルが必要であり、そのためには今ここで動いているカーネルの
ソースが必要となる様である。
 そこでカーネルのソースを組み込むのであるが、LS−GLでの組込みの経験からカーネル自体も現在の環境でコンパイルしておくほうが無難なようなのでソースの展開とコンパイルを行った。
 方法は、
  • コンパイル環境の整備
  • カーネルソースの入手
  • パッチの入手
  • カーネルの展開
  • パッチ当て
  • コンパイル
  • 新カーネルの組込み
  • 再起動
と言う順番で行った。

・コンパイル環境の整備

 以下のパッケージを#apt-get installで組み込んでおく。既に組み込まれているものもあるが、チェックの意味を含めて全て当たっておく。

 autoconf automake binutils gcc gettext kernel-package libncurses5-dev libtool 

 linux-kernel-headers make

・カーネルソースの入手
 今回インストールしたDebianのカーネルはバージョン2.6.18であるのでそのソースを以下により展開する。
# apt-get install linux-source-2.6.18

・パッチの入手
 パッチについても同じバージョンのものを貰ってくる。
# apt-get install linux-patch-debian-2.6.18

・カーネルの展開
 カーネルの本体は、/usr/src/linux-source-2.6.18/に展開される。
# tar jxf /usr/src/linux-source-2.6.18.tar.bz2 

・パッチ当て
 カーネルの本体の場所に移動してパッチを当てる。
# cd linux-source-2.6.18
# /usr/src/kernel-patches/all/2.6.15/apply/debian 2.6.18-N

  ここで最後のコマンドの"N"は"N"をそのまま打つのではなく,バージョンに従って,1からNまでの数字を打っていくと言うことを意味する。 動いているカーネルのバージョンは2.6.18-6となっているのでここではN=6なのでNを1から 6まで順に6回コマンドを実行することとなる。

・コンパイル

 コンパイルは、現在使っているカーネルの設定情報を反映させ、次に作りたいカーネルの仕様によってパラメータを変更する必要がある。
 まず、現在のカーネルのパラメータをコンパイルするカーネルのパラメータとしてコピーする。
# cp /boot/config-2.6.18-6-686 .config

 次に新カーネルのパラメータに既存の設定を反映する。旧に定義が無い場合は聞いてくるが、今回は同じものなのでそのまま終了してしまう。
# make oldconfig
 次に、今回変更したいパラメータをいじるためにmake menuconfigを実行するがこのケースではそれも無いはずであるので実行しなくても良い。ただし、カーネルをスリム化したいような場合はこれにより 不必要な設定をはずすとよい。外しすぎると動かなくなることがあるので注意が必要。
ます.
# make menuconfig

 諸元の設定が終わるといよいよコンパイルに入る。
# make-kpkg clean

で掃除をして、
# make-kpkg --initrd --revision=20080320.1.0 kernel_image

 --revision以下はコンパイルするカーネルに付ける名札である。他のものと区別できるよう分かり易い日付などを使うといい様である。このコンパイルにはマシンにもよるが私の環境つまり1G未満の速度だと3時間くらいかかったのではないかと思う。

・新カーネルの組込み

 作成が終わると,一つ上のディレクトリ(/usr/src/)にカーネルのdebパッケージが出来るのでこれをインストールすれば終了です.

# dpkg -i ../linux-image-2.6.18_20080320_i386.deb

 組込みが終われば,リブートする。grubなどの設定も自動でやってくれているので全て終了である。
 
 vmlinuz-2.6.18-6-686
 vmlinuz-2.6.18

 起動時に上記のような幾つかの選択肢が表れるが、今回作成したカーネルはvmlinuz-2.6.18である。
 同名でsigleとの注釈がついたものは、うまくXが起動しない場合のCUIインタフェースかつシングルユーザー用のメニューである。必要により利用すると良い。