2004年3月6日土曜日

HD-HGLANの話(8) ppc_uart

HD-HGLANの話(3) ps -axwwで示した謎のプロセスの追求の「その3」である。

最後(?)はppc_uart。これも/usr/sbin/に置かれている。



psで見ると、


250 ? S 0:00 /usr/sbin/ppc_uartd

となっていて、/etc/rc.d/rc2.d/S95ppc_uartdで起動されている。



OBS266からLinkStationに持って行っているstringsコマンドでppc_uartを見てみた。一部抜粋する。


/dev/ttyS1
can't open UART
uart daemon
error folk
error setsid
error chdir
/mnt
/var/run/smbd.pid
/www/script/melsub_init.sh&
/www/script/melsub_shutdown.sh 2&
/etc/melco/timer_sleep
because it's just after booting up
because now time is re-initialized
because timer file is re-initialized
on<>%2d:%2d<>%2d:%2d%*s
Timer is set with %d/%d %02d:%02d-%d/%d %02d:%02d. (%s)
Timer is released. (%s)
Timer is released. (because timer file isn't able to be read)
can't output value to UART:%c
can't execute program:%s



この内容と、山下さんの
Vine のインストールの「DIAG LED が6回点滅」の記述、

Vine へいろいろなパッケージのインストールの「ハードディスク異常問題再び」の記述、

/dev/ttyS1 の謎

AVR のコマンド

続 AVR コマンド

パーティション異常

fsck との戦い再び

AVRなどを総合して整理してみよう。



以下のようなことが言えると考える。


  • 電源ON後のある時間内にAVRに対してコマンドを送らないとWatch Dog Timer機能により、電源が落とされる。
  • 本体からAVRへのコマンドは/dev/ttyS1経由である。
  • 起動後のppc_uartが動くのはrunlevel 2になってから。よって、起動時にrunlevel 1で動くfsckに長時間を要すると、runlevel 2に行く前に時間切れになり電源が落とされる。
  • ppc_uartが監視したり、実行して動作を確認しているのは、

    • /mnt
    • /var/run/smbd.pid
    • /www/script/melsub_init.sh&
    • /www/script/melsub_shutdown.sh 2&
    • /etc/melco/timer_sleep

    などであろう。
  • 起動後、安定してからppc_uartを停止させても電源が落ちないとのことなので、AVR側に定期的にコマンドを送る必要は内容である。(そういう意味では厳密にはWatch Dog Timerとは言えない。)
  • 起動時に送るコマンドはAAAAFFFFJJJJ>>>>VVVV>>>>ZZZZVVVVKKKKぐらいかな。



Debian化したものの方は、起動時に


echo -n "AAAA" > /dev/ttyS1
echo -n "FFFF" > /dev/ttyS1
echo -n "JJJJ" > /dev/ttyS1
echo -n ">>>>" > /dev/ttyS1
echo -n "VVVV" > /dev/ttyS1
echo -n ">>>>" > /dev/ttyS1
echo -n "ZZZZ" > /dev/ttyS1
echo -n "VVVV" > /dev/ttyS1
echo -n "KKKK" > /dev/ttyS1

でも入れてみるか。



0 件のコメント:

コメントを投稿