OrangePi-PCを使ってみる

オンボードLEDを活用する

ArmbianではOrangePi-PCのオンボードLEDをコマンドだけでFlushする機能があります。
そこで、この機能を利用してパッケージアップデートがあるかどうかをチェックするスクリプトを紹介します、
以下のスクリプトを「pkg_checker.sh」の名前で保存して実行権限を与えます。
#!/bin/bash
sudo apt-get update > /tmp/apt.log
sudo apt-get -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 0 > /sys/class/leds/red_led/brightness"
  sudo sh -c "echo heartbeat > /sys/class/leds/red_led/trigger"
  sudo sh -c "echo 1 > /sys/class/leds/red_led/brightness"
else
# Update package NOT EXIST
  sudo sh -c "echo none > /sys/class/leds/red_led/trigger"
  sudo sh -c "echo 0 > /sys/class/leds/red_led/brightness"
fi

このスクリプトはsudoコマンドを実行するので、パスワードなしでsudoできるようにしておく必要があります。
これをしないと、sudoコマンドを実行したときにパスワード入力待ちになってしまいます。
/etc/sudoersの末尾に、
ユーザ名 ALL=(ALL) NOPASSWD: ALL
を加えます。
なお、/etc/sudoersの修正には専用のコマンドを使います。

$ sudo visudo

例えば、orangepiユーザにこの権限を与える場合は

orangepi ALL=(ALL) NOPASSWD: ALL

を追加します。

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

なお、Raspberryでは以下のスクリプトになります。
#!/bin/bash
sudo apt-get update > /tmp/apt.log
sudo apt-get -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 none >/sys/class/leds/led0/trigger"
  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"
  sudo sh -c "echo 0 >/sys/class/leds/led0/brightness"
fi



次回はオンボード上のPowerButtonの読み取り方法を紹介します。