Linux hotkey

Miroslav Mraz mrazik na volny.cz
Neděle Červenec 11 19:45:22 CEST 2021


Kdyby nevadila skutečná klávesa místo nějaké virtuální, řešení je hodně 
jednoduché i když se mi hodně blbě hledalo. Pokud přidáte do souboru 
/boot/config.txt např. řádek
dtoverlay=gpio-key,gpio=21,label=KEY_ENTER,keycode=28
pak se automaticky vytvoří /dev/input/eventN, což emuluje klávesnici (v 
příkazové řádce i X11) s jedinou klávesou ENTER, pokud je tlačítko na 
GPIO21 proti zemi (pull up je default), přičemž gpio-key je ovladač.
Opravdu to funguje - konfigurace je Rpi3B, Linux raspberrypi 5.10.17-v7+ 
#1421 SMP Thu May 27 13:59:01 BST 2021 armv7l GNU/Linux.

Více na
https://github.com/raspberrypi/firmware/blob/master/boot/overlays/README
https://github.com/torvalds/linux/blob/master/include/uapi/linux/input-event-codes.h

Mrazík

Dne 10. 07. 21 v 18:50 Michal Grunt napsal(a):
> Mám napsany v C jednoduchý program, který na RPi sleduje jedno GPIO (kde 
> je tlacitko) a při jeho stisknutí vygeneruje zmacknuti virtuální klávesy 
> třeba X. Funguje to, ale jak to napsat tak, aby to nezatezovalo moc 
> procesor? Mám tam nekonečnou smyčku kde sleduji GPIO, ale pokud do té 
> smyčky nedám delay třeba 200ms tak to sežere snad všechen CPU čas a nebo 
> je to dost náročný (už si to přesně nepamatuji). Ale zase s těmi 200ms 
> je to zmacknuti detekování se zpožděním... Jak ten stav GPIO detekovat 
> bez zpoždění a s minimální zátěží CPU?
> 
> MG


Další informace o konferenci Hw-list