www.kernel.org からダウンロードした素のLinuxカーネルの話です(Raspberry Pi OSで使えるか不明)。Linuxでは /sys/class/leds
にあるファイルに書き込むとLEDを操作できます。ラズパイ4の場合赤いLEDは /sys/class/leds/PWR
, 緑のLEDは /sys/class/leds/ACT
に対応します。それらディレクトリの下にある trigger
ファイルに何か書くとLEDを点灯する条件を制御できます。条件の一覧は必要なモジュール(ledtrig_netdev.ko
などをmodprobe
した後に) cat /sys/class/leds/PWR/trigger
で出てきますが、それぞれの意味は Kconfig である程度わかります。ここでは
-
netdev
指定したネットワークインターフェイスの活動を示す -
activity
CPUの使用率が高いと点灯する
以下のsystemdスクリプトで赤LEDでネットワークip6tnl1
の送受信を表示し、緑LEDでCPU使用を表示するようにできます。
/etc/systemd/systemd/leds.service
[Unit]
After=modprobe@ledtrig_activity.service
After=modprobe@ledtrig_netdev.service
After=network-online.target
Wants=modprobe@ledtrig_activity.service
Wants=modprobe@ledtrig_netdev.service
[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo activity > /sys/class/leds/ACT/trigger"
ExecStart=/bin/sh -c "echo netdev > /sys/class/leds/PWR/trigger"
ExecStart=/bin/sh -c "echo ip6tnl1 > /sys/class/leds/PWR/device_name"
ExecStart=/bin/sh -c "echo 1 > /sys/class/leds/PWR/tx"
ExecStart=/bin/sh -c "echo 1 > /sys/class/leds/PWR/rx"
[Install]
WantedBy=multi-user.target