玄箱でNetBSDを動かす manual > boot-selector2

なんちゃってブートセレクタ(タイプ2)の説明(工事中)


アドバンテージ

なんちゃってブートセレクタ(タイプ1)はシリアルコンソール無しでも何とか使えますが、何度も実験するには非常に煩雑な手順が必要になります。
このタイプ2では、シリアルコンソールが全く無くとも自由にブートするOSを選べるようになります。
シリアルコンソールがある場合は、タイプ1同様にキー入力でも選択可能です。(2005-11-09版の追加機能)
ブートにはnbloader_v3.o(NetBSD用)、およびloader.o(Linux新カーネル用)を使用しますので、Flash-ROMの書き換えは不要です。
ファイルシステムがおかしくなってしまってブートしなくなった場合のコンソール無し復旧手順の一旦を担うことが出来るつもりです。

注意

TeraStationは別アーカイブとなっています。間違えないようにお願いします。
(TeraStationはDISK FULLでは無くDIAGのLEDを使用します。)

準備

カーネルやnbloader_v3.oの準備やコピーについてはなんちゃってブートセレクタ(タイプ1)を参照してください。(nbloader_v2.oについて書いていますが、v3も同様です。)
Linux新カーネルを起動されるつもりの方はloader.oもnbloader_v3.oと同じところにコピーしておいてください。

使い方

1. インストール

Linux上でアーカイブを展開し、ディレクトリを移動します。
make installを実行することでバイナリとスクリプト、設定ファイルがコピーされます。
  • /boot/tools/kuro_morse
  • /boot/tools/kuro_swread
  • /etc/init.d/kuro_bootsel2.sh
  • /etc/rcS.d/S15kuro_bootsel2.sh(シンボリックリンク)
  • /etc/kuro_boot.conf
すでに/etc/kuro_boot.confが有る場合は /etc/kuro_boot.conf.oldにコピーします。

2.設定

/etc/kuro_boot.confを必要に応じて修正します。
この設定もタイプ1と同じにしましたので、タイプ1側を参照して下さい。

3.起動

電源を入れ、しばらくするとDISK FULLのLEDが点灯します。このLEDが点灯している間に電源スイッチをお望みの回数押します。
何も押さずに3秒(デフォルト値)経つと、LEDが消灯してデフォルトのOSが起動します。
DISK FULLのLEDは、最後に電源スイッチを操作してから3秒間点いているので、慌てて押す必要はありません。ゆっくり操作してください。
回数を間違えた場合は、いっぱい(10回以上)押してください。デフォルトで起動します。
シリアルコンソールが有る場合は、タイプ1同様メニューが表示され、キー入力による選択が可能です。
OSが起動する前に、DISK FULLのLEDがその番号の回数だけ点滅します。これで選んだOSが何だったかを確認することが出来ます。
ブート処理時に、POWER LEDを「ゆっくり明滅」に変えます。これはkuro_avrd等が起動するまで続きますので、ブートが完了したかどうかの判別に使えると思います。

問題点

なんちゃってブートセレクタ(タイプ1)と機能が重なりますので、/etc/rcS.d/S**kuro_bootsel.shのシンボリックリンクは削除したほうが良いでしょう。
AVRの操作を二重に行ってしまっています。何か問題が発生するかもしれません。(今のところ大丈夫そうに見えます)
緊急ブートイメージや、USBメモリブートとの整合性を完全には確認出来ていません。(たぶん大丈夫だと思います)
タイプ1のconfigファイルとタイプ2のファイルを共通化しましたので、タイプ1を既にお使いの方はmake installで上書きされないように注意してください。
モールス符号の都合上、E,I,S,H,5を使用しますので、選択肢は5つまでとなります。(短点6つの符号は有りませんので...)
↑むりやり9つまで対応しました。


突っ込み願います。
名前:
コメント:
16069
ご連絡先: E.Kawauchi atto gmail dotto com