NetBSD
kernel moduleへの対応
最終更新日: 2010年1月9日

2008年10月に、i386系ではkernel moduleをサポートするようになった。kernel moduleをサポートしていない環境から新たにアップデートするためには、通常の単純なbuild.shの仕組みでは足りない。ここでは、5.0.1から2010年1月時点のcurrentにアップデートする際の手順をここを参考にしつつ整理してみた。

  1. 通常通りビルドする。

    cd /usr/src

    ./build.sh -T /usr/tools -O /usr/obj -U -u tools kernel=GENERIC build

  2. 新しいカーネルをインストールする。

    cd /

    mv netbsd netbsd.old

    cp /usr/obj/sys/arch/i386/compile/GENERIC/netbsd .

  3. bootloaderをインストールする。

    cp /usr/obj/destdir.i386/usr/mdec/boot /

    installboot -v /dev/rwd0a /usr/obj/destdir.i386/usr/mdec/bootxx_ffsv1

    (bootxx_ffsv1かbootxx_ffsv2かは、dumpfsコマンドで調べられると書いてあるが、自分の環境では表示されなかった。)

  4. kernel moduleをインストールする。

    mkdir /stand/i386/5.99.23 (5.99.23はbuild.shの終了時に表示されるversion)

    cp -r /usr/obj/sys/modules /stand/i386/5.99.23

あとはrebootして、通常通りユーザランドのインストールを行えば良い。

こんなやり方もありらしい。

通常でれば、NetBSD Daily Buildから最新版のsnapshotを持ってきて利用する方が安心。