OrangePi-PCを使ってみる

オンボードLEDを活用する

ArmbianではOrangePi-PCのオンボードLEDをコマンドだけでFlushする機能があります。
以下のコマンドでオンボードの赤と緑のLEDがFlushします。
$ sudo sh -c "echo heartbeat > /sys/class/leds/orangepi:red:status/trigger"

$ sudo sh -c "echo heartbeat > /sys/class/leds/orangepi:green:pwr/trigger"

以下のコマンドでFlashを停止します。
$ sudo sh -c "echo none > /sys/class/leds/orangepi:red:status/trigger"

$ sudo sh -c "echo none > /sys/class/leds/orangepi:green:pwr/trigger"

そこで、この機能を利用してパッケージアップデートがあるかどうかをチェックするスクリプトを紹介します、
以下のスクリプトを「pkg_checker.sh」の名前で保存して実行権限を与えます。
#!/bin/bash
sudo apt update > /tmp/apt.log
sudo apt -s upgrade > /tmp/apt.log
#grep -c "The following packages will be upgraded" /tmp/apt.log
check=`grep -c "The following packages will be upgraded" /tmp/apt.log`
#echo $check
rm /tmp/apt.log
if [ $check -ne 0 ] ; then
# Update package EXIST
  sudo sh -c "echo heartbeat > /sys/class/leds/orangepi:red:status/trigger"
else
# Update package NOT EXIST
  sudo sh -c "echo none > /sys/class/leds/orangepi:red:status/trigger"
fi

このスクリプトはsudoコマンドを実行するので、パスワードなしでsudoできるようにしておく必要があります。
これをしないと、sudoコマンドを実行したときにパスワード入力待ちになってしまいます。
こちらの手順で、パスワードの入力無しにsudoコマンドを実行で きるよう になります。

最後に「pkg_checker.sh」をcronで適当な間隔で実行します。
アップデートパッケージがあると、オンボードの赤のLEDがFlushします。

なお、Raspberryでは以下のスクリプトになります。
#!/bin/bash
sudo apt update > /tmp/apt.log
sudo apt -s upgrade > /tmp/apt.log
#grep -c "The following packages will be upgraded" /tmp/apt.log
check=`grep -c "The following packages will be upgraded" /tmp/apt.log`
#echo $check
rm /tmp/apt.log
if [ $check -ne 0 ] ; then
# Update package EXIST
  sudo sh -c "echo heartbeat > /sys/class/leds/led0/trigger"
else
# Update package NOT EXIST
  sudo sh -c "echo none > /sys/class/leds/led0/trigger"
fi



以下のサービス(hello.service)を登録しておくと、起動時に緑のオンボードLEDの点滅を開始します。
[Unit]
Description=Start on-board led flash on boot
Requires=NetworkManager-wait-online.service
After=NetworkManager-wait-online.service

[Service]
Type=oneshot
ExecStart=sudo sh -c "echo heartbeat > /sys/class/leds/orangepi:green:pwr/trigger"
RemainAfterExit=true

[Install]
WantedBy=multi-user.target

以下のサービス(bye.service)を登録しておくと、シャットダウン時に緑のオンボードLEDの点滅を停止します。
[Unit]
Description=Stop on-board led flash on shutdown
Before=shutdown.target
DefaultDependencies=no

[Service]
Type=oneshot
ExecStart=sudo sh -c "echo none > /sys/class/leds/orangepi:green:pwr/trigger"
RemainAfterExit=true

[Install]
WantedBy=shutdown.target

次回はオンボード上のPowerButtonの利用方法を紹介します。