電波指令5:カーネル再構築(1998.05.11)

[Back] [Home Page]
==================================================================

縁起物でもあることだし、ここらでカーネル再構築をやらかしてみようと、 色気を出したばっかりに時間をくってしまった。 とにかく、記録を書いておこう。

※お客様へ。NetBSD 1.3 のカーネル再構築については、 箕浦さんのホームページ NetBSD/x68k カーネルの再構築に関するガイド があります。 1.3.1 でも特に変更は無いようです。 僕もこれをお手本にしたので、以下の文章では重複する説明は避けています。 ここ(というより、このホームページ全体)の記録は、 あくまで僕個人がローカルに行った一事例です。


STEP 1

先ず、NetBSD 1.3.1 のカーネルソースをダウンロードしよう。 等のお世話になる。 NetBSD 1.3.1 のカーネルソースは、「1.3 のソース」 + 「1.3.1 への差分」 という形で提供されている。

東北大学の場合、

の、2つのファイルをGETして、 /##DISTDIR## の下に配置する。
※お客様へ。この辺の表記上の約束事を [ここをご覧戴く上での注意点]に追加しました。

STEP 2

NetBSD 1.3 ソースファイル(syssrc.tgz)を展開しよう。 syssrc.tgz./usr/src/... として展開されるので、本来は、

+------------------- コマンド操作(root) -----------------+
| # cd  /                                                |
| # gunzip  -c  /##DISTDIR##/syssrc.tgz  |  tar  xvf  -  |
+--------------------------------------------------------+
と、する筈だが、僕の環境では /usr 下のディスク容量が不十分なので、 以下の操作をする。

+------------------- コマンド操作(root) -----------------+
| # cd  /home/links                                      |
| # gunzip  -c  /##DISTDIR##/syssrc.tgz  |  tar  xvf  -  |
| # ln  -s  /home/links/usr/src  /usr/src                |
+--------------------------------------------------------+

STEP 3

1.3.1 差分パッチを当てる。

+------------------- コマンド操作(root) -----------------+
| # cd  /tmp                                             |
| # ln  -s  /usr/src  netbsd-1.3                         |
| # patch  -f  < /##DISTDIR##/netbsd-1.3-1.3.1.diff.gz   |
| # rm  netbsd-1.3                                       |
+--------------------------------------------------------+
※1.3.1 差分パッチは、 ./netbsd-1.3 というディレクトリ下に、 1.3 の全ソースがあるという前提になっているので、/usr/src に対して、一時的にリンクを張る。

STEP 4

自分用のコンフィグレーションファイルを作成する。

+-------- コマンド操作(root) --------+
| # cd  /usr/src/sys/arch/x68k/conf  |
| # cp  ALL  MYCONF                  |
| # vi  MYCONF                       |
+------------------------------------+
ファイル名は何でもいいけど、ここでは MYCONF とした。 僕の場合、主に 68040 とデバッグオプションを disable にして、 メモリ節約を目論んだが、デバッグオプションを disable にすると、 何故かブートできない。仕方無いので、68040 オプションを disable するだけにした。

※追加情報
デバッグオプションの件については、対応パッチが出ています。 (電波指令6:NetBSD/X68k 1.3.2 インストール 参照)


STEP 5

コンパイルしよう。

+-------- コマンド操作(root) --------+
| # cd  /usr/src/sys/arch/x68k/conf  |
| # config  MYCONF                   |
| # cd  ../compile/MYCONF            |
| # make  depend  all                |
+------------------------------------+
約1時間でコンパイル終了。/usr/src/sys/arch/x68k/compile/MYCONF/netbsd というカーネルファイルが出来上がる。こいつをルートディレクトリにコピーする。

+------------------------ コマンド操作(root) -------------------------+
| # cp  /usr/src/sys/arch/x68k/compile/MYCONF/netbsd  /netbsd-myconf  |
| # ln  /netbsd-myconf  /netbsd                                       | (1)
+---------------------------------------------------------------------+
※(1) のようにリンクを張るのは、/netbsd-myconf が起動できるかどうか確認した後の方が良い。 /netbsd というファイルが無ければ、起動時にカーネルセレクタが表示されるので、 /netbsd-all さえ消さないでおけば、最悪でも /netbsd-all で起動できる。

※追加情報
電波指令3 - カーネルファイル の項を参照のこと。

以上。

==================================================================
[加筆修正履歴]

==================================================================
ご意見、ご感想などは、draconianz@geocities.co.jp まで。 ==================================================================

ジオシティーズの入り口へ このコミュニティの入り口へ ご近所を訪問する