ブログ

Armadillo-IoT(G3):ユーザースイッチ1でpoweroffする方法

at_kazutaka.bito
2023年4月2日 15時33分

Armadillo-IoT(G3)のユーザースイッチ1でpoweroffする方法です。
10秒以上長押しするとpoweroffが実行されます。
poweroffが完了するとユーザーLEDは消灯します。
ユーザースイッチとユーザーLEDの位置はマニュアル(※)を参照ください。
※) Armadillo-IoT ゲートウェイ G3製品マニュアル「3.4. Armadillo-IoTゲートウェイの外観」

1. 必要なパッケージのインストール、ソースコードのダウンロード

Armadillo-IoT(G3)をインターネットに接続可能なネットワークに接続しておきます。
必要なパッケージのインストール、ソースコードのダウンロードをします。
補足)ここでは、ソースコードにatmark-x1-base_3.2.1を使用しています。
異なるバージョンを使用する場合は、以下、バージョンを読み替えてください。

root@armadillo:~# apt-get update
root@armadillo:~# apt-get install build-essential
root@armadillo:~# wget https://download.atmark-techno.com/debian/pool/main/a/atmark-x1-base/atmark-x1-base_3.2.1.orig.tar.gz

2. ユーザースイッチでpoweroffするソフト(input-poweroffd)をビルド

ユーザースイッチでpoweroffするソフト(input-poweroffd)をビルドします。

root@armadillo:~# tar xzvf atmark-x1-base_3.2.1.orig.tar.gz
root@armadillo:~# cd atmark-x1-base_3.2.1/input-poweroffd
root@armadillo:~/atmark-x1-base_3.2.1/input-poweroffd# make
root@armadillo:~/atmark-x1-base_3.2.1/input-poweroffd# cp input-poweroffd /usr/sbin/

3. input-poweroffdの設定の変更

Armadillo-IoT(G3)のユーザースイッチ1でpoweroffするように
/lib/systemd/system/input-poweroffd.serviceの設定を下記のように変更します。

/lib/systemd/system/input-poweroffd.service
(元々の設定のうち、[Service]の下2行が変更が必要な個所です。)

[Unit]
Description=input event poweroff daemon
After=rc-local.service

[Service]
Type=simple
ExecStart=/usr/sbin/input-poweroffd -d /dev/input/event1 -k KEY_1
ExecStop=/usr/bin/input-poweroff stop

[Install]
WantedBy=multi-user.target

input-poweroffdを有効にします。

root@armadillo:~# systemctl enable input-poweroffd
root@armadillo:~# systemctl restart input-poweroffd

以上で、ユーザースイッチ1を10秒以上長押しすると、poweroffするようになります。