shiba
2018年3月26日 11時43分
お世話になっております。
只今Armadillo-IoT ゲートウェイ G3 製品マニュアルを参考に開発を行っているのですが、
-----下記引用-----
14.4. RTC による制御
[armadillo ~]# echo +3600 > /sys/class/rtc/rtc0/wakealarm
----------------------
上記コマンドを用いて1時間毎に起動し、
RTCタイマを設定した後poweroffをし、1時間後起動し・・・
というシステムを開発しております。
もし上記コマンドをなんらかの事象で書込をする前にpoweroffしてしまった場合、
SW1を押す等、外部からの動作ではなく、内部(ソフトによる制御)等で1時間たっても起きないを判断し
起動する事は可能でしょうか
haltコマンドはWDTの最大値が128秒で再起動するとの事で、
例えばpoweroffしてから1時間後にRTCによる制御で再起動できず、
1時間半後にWDTに再起動出来なかったことを検知し、再起動をかけるというシステム設計は
Armadillo-IoT-G3/G3Lにて可能でしょうか?
以上、よろしくお願いいたします。
at_mizo
2018年3月27日 9時53分
溝渕です。
> もし上記コマンドをなんらかの事象で書込をする前にpoweroffしてしまった場合、
> SW1を押す等、外部からの動作ではなく、内部(ソフトによる制御)等で1時間たっても起きないを判断し
> 起動する事は可能でしょうか
まず、poweroff後はCPUが停止しているため、ソフトによる制御での復帰はで
きません。
poweroffコマンド実行時には、必ずwakealarm設定を行うようにしてはいかが
でしょうか。
次のように、wakealarmを設定させることができるかと思います。
# 動作確認していないので、注意してご利用ください
[armadillo]# vi /etc/systemd/system/example.service
[Unit]
Description=example
Before=poweroff.target
DefaultDependencies=no
[Service]
Type=oneshot
ExecStart=/usr/local/bin/wakealarm.sh
[Install]
WantedBy=poweroff.target
[armadillo]# vi /usr/local/bin/wakealarm.sh
#!/bin/sh
echo +3600 > /sys/class/rtc/rtc0/wakealarm
[armadillo]# chmod +x /usr/local/bin/wakealarm.sh
[armadillo]# systemctl enable example.service