GPIO Keys am Raspberry Pi

GPIO Eingänge als einfache Tastatur.

Installation

Es gibt das Kernelmodul gpio_keys_device, welches die einfache Verwednung von GPIO Eingängen als Tastatur erlaubt.

Notwendige Pakete:

pacman -S linux-headers evtest

Kernelmodul bauen:

git clone https://github.com/notro/fbtft_tools
cd fbtft_tools/gpio_keys_device
make clean
make all
make install
depmod

Das Kernelmodul muss nach jedem Update des Linux-Kernel neu gebaut werden.

Kernelmodule laden:

modprobe gpio_keys
modprobe gpio_keys_device active_low keys=23:102,24:103,25:108

Mit obiger Einstellung werden die GPIO 23,24 und 25 für HOME, UP und DOWN verwendet.

Test

Test mit

evtest /dev/input/event0

ergibt:

Event: time 1436614348.359553, type 1 (EV_KEY), code 102 (KEY_HOME), value 1
Event: time 1436614348.359553, -------------- EV_SYN ------------
Event: time 1436614348.519589, type 1 (EV_KEY), code 102 (KEY_HOME), value 0
Event: time 1436614348.519589, -------------- EV_SYN ------------
Event: time 1436614348.929546, type 1 (EV_KEY), code 103 (KEY_UP), value 1
Event: time 1436614348.929546, -------------- EV_SYN ------------
Event: time 1436614349.109546, type 1 (EV_KEY), code 103 (KEY_UP), value 0
Event: time 1436614349.109546, -------------- EV_SYN ------------
Event: time 1436614349.489560, type 1 (EV_KEY), code 103 (KEY_UP), value 1
Event: time 1436614349.489560, -------------- EV_SYN ------------
Event: time 1436614349.619551, type 1 (EV_KEY), code 103 (KEY_UP), value 0
Event: time 1436614349.619551, -------------- EV_SYN ------------
Event: time 1436614350.799556, type 1 (EV_KEY), code 108 (KEY_DOWN), value 1
Event: time 1436614350.799556, -------------- EV_SYN ------------
Event: time 1436614351.069551, type 1 (EV_KEY), code 108 (KEY_DOWN), value 0
Event: time 1436614351.069551, -------------- EV_SYN ------------

Kernelmodule laden beim Booten

In /etc/modules-load.d/raspberrypi.conf werden die Module

gpio_keys
gpio_keys_device

und in /etc/modprobe.d/gpio_keys_device.conf die Optionen des Moduls:

options gpio_keys_device active_low keys=23:102,24:103,25:108