HD-120LAN 突然リセット


一見、ハックキットが正しく動いているように見えたのだが、、、
11〜12分に1回、リセットがかかることに気が付いた。 これでは使い物にならない。

時間が経過するとリセットというのは、 ppc_uartd が動いていないときの症状なのだが、 ppc_uartd はちゃんと動かしてある。
なんで??と思いながら、ppc_uartd を strings にかけていたら、 error chdir という文字列を見つけた。
どこに chdir しているのかは不明だが、、、

ためしに /etc/rc.d/init.d/hackkit で

	rm -fr /www
	mkdir /www
	mkdir /www/script
	cp /mnt/HackKit/www/script/melsub_shutdown.sh /www/script/melsub_shutdown.sh
として、/www を消しているのをやめてみる
	# rm -fr /www
	# mkdir /www
	# mkdir /www/script
	cp /mnt/HackKit/www/script/melsub_shutdown.sh /www/script/melsub_shutdown.sh
fl0 の conf_save.tar.gz を作り直して、再起動。
4時間ほど放置しておいたが、落ちず。
良くわからないが、結果オーライ。

確認のため、

root@hackkit:~# /etc/rc.d/init.d/ppc_uartd stop
Stop services: ppc_uartd
root@hackkit:~# rm -fr /www
root@hackkit:~# /etc/rc.d/init.d/ppc_uartd start
Start services: ppc_uartd
して放置しておいたら、リセットされた。

/www は Web からの設定をしないので必要はなく、
また、リアパネルの設定初期化ボタンを押すと /www/script/melsub_init.sh が起動されて、 せっかく書き込んだ /dev/fl0 が初期化されてしまうので、 できれば消しておきたい。

空のディレクトリだけにしてみる

root@hackkit:~# /etc/rc.d/init.d/ppc_uartd stop
Stop services: ppc_uartd
root@hackkit:~# rm -fr /www
root@hackkit:~# mkdir /www
root@hackkit:~# mkdir /www/image
root@hackkit:~# mkdir /www/script
root@hackkit:~# mkdir /www/cgi-bin
root@hackkit:~# mkdir /www/errors
root@hackkit:~# mkdir /www/help
root@hackkit:~# /etc/rc.d/init.d/ppc_uartd start
Start services: ppc_uartd
これで大丈夫だろうと思っていたら、リセットされてしまった。
ディレクトリの存在は関係なさそう
こうなったら、二分探索

こ1時間かかって達した結論は、、、

  • /www/script/melsub_diskcheck.sh が2分に1回起動されている
  • /www/script/melsub_diskcheck.sh は AVR に VVVV or WWWW を送信。
  • 推測:AVR は VVVV も WWWW も来なければ、リセット

    というわけで、 /www/script/melsub_shutdown.sh のほかに、 /www/script/melsub_diskcheck.sh も必要。

    melsub_diskcheck.sh 互換品を作り、/www/script に置くことにする

    #!/bin/sh
    
    if [ `df | sed -n -e 's;^/dev/hda1.*[ ]*\([0-9][0-9]*\)%.*$;\1;p'` -ge 90 ]
    then
            echo -n "WWWW" > /dev/ttyS1
            exit 1
    fi
    
    echo -n "VVVV" > /dev/ttyS1
    exit 0
    
    というスクリプトを /mnt/HackKit/www/script/melsub_diskcheck.sh として置き、
    /etc/rc.d/init.d/hackkit の
    	rm -fr /www
    	mkdir /www
    	mkdir /www/script
    	cp /mnt/HackKit/www/script/melsub_shutdown.sh /www/script/melsub_shutdown.sh
    
    	rm -fr /www
    	mkdir /www
    	mkdir /www/script
    	cp /mnt/HackKit/www/script/*.sh /www/script
    
    と変更、
    fl0 に入れなおす。
    root@hackkit:/tmp# as_flash /dev/fl0 get -n /tmp/conf_save.tar.gz --output /tmp/conf_save.tar.gz
    root@hackkit:/tmp# tar zxvf conf_save.tar.gz
    etc/
    etc/network/
    etc/network/interfaces
      :
      :
    etc/rc.d/init.d/hackkit
    etc/rc.d/rc0.d/K10hackkit
    etc/rc.d/rc2.d/S96hackkit
    root@hackkit:/tmp# (cd /; tar cf - etc/rc.d/*/*hackkit)|tar xvf -
    etc/rc.d/init.d/hackkit
    etc/rc.d/rc0.d/K10hackkit
    etc/rc.d/rc2.d/S96hackkit
    root@hackkit:/tmp# tar zcvf conf_save.tar.gz etc www
    etc/
    etc/network/
    etc/network/interfaces
      :
      :
    etc/rc.d/
    etc/rc.d/init.d/
    etc/rc.d/init.d/hackkit
    etc/rc.d/rc0.d/
    etc/rc.d/rc0.d/K10hackkit
    etc/rc.d/rc2.d/
    etc/rc.d/rc2.d/S96hackkit
    www/
    www/.htpasswd
    www/cgi-bin/
    www/cgi-bin/.htpasswd
    www/script/
    www/script/.htpasswd
    root@hackkit:/tmp# as_flash /dev/fl0 add -n /tmp/conf_save.tar.gz
    root@hackkit:/tmp# as_flash /dev/fl0 list
    0 -> /tmp/conf_save.tar.gz
    
    電源を入れなおし、/www には2つのファイルしかないことを確認。
    root@hackkit:~# find /www -print
    /www
    /www/script
    /www/script/melsub_diskcheck.sh
    /www/script/melsub_shutdown.sh
    
    これでよさそう、、、
    この状態で、またまた1時間ほど放置しておいたが、落ちず。
    すっきりした。
    LinkStation/玄箱 をハックしよう → HD-120LAN ハックキットの動作確認・・・問題発生

    Copyright (C) 2004 Yasunari Yamashita. All Rights Reserved.
    yasunari @ yamasita.jp
    山下康成京都府向日市