DragonFly BSDのカーネルを構築してみます。 すべての操作をrootユーザーで行います。 オフィシャルサイトにあるハンドブックの、Configuring the DragonFly Kernelの内容を参考にしています。
ソースの取得
DragonFly BSDでは、インストール時にソースツリーが展開されないようです。 なので、まずはソースツリーを取得します。 このためには/usrディレクトリでmake src-createを実行するのですが、以下のようにエラーが発生することがあります。
# cd /usr
# make src-create
If problems occur you may have to rm -rf src and try again.
mkdir -p /usr/src
cd /usr/src && git init
Reinitialized existing Git repository in /usr/src/.git/
cd /usr/src && git remote add origin git://git.dragonflybsd.org/dragonfly.git
fatal: remote origin already exists.
*** Error code 128
Stop in /usr.
この場合は/usr/srcディレクトリにを空にしてから、もう一度実行します。
# cd /usr
# rm -rf src
recursively remove src? y
# make src-create
カーネルコンフィグファイルの作成
まず始めに、新しく作成するカーネルに名前を付けましょう。 新カーネルを特定のPCでしか使用しないのであれば、ホスト名を大文字にしたものがいいでしょう。 ここでは名前をSIMPLEとして説明します。
カーネルをカスタマイズするためのコンフィグファイルを用意します。 一から作成するのは大変なので、用意されているものをベースに変更していきます。 ハンドブックのTipにもあるように、/root/kernelsの下に新しいカーネルコンフィグファイルを作ります。 ファイル名は、先ほど決めた新カーネルの名前と同じにします。
# cd /usr/src/sys/config
# mkdir /root/kernels
# cp X86_64_GENERIC /root/kernels/SIMPLE
# ln -s /root/kernels/SIMPLE
AMD64(64ビット)の環境を使用しているのでX86_64_GENERICファイルをコピーしています。 i386(32ビット)環境の場合は代わりにGENERICファイルをコピーしてください。 カーネルコンフィグファイルの編集
まずは、コンフィグファイル内のident行を探します。次のようになっているはずです。
ident GENERIC
これのGENGERICの部分を、次のように新カーネルの名前に変更します。
ident SIMPLE
コンフィグファイルでどのような設定が行えるのか、ハンドブックや/usr/src/sys/config/にあるLINT64ファイル(32ビット環境の場合はLINTファイル)を参考にしてください。
ビルド
/usr/srcディレクトリに移動して、カーネルをビルドしましょう。
make nativekernel KERNCONF=[カーネルコンフィグファイル名]を実行します。
# cd /usr/src
# make nativekernel KERNCONF=SIMPLE
--------------------------------------------------------------
</span>> Kernel build for SIMPLE started on Sun Apr 8 15:27:31 JST 2012
--------------------------------------------------------------
...略...
--------------------------------------------------------------
</span>> Kernel build for SIMPLE completed on Sun Apr 8 15:42:31 JST 2012
--------------------------------------------------------------
コンフィグファイルの書式や内容が間違っていなければ、makeが正常終了して新カーネルがビルドされているはずです。
インストールと再起動
新カーネルのビルドが成功したら、インストールしましょう。
make installkernel KERNCONF=[カーネルコンフィグファイル名]を実行します。
# make installkernel KERNCONF=SIMPLE
--------------------------------------------------------------
</span>> Kernel install for SIMPLE started on Sun Apr 8 15:43:55 JST 2012
--------------------------------------------------------------
...略...
===> libiconv
install -o root -g wheel -m 555 libiconv.ko /boot/kernel
インストールが成功したら、再起動しましょう。新カーネルで起動します。 再起動にはshutdown -r nowを実行します。
# shutdown -r now
Shutdown NOW!
shutdown: [pid 28655]
#
*** FINAL System shutdown message from yayoi@smile. ***
System going down IMMEDIATELY
System shutdown time has arrived
PCが再起動するはずです。
新カーネルの確認
再起動後に次のようにして、新しいカーネルで起動していることを確認します。
$ uname -i
SIMPLE
コンフィグファイルのident行に記述したカーネルの名前が表示されるはずです。
[おわり]