Portál AbcLinuxu, 11. května 2025 05:05
Dobry den,
potrebujem poradit s ovladanim LED diod na doske Alix 3c3
Pouzivam distribuciu iMedia Linux a podla ich navodu by sa dali diodky rozchodit takto:
mknod /dev/led1 c 253 6
mknod /dev/led2 c 253 25
mknod /dev/led3 c 253 27
lenze cat /dev/led1 mi vrati:
cat: can't open '/dev/led1': No such device or address
Location | GPIO | read port | write port |
LED1 (left) | G6 | port 06100h bit 6 | port 06100h bit 6 / 22 |
LED2 (middle) | G25 | port 06180h bit 9 | port 06180h bit 9 / 25 |
LED3 (right) | G27 | port 06180h bit 11 | port 06180h bit 11 / 27 |
Viz:
Prostě pomocí mknod vytvoříš speciální soubor-zařízení. Potom do něj můžeš zapisovat případně číst, ale čtení u ledek asi nebude to pravé na rozsvícení se tam bude muset něco spíš poslat.
No moment - aby mknod byl k něčemu dobrý (udělá jenom odkazy ve filesystému na major/minor device numbers), tak v kernelu musí být natažen ovladač, který si major number 253 zabral - viz 'cat /proc/devices'. A musí se navíc jednat o ovladač buď konkrétně pro LEDky, nebo možná obecný ovladač pro CS5536 GPIO.
Ještě jinak: chybí mi tam nějaký modprobe. Třeba 'modprobe cs5536_gpio', nemám pravdu? Major number 253 vypadá, jako nějaký dynamicky přidělený (odshora od 255 směrem dolů). Poté co uděláte modprobe, mrkněte se do /proc/devices (popř. dmesg, pokud to tam ovladač říká), jaký major number si zabral.
No a teprve až bude sedět major number device nodů proti major number živého modulu, tak ty device nody mají šanci něco dělat. Když jsem zkusil hledat cs5536_gpio, našel jsem jenom pár odkazů na nějakém polském webu, kde dělají 'echo "1" > /dev/ledX' . Což by dávalo ten smysl, že každý device node odpovídá jedné LED (jednomu GPIO bitu).
CS5536 je 'south bridge' od NS Geode GX2/LX. GPIO jsou nějaké univerzální piny toho švábu, zneužitelné pro všeobecné použití - podle Vašeho popisu softwarově viditelné na nejnižší úrovni jako 32bitové porty (těžko říct, zda přímo mapované do IO space, nebo třeba ještě skrz MSR). Dál je ten popis chaotický - míchají se tam nějaké labely / názvy pinů (G25) s odkazem na I/O adresu (32bitový port) a bit v rámci tohoto portu. Chtělo by to zdrojáky toho cs5536_gpio. To nevypadá na vanilkový modul - nebo se pletu?
dakujem za vycerpavajucu odpoved,
priblizne som pochopil akym sposobom to funguje. Myslel som ze to bude jednoduchsie :)
Po celovecernom googlovani som asi nasiel to co potrebujem: http://poli.cs.vsb.cz/misc/pcengines/
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.