2022年11月28日月曜日

Raspberry PiのLEDを消す


背景

家の寝室に置いているRaspberry PIの基板に実装されているLEDを光らせたくなかったので、消えたままになる設定にしました。
以前から電源と稼働状況を示す赤と緑の消し方は把握していましたが、今回新たにイーサネット(LANケーブル接続口)のLEDも消したかったくなったので、備忘録として内容を記事にします。

使った物

Raspberry Pi 4B
Raspberry Pi OS 64bit版
uname -a
Linux raspberrpi 5.15.74-v8+ #1595 SMP PREEMPT Wed Oct 26 11:07:24 BST 2022 aarch64 GNU/Linux

電源と稼働状況のLED


再起動せず切り替える

光らせない
sudo sh -c 'echo none > /sys/class/leds/led0/trigger'
sudo sh -c 'echo none > /sys/class/leds/led1/trigger'
sudo sh -c 'echo 0 > /sys/class/leds/led0/brightness'
sudo sh -c 'echo 0 > /sys/class/leds/led1/brightness'

光らせる
下記のコマンドはpi4の場合なので、他のpiだと有効化のために指定可能な設定(mmc0やdefault-on)が異なるかもしれません、
sudo sh -c 'echo mmc0 > /sys/class/leds/led0/trigger'
sudo sh -c 'echo default-on > /sys/class/leds/led1/trigger'
sudo sh -c 'echo 1 > /sys/class/leds/led0/brightness'
sudo sh -c 'echo 1 > /sys/class/leds/led1/brightness'

現在の状況はcatコマンドで確認できます。
cat /sys/class/leds/led0/trigger
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 actpwr mmc1 [mmc0] rfkill-any rfkill-none rfkill0 rfkill1 

起動時の設定で消す

rc.localのexit 0の前に下記のように光らせないコマンドを書けば、起動処理時に光らない設定になります。
/etc/rc.local
sudo sh -c 'echo none > /sys/class/leds/led0/trigger'
sudo sh -c 'echo none > /sys/class/leds/led1/trigger'
sudo sh -c 'echo 0 > /sys/class/leds/led0/brightness'
sudo sh -c 'echo 0 > /sys/class/leds/led1/brightness'

exit 0

/boot/config.txtでの設定方法もあるようですが、raspberry piのハードウェア(3か4かなど)によって書き方が変わるのと、config.txtの設定は反映に再起動が必要なので、rc.localでの設定で自分は十分でした。

イーサネットのLED


再起動せず切り替える

Pi4, Pi3+: 方法無し

githubのraspberry piのfirmwareリポジトリとかも探しましたが、自分が調べた限りPi4の切り替え方法は見つかりませんでした。
再起動せず点灯の切り替え方法をご存知でしたら、コメントなどで共有していただけると嬉しいです。

Pi3 1.2: lan951x-led-ctlを利用?

pi3のv1.2はUSBで有線LANを駆動しているようなので、それの設定を変えれば良いようです。(未確認です。)
参考: Turn off external LEDs on Raspberry Pi 3

プログラムのダウンロードとビルド
sudo apt install -y git libusb-1.0-0-dev
cd ~/
git clone https://github.com/dumpsite/lan951x-led-ctl.git
cd lan951x-led-ctl/
make

実行
cd ~/lan951x-led-ctl
sudo ./lan951x-led-ctl --fdx=1 --lnk=1 --spd=1

起動時の設定で消す

pi4は下記の設定で消せました。
/boot/config.txt
[pi4]
dtparam=eth_led0=4
dtparam=eth_led1=4

pi3+は下記の設定のようです。
/boot/config.txt
dtparam=eth_led0=14
dtparam=eth_led1=14

pi3 v1.2はrc.localにlan951x-led-ctlを利用したLED無効化コマンドを書けば良いと思います。
/etc/rc.local
sudo /home/pi/lan951x-led-ctl/lan951x-led-ctl --fdx=1 --lnk=1 --spd=1

exit 0

終わり

Raspberry Pi4の電源やイーサネットのLEDを消せました。
寝室部屋の不要な光源を減らせて嬉しいです。

参考

Turn Off Built-in LEDs on Raspberry Pi 4
Disable Raspi LEDs with HA OS
Turn off external LEDs on Raspberry Pi 3
Pi 4 ethernet connector LEDs

0 件のコメント :