玄箱HGのdebian lenny化2011年01月17日 06時17分19秒

こちらの手順でKURO-BOX/HGのdebian lenny化を行いました。

基本的には上記手順で全てOKです。 使ったHDDは予告どおり、WD20EARSです。 ジャンパ設定も何もせず。

但し、パーティションの切り方は以下のようにしました。

  • /dev/hda1 2048MB
  • /dev/hda2 512MB
  • /dev/hda3 8192MB
  • /dev/hda4 のこり全部

また、/etc/netowork/interfacesは以下のように修正。

# Used by ifup(8) and ifdown(8). See the interfaces(5) manpage or
# /usr/share/doc/ifupdown/examples for more information.
#iface eth0 inet static
iface eth0 inet dhcp

#address 192.168.0.100
#network 192.168.0.0
#netmask 255.255.255.0
#broadcast 192.168.0.255
#gateway 192.168.0.1

iface lo inet loopback

auto eth0 lo

玄箱HG起動時のDIAG 6回点滅問題対応2011年01月17日 06時28分06秒

KURO-BOX/HGではDIAG LEDというのがあって、その点滅状態で各種の状態を報告してくれます。
「DIAG 6回点滅」はHDDの異常を示し、要は「壊れている」という報告のためのもの。・・・・・でも実際は「壊れていない」。ファームウェアの不具合が根本原因なわけです。
直接的にはHDD スピンアップのための待ち時間不足でHDDの認識が正常に行われずにエラーとなっているわけです。 問題は待ち時間の作り方。 単純にループの変数で行っている。 そのこと自体は良い。 でもCPUのクロックなどを無視した実装がNG。 はっきり行って、プロの仕事とは言えない。

今回使用したWD20EARSもDIAG6回点滅問題に遭遇します。
電源投入の工夫で対応は可能ですが、ファームウェアにパッチをあてることにしました。
ファームウェアのパッチのあて方はこちらを参照させていただきましたが、リンクだけだと情報が消えてしまう可能性がありますので、以下のとおり、コピー、再編集させていただきました。オリジナルファイルのバックアップファイル名は私の趣味により変更しました。

  1. vimをapt-getでインストール
  2. # cat /dev/mtd1 >bootcode.bin
  3. # cp -p bootcode.bin bootcode.bin.org
  4. vim -b bootcode.bin
  5. vim上で[:%!xxd]でダンプ表示に変更
  6. vim上で[/03e7]でループ変数999の部分を検索
  7. vim上で3e7のアドレスが2b96の位置が該当位置
  8. vim上でアドレス2b96の03e7を07cf(1999)に変更
  9. vim上で[:%!xxd -r]でバイナリ表示に戻す
  10. vim上で[:wq]で書き込む。バイナリ表示に戻さないで実施しないように注意
  11. 編集差分を確認
    # cmp -l bootcode.bin.org bootcode.bin
     11159   3   7
     11160 347 317
    
  12. md5sumでバイナリのチェック
    # md5sum bootcode*
    dedd9d6932a4515f2535cbf7e40bd4e5  bootcode.bin
    35d6ffc9f8191181750a8bacba369e3c  bootcode.bin.org
    
  13. # cat bootcode.bin > /dev/mtdblock1
  14. 書き込み後のmd5sumチェック
    # md5sum /dev/mtd1
    dedd9d6932a4515f2535cbf7e40bd4e5  /dev/mtd1