Portál AbcLinuxu, 5. listopadu 2025 01:50
:
Linuxové jádro má HAL pro LEDky (possibly the most pointless kernel subsystem ever). LEDky bydlí v /sys/class/leds/, kde jde z userspace ovládat jas zapisováním do brightness. To ale není všechno. Pokud chceme ovládat LEDky z kernelspace, tak si u LED subsystému můžeme zaregistrovat triggery a z těch potom vybírat v userspace. Aktuálně dostupné zjistíme cat trigger a vybereme pomocí echo "název" > trigger. Má to celkem simple interface, doporučuji projít si drivers/leds/trigger.
Anyway, v upstreamu trigger blikající podle aktivity network interface není (je tam ale CAN trigger!
) (nebo jsem slepý, to je taky celkem možné), ale v OpenWRT jádru zjevně nějaký je, nemusíme teda programovat vlastní. Takže je potřeba zkompilovat tenhle OWRT modul pro Raspbianí jádro (nezkoušel jsem, ale imho by to neměl být problém). Pokud nestačí blikat OK LEDkou, bude potřeba nějak přinutit jádro, aby použilo nějaký GPIO pin (jádro má taky podporu docela dost GPIO expanderů, viz drivers/gpio). Tohle jde myslím popsat v device tree (viz Documentation/devicetree/bindings/leds). OK LED na RPi ale je v arch/arm/mach-bcm2708/bcm2708.c (proč bcm2708) (řádek cca 968 deklaruje struct s informacemi o GPIO a LEDkách.
Je tedy potřeba zkompilovat OWRT trigger pro Raspbianí jádro a nastavit nějaký GPIO pin jako LEDku. Volitelně taky přidat GPIO expander, pokud trpíme nedostatkem GPIO pinů.
Tohle řešení je podle mě celkem overkill (pokud to tedy není bráno jako cvičení v kernel hackingu, potom by to mohla být celkem dobrá zábava
)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.