Skip to content

Latest commit

 

History

History
62 lines (48 loc) · 4.05 KB

leds.md

File metadata and controls

62 lines (48 loc) · 4.05 KB

Управление светодиодами на плате Orange Pi3 LTS

В данной статье настраивается поведение красного и зелёного светодиодов, размещённых непосредственно на плате SBC.

GPIO светодиодов и конфигурация по умолчанию

Имя на схеме Цвет 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