kernelの再構築
DEC3000/300のkernelを再構築してみました
ソースをDownload
公式リリースのsourceか、currentのsourceか、どちらかを拾ってきます。
公式リリースの場合はsyssrc.tgzを、currentの場合はconfig.tar.gz(configのソース)とsys.tar.gz(kernelのソース)の2つを拾ってきます。
公式リリースの場合
ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.0/source/sets/syssrc.tgz
currentの場合
ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-current/tar_files/src/config.tar.gz
ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-current/tar_files/src/sys.tar.gz
ソースの展開
ソースをtarで展開します
公式リリースの場合
# cd /
# tar xzvf syssrc.tgz
currentの場合
# cd /usr
# tar xzvf config.tar.gz
# tar xzvf sys.tar.gz
configuration
NetBSDはconfigのためのconfファイルを自分で編集します。これが他のと違って面倒なところ。
まず、ソースがcurrentの場合は、新しいconfigをインストールします
# cd /usr/src/usr.sbin/config
# make
# make install
新規カーネルのためのconfファイルを作ります。といってもコピーするだけだけど。
# cd /usr/src/sys/arch/alpha/conf
# cp GENERIC MYKERNEL (MYKERNELは任意のファイル名でOK)
MYKERNELを編集します。
# vi MYKERNEL
基本的にはDEC3000/300には存在しないデバイスや機能などを削除してゆけばいいと思います。たとえばPCIバス関連のデバイスとかUSBポート関連のデバイスとか。事前にdmesgで表示されるデバイスを記録しておけば楽だと思います。
参考までにMYKERNELの例。実はひそかにIPv6を無効にしています。
カーネルのbuild
カーネルをビルドするためのディレクトリを生成します
# rm -rf /usr/src/sys/arch/alpha/compile/MYKERNEL←一応過去のゴミを消しておく
# config MYKEYNEL
# cd ../compile/MYKERNEL
# make depend
時間がかかりますので、しばらく放置プレイ。
終わったら、次にカーネルをコンパイルする。
# make
時間が掛かるかな、と思いきや、結構早く終わる。まぁそれでも1時間くらいでしょうか。
カーネルのインストール
# make install
または手動でインストールするには
# mv /netbsd /netbsd.old ←現在のカーネルを保存
# mv netbsd / ←新しいカーネルをブートできるようにする
完了
リブートします。
# shutdown -r now