since 2002/01/01
lastupdate 2003/01/16
   

カーネル再構築

カーネル2.4.18 のIDEドライバにはバグ(?)があり、そのままでは起動時にカーネルがパニックし、 起動できません。そこでバグ解消やACPIやその他のパッチを当ててカーネルを再構築します。 カーネルの再構築にかかわる元ネタはこちらのサイトで詳しいので、御覧ください。 こちらの方が詳しいです(^^;;; また、コンパイル済のカーネルもダウンロードできます。> browncat.org 様

ま、これで終ったのではちょっとアレなので、細かい手順など。。。(^^;;;
尚、このページでは browncat.org 様で当てているパッチと同じ物を当てます。

必要なもの

カーネルは 2.4.18 を使います。Debian なら以下の場所からダウンロードできます。 かなりでっかいので気を付けてください。

http://packages.debian.org/testing/devel/kernel-source-2.4.18.html

その他必要と思われる物はこんな感じ。dselect や apt-get で用意しましょう。
また、他にも依存性のチェックに引っかかる物も全ていれましょう。

  • kernel-package - Debian Linux kernel package build scripts.
  • bzip2 - A high-quality block-sorting file compressor - utilities
  • bin86 - 16-bit assembler and loader
  • sudo - Provides limited super user privileges to specific users.

sudo は必須ではありませんが、ユーザでカーネルを作る方が何かと便利かも知れないので。。。 sudo について良く分からない場合は全て root で行いましょう。

カーネルソースの展開

カーネルソースを落したら、dpkg コマンドでインストールします。

$ sudo dpkg -i kernel-source-2.4.18_2.4.18-5_all.deb

そうすると多分 /usr/src に kernel-source-2.4.18.tar.bz2 というファイルが出来上りますので、 以下のように展開します。

$ cd /usr/src
$ sudo tar xvjf kernel-source-2.4.18.tar.bz2

するとさらに、/usr/src に kernel-source-2.4.18 というディレクトリが出来ますので、 ここへシンボリックリンクを張ります。

$ ln -s kernel-source-2.4.18/ linux

各種パッチを当てる

展開したカーネルはそのままでは使い物にならないので、いろいろパッチを当てます。 今回使用しているパッチに付いての詳しい情報は、browncat.org 様で詳しく書いてありますので、 説明を読んだり、パッチをゲットしたりして来てください。

で、パッチを実際に当てるには次のようにします。

$ cd /usr/src/linux
$ sudo patch -p1 < パッチファイルへのパス

このような要領で全てのパッチを当ててください。

make xconfig

さて、今度はカーネルのコンフィグを行います。xconfig の方が作業が楽、と言う事なので、 Xを立ち上げましょう。
そうして、コンソールから以下のコマンドをいれます。

$ cd /usr/src/linux
$ sudo make xconfig

しばらくすると、Linux kernel configuration が起動します。
私が使っている .config です。必要ならばお使いください。 尚、これは browncat.org 様 で公開されている物を少しいじった物です。

また、config ファイルは Load Configuration from File ボタンで読み出せます。 必要に応じて設定を変更したら、 Save and Exit で抜けます。

カーネルパッケージの作成

Debian ではカーネルもパッケージ化できますので、パッケージとして作成します。 次のようにコマンドを発行しましょう。

$ sudo make-kpkg clean
$ sudo make-kpkg --revision=v.1.0 kernel_image

make-kpkg clean は同じソースで2回目以降の作成時には必ず必要です。 また --revision= に続く文字列には適当に名前を付けておきましょう。
とりあえずこの例では、VAIO の v にバージョン 1.0 と言う事で v.1.0 としています(^^;;;
カーネルのビルドは時間がかかるので、一息いれて待っていましょう。

カーネルパッケージの作成に成功すると、ひとつ上のディレクトリ(/usr/src)に、 kernel-image-2.4.18_v.1.0_i386.deb というファイルが出来上がります。

カーネルのインストール

では、早速出来上がったカーネルをインストールします。

$ sudo dpkg -i kernel-image-2.4.18_v.1.0_i386.deb 

しばらくすると、Would you like to create a boot floppy now? と聞いて来ますので、 ブートディスクが必要なら y を、そうでなければ n と答えましょう。
また、さらに Install a boot block using the existing /etc/lilo.conf? とも聞いて来ます。 これに yes と答えると、カーネルのインストールとブートローダーのインストールが行われます。 今まで使っていたカーネルは、Linux.old というラベルになります。

ま、念のために /boot/ ディレクトリの中身や / での vmlinuz のリンク状態、 さらに /etc/lilo.conf の中身などを確認しておいた方が良いかも知れませんね。 もし、lilo.conf をかまったのなら、 # lilo -v をお忘れなく。

さて、それでは # reboot してみましょう!