В данной статье настраивается поведение красного и зелёного светодиодов, размещённых непосредственно на плате SBC.
Имя на схеме | Цвет | GPIO | trigger | brightness |
---|---|---|---|---|
PWR-LED | RED | PL4 | none | 0 |
STATUS-LED | GREEN | PL7 | none | 1 |
Конфигурация по умолчанию приведена для Armbian 22.08.8 и ядра Linux 5.15.74-sunxi64
Кроме того, конфигурация сохраняется между перезапусками и восстанавливается в файле /etc/armbian-leds.conf
.
Сохранение и восстановление реализовано сервисом systemd armbian-led-state.service
.
Сохраняется состояние светодиода (brightnes 0/1) и название события, меняющего автоматически состояние светодиода.
Задать триггер можно командой
$ echo "heartbeat" | sudo tee /sys/class/leds/green-led/trigger
Список достаточно полезных триггеров:
- none - событие отсутствует, светодиод управляется вне ядра;
- disk-activity - светодиод зажигается при чтении/записи с запоминающего устройства, в т.ч. microSD, EMMC, usb disk, etc.;
- disk-write - светодиод зажигается только при записи на запоминающее устройство (любое подключенное);
- default-on - светодиод включён постоянно, например, индикация питания;
- heartbeat - "сердцебиение", светодиод производит две вспышки в секунду
Полный список триггеров можно получить командой
$ cat /sys/class/leds/green-led/trigger
Состояние светодиода можно поменять командой
$ echo "0" | sudo tee /sys/class/leds/green-led/brightness
$ echo "1" | sudo tee /sys/class/leds/green-led/brightness
Как уже ранее упоминалось, изменение состояния светодиода производится при установленном триггере none
,
в противном случае состояние будет перезаписано при первом же событии.
Результат вышеприведённых действий по умолчанию сохраняется между перезагрузками в файле /etc/armbian-leds.conf
.
На момент написания статьи в Armbian не предусмотрено только восстановления состояния из файла /etc/armbian-leds.conf
,
автосохранение же может запутывать пользователя, если события/триггеры не используются, а состояние модифицируется иным способом, например, из скриптов.
В таком случае предлагается отключить сервис сохранения/восстановления светодиодов, и необходимые триггеры задавать через /etc/rc.local
.
sudo systemctl disable armbian-led-state.service
и добавить нужные настройки:
$ sudoedit /etc/rc.local
Добавить строки до команды exit 0
echo "default-on" > /sys/class/leds/green-led/trigger
echo "disk-write" > /sys/class/leds/red-led/trigger