Orange Pi3を使っていて以前からずっと使用していて気になっていたのが、電源LEDの点灯です。長らく放置していましたが、時間があったので手を付けることにしました。OrangePi3の電源を入れると赤いLEDがついて、しばらくしたら緑色のLEDが点灯するというのが純正のの動作です。バージョンによってまちまちではありますが、基本的にどのOSでも、電源のステータスLEDは何かしらついていると思います。例えば私の使っているArmbianならずっと赤色の電源LEDがついています。こんな感じです。
左側のLEDが電源のLEDです。この記事では左側のLEDの点灯状況を変更する方法について書いています。ちなみに、右側のLEDは仕様上消すことができません。詳しくは後述します。
この赤色のライトはやけに明るく光っており視覚的に邪魔なのと、電気を少しでも無駄遣いしていそうという理由で消したいと以前から考えていました。この記事はその消し方の備忘録です。
具体的な消し方ですが、これはRaspberry Piなど同じようにsys以下にあるLED用のパラメータを変更することでON/OFFが可能です。そのため、コマンドラインから簡単に消灯が可能です。これによって操作できるのは上の写真で言うところの左側のLEDだけなので、右側のLEDを消すことはできません。
では、右側のLEDは何かというとこれはUSB接続判定用のLEDで制御できません。GPIOに接続されていないため、制御できません。独立したチップで制御されているため制御ができないというのが正しいでしょうか。気になる方は回路図を参照してください。
Orange Pi3公式リファレンス
https://linux-sunxi.org/images/5/50/OrangePi_3_Schematics_v1.5.pdf
というわけでステータスLEDを制御しましょう。方法は簡単です。コマンドラインで以下のコードを入力します。これで電源LEDを消すことができます。
echo 0 > /sys/class/leds/orangepi\:red\:power/brightness
echo 0 > /sys/class/leds/orangepi\:green\:status/brightness
逆に意図的にONしたい場合は以下のコードを入れます。
#赤色を点灯させる場合
echo 1 > /sys/class/leds/orangepi\:red\:power/brightness
#緑色を点灯させる場合
echo 1 > /sys/class/leds/orangepi\:green\:status/brightness
LEDは独立しているため、どちらともONにすることが可能です。赤色はやたらまぶしく光っていたのですが、緑色のLEDはさほどまぶしくなかったですね。
これほど簡単に制御できると別の使い方も思いつきますね。例えばストレージの容量がいっぱいになったら赤色のLEDをつけるとか。
コマンドラインからこのコードを実行しただけでは永続的な反映はされません。再起動したら元通りです。なので、永続的に設定を反映させられるように、起動時にコードを実行してみようと思います。私的には緑色LEDは嫌ではなかったのと、立ち上がったら赤色から緑色に変化できれば、わかりやすく良いと思いました。
というわけで、実際にそれをやってみます。起動時に実行されるコマンドは/etc/rc.localに記述すれば良いので、このようにしてみます。
echo 0 > /sys/class/leds/orangepi\:red\:power/brightness
echo 0 > /sys/class/leds/orangepi\:green\:status/brightness
echo 1 > /sys/class/leds/orangepi\:green\:status/brightness
exit 0
これを保存したら再起動してみます。その結果以下のようになりました。
これで思ったようにステータスLED操作ができました。要らなかったら消したら良いですね。思いのほか簡単にできたので、やらなくて損した気分でした。