Raspberry Pi 3 Model B
OS: Raspbian Stretch lite March 2018
各色のLEDに係るファイルは次のディレクトリに配置されているようである。
- 緑:/sys/class/leds/led0/
- 橙:/sys/class/leds/led1/
triggerファイルにはLEDを点滅させる切っ掛けが記されている。ブラケットに包まれた単語が切っ掛けとなるイベントで、デフォルトでは緑のLEDがmmc0、オレンジのLEDはinputが選択されていた。
$ cat /sys/class/leds/led0/trigger none (snip) default-on input panic mmc1 [mmc0] rfkill-any rfkill0 rfkill1 $ cat /sys/class/leds/led1/trigger none (snip) default-on [input] panic mmc1 mmc0 rfkill-any rfkill0 rfkill1
このファイルに対してトリガー名をリダイレクトすることで選択内容を変更することができる。
# echo none >/sys/class/leds/led0/trigger
mmc0はSDカードにアクセスがあった時に点滅するということである。inputの詳細は探し当てられなかったけれども、何しろinputであるからなんらかの入力であろうと思う。heartbeatやtimerを選択すると規則的な明滅となる。じいっと眺めているとまばゆさで目が潰れてしまう。
点滅の制御はbrightnessでおこなう。0から255までの値を取り0で消灯、1~255で点灯する。
$ sudo su -c "echo 0 > /sys/class/leds/led0/brightness" $ sudo su -c "echo 1 > /sys/class/leds/led0/brightness"
採用した値の大小で輝度が変えられるように見えるけれどもハードウェアがサポートしていないらしく明るさは一通りである。なおbrightnessの数値を0に変更するとtriggerは勝手にnoneへ変更されていた。
一秒おきに緑のLEDを明滅させる拙いシェルスクリプトled.shを拵えると概ねこんな具合となった。あとはsudo bash led.shで実行すると緑のLEDが設計通りに明滅を繰り返した。
#!/bin/bash
if [ $(id -u) != '0' ]; then
echo 'Run as root.'
exit 1
fi
GREEN='/sys/class/leds/led0'
trap 'echo mmc0 > ${GREEN}/trigger; exit 1' 1 2 9 15
echo none > ${GREEN}/trigger
while true
do
echo 0 > ${GREEN}/brightness
sleep 1
echo 1 > ${GREEN}/brightness
sleep 1
done

