[ インストール | FreeBSDトップ | 環境構築 ]


カーネル再構築

daemon


Introduction

インストールが終了したらカーネルの再構築を行う。
インストールの際にインストールされるカーネルはGENERICカーネルと呼ばれ、 もっとも一般的で汎用性の高い構成となっている。 システムを運用していく上で問題が発生しなければ、 このままGENERICカーネルを使用しても差し支えないのだが、 汎用性を高くするために不要な設定やドライバがカーネルに含まれており、 また、ThinkPad s30の場合はそのままでは音が鳴らないのでカーネルを再構築する。
Copy

カーネルのコンフィグレーションファイルを用意する。
FreeBSDのカーネル構成は全てコンフィグレーションファイルにて設定する。 コンフィグレーションファイルを1から作るのは無駄だし、 間違いやすいので一般的には既存のコンフィグレーションファイルを元に編集する。
FreeBSDをインストールするとカーネルのソースは/usr/src/sys以下に展開され、 コンフィグレーションファイルは/usr/src/sys/i386/conf以下に置かれる。 ここにあるファイルの内、GENERICというファイルが GENERICカーネルのコンフィグレーションファイルなので、 任意の名称のファイルにコピーする。
ホスト名を全て大文字にしたファイル名とするのが一般的。
Edit

コピーしたコンフィグレーションファイルを編集する。
カーネルのコンフィグレーションファイルを任意のエディタで編集して カーネルの構成を定義する。 基本的には不要なオプションやドライバを削除し、 必要なオプションやドライバを追加する。 場合によっては、各ドライバの使用する割り込みや I/Oバッファのアドレスを指定する等のオプションを変更したりする必要もあるが、 ThinkPad s30の場合は不要だった。
以下に現在使用中のカーネルコンフィグレーション概要を示す。

cpu I686_CPU
以外は不要なので削除
ident コンフィグレーションファイル名
options MATH_EMULATE 浮動小数点コプロセッサ内蔵なので不要
options INET6 IPv6は使用しないので削除
option SMP
option APIC_ID
CPUは1個なので削除
device fdc0
device fd0
device fd1
フロッピドライブは装備してないので削除
device atapifd
device atapist
IDE接続のFD/TAPEは使用しないので削除
device ahd
  :
SCSIデバイスは使用しないので削除
device asr
  :
RAIDコントローラは使用しないので削除
device sio0
device sio1
device sio2
device sio3
シリアルポートは装備してないので削除
device ppc0
device ppbus
device lpt
device plip
device ppi
device vpo
パラレルポートは装備してないので削除
device pcm 音を鳴らしたいので追加
Configure

新しいカーネルのコンフィグレーションを有効にする。
コンフィグレーションを有効にするためには、 コンフィグレーションファイルのあるディレクトリで、 カーネルコンフィグレーションファイル名を引数として configコマンドを実行する。

# config ファイル名

configコマンドを実行する事によりコンパイル環境が構築される
Compile

新しいカーネルのコンパイル
コンパイルディレクトリ /usr/src/sys/compile/コンフィグレーションファイル名に移動して コンパイルを行う。make dependを忘れずに。

# cd ../../compile/ファイル名
# make depend
# make
Install

新しいカーネルとドライバモジュールをインストールする
古いカーネルは/kernel.oldと言う名称でセーブされるが、 カーネルを再構築(make install)すると /kernel.oldは現在のカーネルで上書きされてしまう。 インストール時のGENERICカーネルなど、 確実に起動できるカーネルとカーネルモジュールをバックアップしておくと良い。

# make install
Reboot

万が一新しいカーネルが起動できない場合は、起動時の

Hit [Enter] to boot immediately, or any other key for command prompt
Booting [kernel] in 9 second...

のメッセージが表示されている時に Enter 以外の任意のキー入力すると、 loaderのプロンプトokが表示されるので、 unloadコマンドで現在のカーネルをアンロードした後、 loadコマンドで確実に起動できるカーネルを選択して bootコマンドにより起動させカーネルを再度構築する。
カーネルの名称が不明な場合はlsコマンドを実行すると、 /にあるファイルの一覧が表示される。

Hit [Enter] to boot immediately, or any other key for command prompt
Booting [kernel] in 9 second...

Type '?' for a list of commands, 'help' for more detailed help.
ok unload
ok ls
/
 d  dev
 d  stand
      :
    kernel
    kernel.old
      :
ok load kernel
/kernel text=0x... data=0x... syms=[0x4+0x...]
ok boot


Last Update: Jan. 3 2005 Copyright © Mitzyuki IMAIZUMI 2002,2004,2005 All Rights Reserved,