必要なドライバを組み込んだり、不必要なドライバを取り外すため、 カーネルを再構築します。
カーネルのコンフィギュレーションファイル (カーネルの内容を決めているソースファイル)は /usr/src/sys/i386/conf/GENERIC です。FreeBSD 3.x-RELEASE の場合は、 PAO3 を入れたかどうかで変わって来ます。
さて、必要なデバイスを組み込んだり、 いらないデバイスを外したりするには、 カーネルコンフィギュレーションファイルを 編集してコンパイルする必要があります。 これをカーネルの再構築といいます。 カーネルコンフィギュレーションファイルの編集の仕方は 次の節から説明するとして、 ここではカーネルの再構築の流れを見ておきます。
- FreeBSD 3.x-RELEASE : GENERIC
- FreeBSD 3.x-RELEASE + PAO3 : PAO_ALL
1) カーネルコンフィギュレーションファイルのコピー
例えば、GENERIC カーネルを再構築するには、などとして、MYKERNEL を編集します。 MYKERNEL はカーネルの名前で、普通はホスト名を大文字で書くようです。 でもただのファイル名なので、どういう名前をつけても構いません。 以後は、MYKERNEL という名前であるとします。
# cd /usr/src/sys/i386/conf
# cp GENERIC MYKERNEL2) カーネルコンフィギュレーションファイルの編集
詳しくは次の節から説明します。
# vi MYKERNEL 3) コンパイルとインストール
古いカーネル /kernel は /kernel.old になり、 今作ったカーネルが新たに /kernel となります。
# cd /usr/src/sys/i386/conf
# config MYKERNEL
# cd ../../compile/MYKERNEL
# make cleandepend (7.1-RELEASE では必要になってました)
# make depend
# make
# make install
新しいカーネルが起ち上がらないとき
起動して最初の方に(BootMgr を入れていたら、ブートの選択の直後に)という表示がでるので、ここでスペースキーなど押します。 すると、
_
という表示がでるので、ここで /kernel.old と打ちます。
boot:
/kernel.old を /kernel に変える
/kernel は簡単に消されないようになっていて、 単に mv では名前変更できません。 chflags というコマンドを使います。
# chflags noschg /kernel
# mv /kernel /kernel.bad
# cp -p /kernel.old /kernel
# chflags schg /kernel