ノート PC の NetBSD が 4.99.73 (2008年10月頃?) と少し古いのでアップデートすることにします。
/usr/src/UPDATING を読むと、
* 新しいカーネル module の枠組み
* time_t/dev_t の 64bits への変更
など激しい変更があった様でいつも通りにアップデートすると嵌りそうです。
いつもは、
1. tool chain/カーネルのコンパイル
2. カーネルのインストール
3. リブート
4. ユーザランドのコンパイル
5. ユーザランドのインストール
6. リブート
この様な手順だったのですが、新しいカーネル module の仕組みを使う場合には、ブート時にカーネル module を読み込める boot loader を入れ、カーネル module も先にインストールしないといけない様です。そのため、カーネルだけでなく、カーネル module もコンパイル/インストールして、さらに、boot loader を入れ替えてからリブートしないと起動できない様です。
少し悩みましたが、やはり、いきなり boot loader を入れ替えて、boot しなくなるのも困ります。そこで、まずは、カーネルの config を GENERIC から変更して、カーネル module が不要なカーネルを作ることにします。
ffs など重要なものをカーネル module ではなく、カーネルそのものに組み込む様に設定します。no option ... の部分をコメントアウトし、ffs といった部分のコメントアウトを消します。そして、kernel を compile します。
% cd /usr/src
% cp sys/arch/i386/conf/{GENERIC,hogehoge}
% vi sys/arch/i386/conf/hogehoge
(no option ... の部分のコメントアウトを外す)
% ./build.sh tools kernel=hogehoge
% cd /usr/src/sys/arch/i386/compile/obj/hogehoge/
% sudo make install
そして、リブートすると、、、と起動できました。ぱちぱち。
次に、ユーザランドを入れ換えます。
% cd /usr/src
% ./build.sh -U distribution
% sudo ./build.sh -U install=/
そして、boot loader を入れ替えてみます。入れ替えるといっても、/boot だけを入れ替えれば良いようです。cp して終わりです。
% sudo cp /usr/mdec/boot /boot
そして、kernel から先に外した no option を復活させて、コンパイル、インストール、再起動すると、、、起動しました。load ffs と出て、ffs の kernel モジュールを正しく load してから boot できている様です。一安心です。
ふぅ、どきどきでした。
WAPBL とか試してみたいですが、それはまた今度。
/usr/src/UPDATING を読むと、
* 新しいカーネル module の枠組み
* time_t/dev_t の 64bits への変更
など激しい変更があった様でいつも通りにアップデートすると嵌りそうです。
いつもは、
1. tool chain/カーネルのコンパイル
2. カーネルのインストール
3. リブート
4. ユーザランドのコンパイル
5. ユーザランドのインストール
6. リブート
この様な手順だったのですが、新しいカーネル module の仕組みを使う場合には、ブート時にカーネル module を読み込める boot loader を入れ、カーネル module も先にインストールしないといけない様です。そのため、カーネルだけでなく、カーネル module もコンパイル/インストールして、さらに、boot loader を入れ替えてからリブートしないと起動できない様です。
少し悩みましたが、やはり、いきなり boot loader を入れ替えて、boot しなくなるのも困ります。そこで、まずは、カーネルの config を GENERIC から変更して、カーネル module が不要なカーネルを作ることにします。
ffs など重要なものをカーネル module ではなく、カーネルそのものに組み込む様に設定します。no option ... の部分をコメントアウトし、ffs といった部分のコメントアウトを消します。そして、kernel を compile します。
% cd /usr/src
% cp sys/arch/i386/conf/{GENERIC,hogehoge}
% vi sys/arch/i386/conf/hogehoge
(no option ... の部分のコメントアウトを外す)
% ./build.sh tools kernel=hogehoge
% cd /usr/src/sys/arch/i386/compile/obj/hogehoge/
% sudo make install
そして、リブートすると、、、と起動できました。ぱちぱち。
次に、ユーザランドを入れ換えます。
% cd /usr/src
% ./build.sh -U distribution
% sudo ./build.sh -U install=/
そして、boot loader を入れ替えてみます。入れ替えるといっても、/boot だけを入れ替えれば良いようです。cp して終わりです。
% sudo cp /usr/mdec/boot /boot
そして、kernel から先に外した no option を復活させて、コンパイル、インストール、再起動すると、、、起動しました。load ffs と出て、ffs の kernel モジュールを正しく load してから boot できている様です。一安心です。
ふぅ、どきどきでした。
WAPBL とか試してみたいですが、それはまた今度。










