カーネルの再構築をする
First Edition 2001.5.10 カーネルの再構築をします。Vine2.1.5のカーネルはなるべく再構築などはやらなくて良くなっています。 ここでは、カーネルを再構築のお勉強の意味で行います。
カーネルの再構築とは?カーネルとは、ソフトウェアとハードウェアの掛け橋をしている部分です。Linuxの核の部分で オリジナルのコードでかかれています。再構築とは、カーネルのオプションを設定しなおしてコンパイルし、 新たなカーネルファイルを作ることをいいます。インストールされたカーネルオプション設定は、 デストリビューションによってさまざまです。したがって、あるデバイス、プログラムを使うのにカーネルがそのように設定されていない場合、 再構築をする必要があります。 例えば、CD-Rドライブを使う、DVD-RAMを使うなどがあげられます。 準備カーネルの再構築をするには、カーネルのソースファイルが必要です。以下のコマンドにより、必要なファイルが インストールされているかどうかを確認しましょう。
インストールされていなければ、インストールしましょう。Vine2.1のCDのソースファイルがある場所へ移動します。 # rpm -ivh kernel-headers-2.2.18-0vl4.2.rpm # rpm -ivh kernel-source-2.2.18-0vl4.2.rpm カーネルのコンフィグカーネルを再構築するには、あらかじめ自分でコンフィグしなくてはいけません。ルートになって作業します。
カーネルをコンフィグするやりかたは、3つあります。 make config コンフィグに一つ一つ、順番にすべて答えなくてはいけません。カーネルの設定項目が多くなった今 となっては、実用的ではありません。 make menuconfig CUIのツールで、メニュー形式になっています。 make xconfig tcl、tkがインストールされていれば、GUIツールが使えます。一番使いやすいと思います。 これらのツールをどれか使って、カーネルコンフィグを行ないます。コンフィグをセーブして終了します。 カーネルのコンパイルそれではカーネルをコンパイルしましょう。
カーネル本体を構築し、格納する方法は3つあります bzdisk フロッピーディスクにカーネルを格納します。このフロッピーで新しいカーネルをブートし、 テストすることができます。しかし、ちょっとした制約が出てしまいますので、起動することの 確認くらいしか使うことはないでしょう。 bzlilo ファイルシステムのルート( / )にカーネルを作ります。RedHat系のデストリビューションでは、あまり使いません。 bzImage カーネルイメージを/usr/src/linux/arch/i386/bootに作成します。これを使うのがいいでしょう。 エラーがでたら、そこで止まります。うまくいくと以下の表示で終了します。 [省略]うまくいかなかったら too largeというメッセージが出る カーネル本体を構築する際に、"bzImage"というように、先頭に"b"を付けます。 bを付けないと、カーネルサイズが大きくなってしまいます。 これでも出てしまう場合は、カーネルコンフィグにおいて、モジュール化できるものは 極力モジュール化しましょう。 モジュールのコンパイルカーネルのコンフィグにおいて、モジュール化したもののコンパイルを行ないます。# make modules ; make modules_installこれだけです。 作成したカーネルを起動できるようにする(liloの設定)前節で作成したカーネルを、/bootにコピーします。# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.2.18-0vl4.2-testこれは作成されたカーネル、/usr/src/linux/arch/i286/boot/bzImageを/boot/vmlinuz-2.2.18-0vl4.2-testという 名前でコピーすることを示します。自分で識別できる名前でコピーしてください。ここでは、"-test"を後ろに付けました。 次に、作成したカーネルを起動できるようにします。ハードディスクのMBR、Linuxのルートパーティーション のどちらかにliloをインストールしていると思います。liloの設定ファイルである、/etc/lilo.confを編集します。 /etc/lilo.conf
以上のように、liloの設定ファイルを編集したあと、スーパーユーザーで次のコマンドを実行します。 # /sbin/liloあとは、再起動して、LILO:とプロンプトが出たら、新しく設定したラベルを打ち込みます。 上記では、testとしました。新しくカーネルを起動したら、"uname -r" と入力してバージョンを確認してみましょう。 [HOME] since 2001.4.22 |