タイマーによる起動/停止(3)


先日
停止は ppc_uartd のお仕事、起動は AVR のお仕事なのかもしれない
そうすると、起動時刻しか送っていないかもしれない。
と書いた。停止させているのは誰かを調べる。

停止させているのは誰?

まず、最初の可能性:AVR が停止させている
電源ボタンを長押ししたのと同様で、指定時刻になれば、 AVR が ttyS1 経由で ppc_uartd にコマンドを送り、ppc_uartd が /www/script/melsub_shutdown.sh を使って電源を落とす

2番目の可能性:ppc_uartd が停止させている
指定時間になったら、ppc_uartd が /www/script/melsub_shutdown.sh を使って電源を落とす

指定時間に /dev/ttyS1 を通常のファイルにしておくと、 ppc_uartd が AVR からのコマンドが受けられないので、

  • 停止しなければ AVR が停止させている
  • 停止すれば ppc_uartd が停止させている
    と、切り分けられる。

    早速やってみた。 ttyS1 は通常のデバイス、/etc/melco/timer_sleep は off の状態で、
    /etc/melco/timer_sleep で、5分後の停止を指定する。
    POWER LED が点滅を始めた時点で、/dev/ttyS1 を通常のファイルに置き換え、 ppc_uartd を再起動する。

    5分後、シャットダウンされた。 ただし、/dev/ttyS1 が通常のファイルなので、AVR に EEEE が送れず、 電源までは落ちなかった。これは、予想の範囲内。

    結論、電源を落としているのは、ppc_uartd

    ということは、AVR のコマンドには、 起動時刻しか含まれていないのではないかと考えられる。

    電源断で起動を忘れる AVR

    上記のとおり、ttyS1 を通常のファイルにしていて 電源までは落ちなかったので、 電源を落とすためにコンセントを抜いたのだが、、、、
    コンセントをさしても、POWER LED は消えたまま。 指定時刻になっても、立ち上がってこなかった。

    コンセントをさしっぱなしで、AVR には通電しておかないと、 タイマー起動(スリープからの復帰)はできないようである。
    いまいち


    LinkStation/玄箱 をハックしよう → タイマーによる起動/停止(4)

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