2014年11月7日金曜日

u-bootを導入する

玄箱は通常本体のフラッシュメモリに格納してあるkernel2.4から起動する。
debian6(sqeeze)からはkernel2.6以降が必須なので、u-bootというブートローダをフラッシュメモリに書き込んでハードディスクに格納したkernelから起動出来るようにしなくてはいけない。

フラッシュメモリのブート部分を書き換えるので失敗すると起動不能のただの箱になるので、u-bootの導入作業は充分に慎重にする必要がある。

※ 失敗したら起動不能となり復旧は困難となるため、ここを見て試してみようと奇特な方、出来ることならば他のページなども参照して頂いくことをオススメします。

u-bootのバイナリを入手する


自作する方法もあるが、u-bootのバイナリは下記のサイトのものを使わせていただいた。


LinkStation/玄箱/kernel - PukiWiki (コンパイル済みバイナリ)



u-bootを導入する


EMモードで起動し、ftpでアップロードしたバイナリイメージを書き込む。
失敗したら取り返しがつかない作業なので、慎重を期すならば玄人志向公式配布されているファームを導入するなりDebianを導入するなりして本機上でチェックサムの計算をし、自己責任のもと行う。
※EMモード時のIPアドレスはDHCPで取得される。玄人志向公式のファームウェアセットアップを実行するとIPアドレスを検索し表示してくれる。
# cat u-boot-1.2.0-hg.flash.bin > /dev/fl2
(debian化などしてkernel2.6の場合は"/dev/fl2"が"/dev/mtd1"となる)

導入確認


ネットワークコンソールでu-bootの挙動を確認する。
ホストPCのIPアドレスを(192.168.10.21)にし、netcat(windows版)を実行する。
C:\Program Files (x86)\netcat>nc -v -v -n -u -s 192.168.10.21 -p 6666 192.168.10.145 6666[return]
(UNKNOWN) [192.168.10.145] 6666 (?) open
玄箱が起動し、下記のようなステータスが表示されたら成功。
U-Boot 1.2.0 (Mar 26 2009 - 11:36:56) LinkStation HG / KuroBox HG
stdin :   nc
stdout:   nc
stderr:   nc
IDE:   Bus 0: OK

0 件のコメント:

コメントを投稿