ラズパイの赤LED、緑LEDの挙動を変える
ラズパイには赤LED、緑LEDがついていますが、/boot/config.txtに書いておくと、その挙動をある程度、変えることができます。ラズパイ4B、3B、3B+で確認。
挙動を一時的に変えることもできます。
そもそも、なんで変えたいかというと、ラズパイは、電源を切ったら良いのか??という話からつながっています。
「不安定なラズパイの作り方、あるいはラズパイの電源の切り方」
https://qiita.com/naohiro2g/items/1767f5a775ef8e4283d6
ちなみに、「赤LED、緑LEDの挙動を変えて、稼働中かどうかをわかりやすくする」という趣旨の記事は散見されますが、この記事含め、根本的な解決である、安心して電源が切れる、になりません。残念ながら、(2)の期間が長い時があり、(4)との区別がつかないからです。
# | 状態 | 赤LED | 緑LED | 備考 |
---|---|---|---|---|
(0) | 電源投入→起動中 | 点灯 | アクセス | |
(1) | 稼働中(オリジナル設定) | 点灯 | アクセス | |
(1') | 稼働中(今回の設定) | アクセスランプ | ゆっくり点滅 | 「稼働中」が明確 |
(2) | シャットダウン処理開始→ | 点灯 | 消灯 | 数秒〜数分 |
(3) | シャットダウン処理終了時 | 点灯 | 10回点滅 | |
(4) | シャットダウン完了後 | 点灯 | 消灯 | 電源を切ることができる |
オリジナル設定では、赤LEDがいつも点灯しているので、稼働中/シャットダウン指示後の区別がつきにくい。今回の設定では、稼働中が明らかにわかるところが改善点。しかし、依然、シャットダウン中/完了がはっきりしない。
結果、「緑LEDの10回点滅」あるいは「ディスプレイ信号がなくなりました」を見逃せない状況はあまり変わらないのです。シャットダウン処理がいつも数秒で終わるとよいのですが。。
デフォルト設定
赤LED:「input」
- 電源低下の監視。一定以上電源電圧が低下すると消灯。それ以外は常に点灯。
緑LED:「mmc0」 - マイクロSDの読み書きのときにチカチカ点滅。
設定キーワード紹介
設定して、再起動で反映されます。
使えそうなグループ。
heartbeat:ハートビート、心臓の鼓動のように点滅。チカチカ、、チカチカ、、
(1010 0000 1010 0000....)
timer:0.5秒点灯、0.5秒消灯、つまり、1秒周期でゆっくりチカチカ点滅。
mmc0:マイクロSDアクセス
mmc1:USB接続のSSDアクセス 赤のほうがおとなしく見える。
その他
none:消灯、赤LEDには効かない模様。
default-on:常時点灯
input:電源電圧監視、低下すると消灯
cpu:少しでも動いていると点灯なので、ほぼ意味なし。
cpu0, cpu1, cpu2, cpu3:各コア別。同上。
rfkill0:WiFi 起動中、シャットダウン中など無効時のみ消灯。
rfkill1:Bluetooth 無効時に消灯。
backlight:純正LCDのバックライトと連動?、使ってないとずっと消灯。(未確認)
cpu、スレッショルドが設定できれば、使えるのに残念。。
WiFi/Bluetoothもアクセス状況の監視には使えません。
ちなみに、赤に動作を割り当てても、以下のフェーズではデフォルトの電源インジケータ(input設定)になります。
- 電源投入直後から起動終了まで
- shutdown開始からshudown完了後まで
一時的に挙動を変えたい!
ファイルシステム上のデバイスとして、ここにあります。
緑色: /sys/class/leds/led0
赤色: /sys/class/leds/led1
挙動を変える(各設定値を試すときに便利です。)
sudo sh -c 'echo heartbeat >led0/trigger'
強制で点灯/点滅
$ sudo sh -c 'echo 1 >led0/brightness' # 緑色消灯
$ sudo sh -c 'echo 0 >led0/brightness' # 緑色点灯
クラスなどでラズパイを複数台使っている時、どれがどれだかわからなくなった/わかりにくい時に便利。遠目でもわかりやすい。(レアケースだけど、あるんです! 非常に実用的。)
設定キーワードを試す
お試しは、以下のように
sudo sh -c 'echo heartbeat >led0/trigger'
キーワード一覧はこちら。
cat led0/trigger # green-act led
none rc-feedback kbd-scrolllock kbd-numlock
kbd-capslock kbd-kanalock kbd-shiftlock
kbd-altgrlock kbd-ctrllock kbd-altlock
kbd-shiftllock kbd-shiftrlock kbd-ctrlllock
kbd-ctrlrlock timer oneshot heartbeat backlight
gpio cpu cpu0 cpu1 cpu2 cpu3 default-on input
panic mmc1 [mmc0] rfkill-any rfkill-none
rfkill0 rfkill1
cat led1/trigger # red-pwr led
none rc-feedback kbd-scrolllock kbd-numlock kbd-capslock kbd-kanalock kbd-shiftlock kbd-altgrlock kbd-ctrllock kbd-altlock kbd-shiftllock kbd-shiftrlock kbd-ctrlllock kbd-ctrlrlock timer oneshot heartbeat backlight gpio cpu cpu0 cpu1 cpu2 cpu3 default-on [input] panic mmc1 mmc0 rfkill-any rfkill-none rfkill0 rfkill1
キーボードのロック表示で使おうとしていた形跡がありますね。
個人的に気に入っている設定例
稼働中は、緑が1Hzでゆっくり点滅、ファイルアクセスで赤がチカチカ。
シャットダウンのプロセスに入ると、緑が点滅、赤が点灯。
シャットダウン完了後は、赤が点灯。(本当は全部、消灯してほしい。)
通常のマイクロSDカード起動の場合
dtparam=act_led_trigger=timer # slow blink for green
dtparam=pwr_led_trigger=mmc0 # microSD for red
SSDブートの場合
dtparam=act_led_trigger=timer # slow blink for green
dtparam=pwr_led_trigger=mmc1 # SSD for red