玄箱用なんちゃってブートセレクタ2(2008-04-01版) 説明書 Eiji Kawauchi e-mail: E.Kawauchi@gmail.com Wiki: http://www5.atwiki.jp/kuro-bsd/ 2008-04-19 第7版 特長 * Linuxのブートシーケンス中に埋め込む形で使用します。 * リードオンリーマウント状態でnbloaderをinsmodしますので、かなり安全に NetBSDをブートできます。 * AVRの制御を自前で行っていますので、起動後に勝手にリブートしてしまう ことが(たぶん)有りません。 * 電源スイッチによってブートするOSを切り替えますので、シリアルコンソー ルは不要です。 * シリアルコンソールを使っても切り替え可能です。 使い方 1. NetBSDカーネル NetBSDカーネルはサンプルカーネル(2006-10-14版以降)がそのまま使えます。 ダウンロードしたカーネル(netbsd.bin)は、Linux側の/bootにコピーしておき ます。 (注意: カーネルはこのアーカイブには含まれません。) 2. なんちゃってブートセレクタのファイルのコピー make installで kuro_morse, kuro_swread, kuro_bootsel2.sh, kuro_boot.confファイルがコピーされ、パーミッション修正やシンボリック リンクの作成が行われます。 コピー先など、詳細はMakefileを確認してください。 3. nbloader_v3.oのコピー nbloader_v3.oは/lib/modules/2.4.17_mvl21/kernel/nbloader_v3.o(玄箱/HG)、 または /lib/modules/2.4.17_kuro-box/kernel/nbloader_v3.o(初代玄箱)とし てコピーしておきます。 "2.4.17_mvl21" や "2.4.17_kuro-box" などは、本体のLinuxでuname -rを実行 して確認して下さい。 (注意: nbloader_v3.oはこのアーカイブには含まれません。) 4. 設定 /etc/kuro_boot.confを必要に応じて修正します。 このファイルでは永続的な設定を行います。 一時的な設定を行うためには、このファイルを/etc/kuro_boot.tmpとしてコピー して、こちらを修正します。 内容は以下の通りです。(必要に応じてコメントを外して修正して下さい) ----- 8< -------- 8< -------- 8< -------- 8< -------- 8< -------- 8< ----- # kuro_bootsel config file (2008-04-01) # # "bootdefault" # 1: Linux, 2-9: See below #bootdefault=1 # # "timeout" # prompt timeout (in secs) #timeout=3 # # "AVR" # AVR port name (default: auto detect) #AVR=/dev/AVR00 # Menu entry No.2 # menu2="NetBSD(HDD:wd0)" loader2=/lib/modules/`/bin/uname -r`/kernel/nbloader_v3.o kernel2=/boot/netbsd.bin option2='cmdline="bootdev=wd0a"' # Menu entry No.3 # #menu3="NetBSD(Trial-Pack)" #loader3=/lib/modules/`/bin/uname -r`/kernel/nbloader_v3.o #kernel3=/boot/otameshi.bin #option3= # Menu entry No.4 # #menu4="NetBSD(USB:sd0a)" #loader4=/lib/modules/`/bin/uname -r`/kernel/nbloader_v3.o #kernel4=/boot/netbsd.bin #option4='cmdline="bootdev=sd0a"' # Menu entry No.5 # #menu5="Linux(New-kernel)" #loader5=/lib/modules/`/bin/uname -r`/kernel/loader.o #kernel5=/boot/linux.bin #option5='cmdline="root=/dev/hda1"' # Menu entry No.6 # #menu6= #loader6= #kernel6= #option6= # Menu entry No.7 # #menu7= #loader7= #kernel7= #option7= # Menu entry No.8 # #menu8= #loader8= #kernel8= #option8= # Menu entry No.9 # #menu9= #loader9= #kernel9= #option9= ----- 8< -------- 8< -------- 8< -------- 8< -------- 8< -------- 8< ----- bootdefault デフォルトのOSを指定します。1ならLinuxで、2〜9は指定したものとなります。 無指定時は1(Linux)です。 timeout OS選択のプロンプト時の入力タイムアウト時間(秒)です。デフォルトは3秒です。 入力が無くこの時間経過すると、デフォルトのOS(bootdefaultで指定)が起動し ます。 AVR Linux側から見えるAVRポートのデバイス名です。デフォルトは自動認識です。 手動で固定的に設定する場合は/dev/AVR00または/dev/ttyS1を設定することにな るでしょう。 menu[23456789] コンソールメニューに表示する文字列です。 loader[23456789] loader.oやnbloader_v2.oのある場所(フルパス)です。 kernel[23456789] LinuxやNetBSDのカーネルの名前(フルパス)です。 option[23456789] ブートローダへ渡す引数を記述します。 5.起動 設定が終わったらおもむろにリブートします。 起動中POWER LEDの点滅が止まり、DISK FULL LEDが点灯します。 このLEDが点灯している間に、お望みの数を電源ボタンを押すことで指定します。 3秒間(デフォルト値)放置するとデフォルトのOSが起動します。 DISK FULL LEDは、ボタンを最後に操作してから3秒間(デフォルト)点灯していま すので、慌てずゆっくり操作してください。 もし、押した回数を間違えたと思ったならば、たくさん(10回以上)押して 下さい。この場合もデフォルトのOSが起動します。 シリアルコンソールが有ると、LED点灯と同時に次のような表示が出るはずです。 ----- 8< -------- 8< -------- 8< -------- 8< -------- 8< -------- 8< ----- ************************************************ Select the OS in 3 secs: (default is 1) 1: Linux 2: NetBSD(HDD:wd0a) ----- 8< -------- 8< -------- 8< -------- 8< -------- 8< -------- 8< ----- この例では1を押すとそのままLinuxが起動し、2を押すとNetBSDが起動します。 3秒間放置するとデフォルト(この例ではLinux)が起動します。 (シリアルコンソールからのキー入力は1〜9のみ受け付けます。) DISK FULL LEDが消灯後、受け付けた数だけDISK FULL LEDが点滅します。 これをよく見ていると、何が選択されたかを見分けることが出来ます。 その他 バグがあると思います。見つけたら教えてください。 ライセンス BSDライセンスです。同梱のBSD-license.txtをお読みください。 改版来歴 * 第2版(2005-11-09): シリアルコンソールからも同時に選択を受け付けるように変更 configファイルをタイプ1と共通化 AVRポートの指定が一部コマンドに反映されていなかったのを 修正 * 第3版(2005-12-03): 起動スクリプトの順番をS08からS15へ変更 シンボリックリンク先ディレクトリが/etc/rcS.d、 /etc/rc.d/rcS.dの両方に対応 * 第4版(2006-01-25): 添付バイナリをスタティックリンクに変更 (make OPTION=-static でビルド) AVRポートを自動判別にした(つもり) /etc/ttyS1が有ればそれを使用。無ければ/dev/AVR00のまま。 * 第5版(2006-10-28): Makefileのバグを修正(Thanks to Makoto Fujiwaraさん) メニュー選択で6〜9も対応。 ブート完了までの間、POWER LEDをゆっくり明滅(ホタル状態)に 変更。ブートが完了するとkuro_avrd等が明滅を解除するので、 ブートが止まっているか/ブート完了したかが(何となく)判る。 * 第6版(2007-02-07): AVRのポートを自動認識するように変更(kuro_bootsel2.sh)。 今まで通り、固定的に指定することも可能。 * 第7版(2008-04-01): 誤字修正 kuro_bootsel2.shの中のnbloader_v2をv3に変更 メールアドレスを新しいものに変更 英語版(!) ドキュメントを添付 makeが動かない環境用にinstall.shを添付 --End of Text--