Diody LED w routerze służą przed wszystkim w celach informacyjnych. Na ich podstawie najczęściej stwierdzamy czy urządzenie lub jego część działa poprawnie.
Jeżeli dana dioda nie ma z góry ustalonej funkcji, mamy tu ma myśli wszelkie 'lampki' informujące o działaniu portu przełącznika, to istnieje możliwość własnego przypisania jej funkcji.
Diody w systemie OpenWrt zarządzane są przez sysfs. Dostępne diody znajdują się w /sys/class/leds. W nazwie diody znajduje się jej platforma, kolor oraz etykieta/przeznaczenie, np. ubnt:green:rf (dioda RF kolory zielonego), wrt160nl:blue:wlan
Załączenie diody obywa się przez wydanie komendy:
echo 1 > /sys/class/leds/ubnt\:green\:rf/brightness
Wyłączenie
echo 0 > /sys/class/leds/ubnt\:green\:rf/brightness
Całkiem logiczne, jak w elektronice cyfrowej, 0-brak napięcia, 1- jest napięcie.
Można również przypisać inne funkcję dla diody. Oto dostępne:
echo "heartbeat" > /sys/class/leds/ubnt\:green\:rf/trigger
echo "nand-disk" > /sys/class/leds/ubnt\:green\:rf/trigger
echo "netdev" > /sys/class/leds/ubnt\:green\:rf/trigger echo "wlan0" > /sys/class/leds/ubnt\:green\:rf/device_name echo "link tx rx" > /sys/class/leds/ubnt\:green\:rf/mode
echo "timer" > /sys/class/leds/ubnt\:green\:rf/trigger echo "5000" > /sys/class/leds/ubnt\:green\:rf/delay_on echo "2000" > /sys/class/leds/ubnt\:green\:rf/delay_off
Spowoduje włączenie diody na 5sek, wyłączenie na 2sek. Czas podajemy w ms.
echo "usbdev" > /sys/class/leds/ubnt\:green\:rf/trigger echo "1-1" > /sys/class/leds/ubnt\:green\:rf/device_name echo "50" > /sys/class/leds/ubnt\:green\:rf/interval
device_name wskazuje na główny hub portu USB, interval czas pomiędzy aktywnością.
W przypadku routerów z jednym portem USB będzie to 1-1, z dwoma 1-1 i 2-1 itd. Parametr interval zalecałbym z granicach 50-100 jest wtedy łatwo dostrzec migająca diodę. Czas jest w ms.
Dioda będzie migała zarówno w czasie zapisu na dysku USB/pendrive, ale też jakiejkolwiek innej aktywności na szynie USB np. odczyt temperatury z czujnika DS18B20.
To co wykonać można z konsoli, da się również na stałe zapisać w notacji narzędzia UCI. Konfiguracja ta znajduje się w /etc/config/system. Odpowiednio:
uci add system led uci set system.@led[-1].sysfs='ubnt:green:rf' uci set system.@led[-1].default='0' uci commit system
uci add system led uci set system.@led[-1].sysfs='ubnt:green:rf' uci set system.@led[-1].default='1' uci commit system
uci add system led uci set system.@led[-1].sysfs='ubnt:green:rf' uci set system.@led[-1].trigger='heartbeat' uci commit system
uci add system led uci set system.@led[-1].sysfs='ubnt:green:rf' uci set system.@led[-1].trigger='nand-disk' uci commit system
uci add system led uci set system.@led[-1].sysfs='ubnt:green:rf' uci set system.@led[-1].trigger='netdev' uci set system.@led[-1].mode='link rx tx' uci set system.@led[-1].dev='wlan0' uci commit system
uci add system led uci set system.@led[-1].sysfs='ubnt:green:rf' uci set system.@led[-1].trigger='timer' uci set system.@led[-1].delayon='5000' uci set system.@led[-1].delayoff='2000' uci commit system
uci add system led uci set system.@led[-1].sysfs='ubnt:green:rf' uci set system.@led[-1].trigger='usbdev' uci set system.@led[-1].dev='1-1' uci set system.@led[-1].interval='50' uci commit system
Po zapisaniu ustawień wystarczy zrestartować urządzenie lub tylko usługę zarządzania 'ledami'
/etc/init.d/led restart
