Armadilloフォーラム

A6E基板LED(APP)のデフォルト動作について

k-nishiki

2024年11月22日 15時45分

==========
製品型番:A6E Cat.1 WLAN/BT付き(BTOモデル)
Debian/ABOSバージョン:3.20.3-at.4
カーネルバージョン:5.10.226
3G/LTE モジュール情報 (Debianのみ):
その他:
==========
APP LED 状態と製品状態の対応についての問い合わせです。
マニュアルには、
 OFF  アプリ起動不可
 ON  アプリ起動可能
 Blink Slow アプリ起動完了
 Blink Fast アプリエラー
 アプリ起動完了とアプリエラーの点滅はアプリ自身が行う
という記載があります。
アプリ起動不可とアプリ起動可能については、デフォルトではどのような条件でOFF、ONとなりますでしょうか?
コンテナの起動結果と関係づけて、OFF、ONを自動制御することは可能でしょうか?

コメント

アットマークテクノの古賀です。

k-nishikiさん;
>APP LED 状態と製品状態の対応についての問い合わせです。
>マニュアルには、
> OFF  アプリ起動不可
> ON  アプリ起動可能
> Blink Slow アプリ起動完了
> Blink Fast アプリエラー
> アプリ起動完了とアプリエラーの点滅はアプリ自身が行う
>という記載があります。
>アプリ起動不可とアプリ起動可能については、デフォルトではどのような条件でOFF、ONとなりますでしょうか?

次のようになっています:

・ON: ABOS のサービスマネージャがサービス群の起動を終えた時。
  自動起動するよう設定されたコンテナの起動処理も、この時点で済んでいます。
  自動起動するよう設定されたコンテナが起動できなくても、この状態となります。

・OFF: ABOS が正常起動しないなどして、ON の条件を満たせない時(電源 ON 直後の状態のまま)

実は、APP LED を ON する動作は、/etc/local.d/ に配置したスクリプトで行っています。
このディレクトリに配置されたスクリプトのうち、ファイル名の末尾が .start のスクリプトを、ABOS のサービスマネージャ(OpeRC)がファイル名の昇順で実行するようになっているのです。

>コンテナの起動結果と関係づけて、OFF、ONを自動制御することは可能でしょうか?

そうですね。APP LED の点灯制御を実装すれば可能です。
たとえば、次のようにすることで、特定のコンテナが起動処理直後に終了することなく起動したかを APP LED の点灯状態で示せます:

・コンテナの設定ファイル(.conf ファイル)で、/etc/local.d/zzz_ready.start を削除する
 (overlayfs 上のファイルですから、削除しても、削除結果を永続化しない限り、次回起動時に出現します。)

・自動起動結果をチェックしたいコンテナが動作中かどうかをチェックして、動作中なら APP LED を点灯するスクリプトを、名前の末尾が .start のファイルとして作る。
 そのスクリプトを /etc/local.d/ に配置して、persist_file で永続化する。

以下は、スクリプト例です:

#!/bin/sh
 
num=$(podman ps  | grep a6e-gw-container | wc -l)
if [ $num != 0 ]; then
        echo 255 > /sys/class/leds/app/brightness
fi

以上、参考になりましたら幸いです。