tengo un programa (avancemame) que se ejecuta en Raspian (Raspberry Pi) que, como la mayoría de los programas, obtiene su entrada desde el teclado. Estoy usando un programa que se implementa uinput
para convertir las lecturas ALTA/BAJA de los pines GPIO en pulsaciones de teclas (pikeyd). Ejecuto pikeyd
en segundo plano desde el terminal, que tiene un pin GPIO asignado a la clave 5. Configuro el GPIO correspondiente en HI, imprime "5" en el terminal.
Sin embargo, cuando lo ejecuto advancemame
, no reconoce el archivo uinput
. Si desconecto el teclado y reinicio, advancemame
veo uinput
que todo funciona. Por lo que parece, el programa leerá el primer dispositivo de entrada input0
(teclado). ¿Hay alguna manera de hacerlo uinput
input0
? Es decir, establecer el orden de los dispositivos de entrada.
$ ls /sys/class/input/
event0 event1 event2 input0 input1 input2 mice mouse0 mouse1
$ ls /sys/devices/virtual/input/input2/
capabilities event2 id modalias mouse1 name phys power properties subsystem event uniq
No estoy seguro de si hay una configuración advancemame
que observe todos los dispositivos de entrada. Tengo 3 imágenes que construí desde cero, 1 de las 3 imágenes funciona donde advancemame
se ven todos los dispositivos de entrada. Puedo usar mi uinput
y el teclado en algún momento. He comparado las configuraciones entre las imágenes y parece que no puedo encontrar por qué una funciona y las otras no. Me pregunto si puede ser un permiso de seguridad.
Además, ¿hay alguna forma de desactivar event0 y event1? No lo estoy usando X11
, por lo que xinput
no es una opción.
EDITAR
Aquí están mis dispositivos de entrada:
pi@raspberrypi ~ $ cat /proc/bus/input/devices
I: Bus=0003 Vendor=0d62 Product=0500 Version=0100
N: Name="2.4G Wireless Keyboard with Touchpad"
P: Phys=usb-bcm2708_usb-1.2/input0
S: Sysfs=/devices/platform/bcm2708_usb/usb1/1-1/1-1.2/1-1.2:1.0/input/input0
U: Uniq=
H: Handlers=sysrq kbd event0
B: PROP=0
B: EV=120013
B: KEY=10000 7 ff9f207a c14057ff febeffdf ffefffff ffffffff fffffffe
B: MSC=10
B: LED=7
I: Bus=0003 Vendor=0d62 Product=0500 Version=0100
N: Name="2.4G Wireless Keyboard with Touchpad"
P: Phys=usb-bcm2708_usb-1.2/input1
S: Sysfs=/devices/platform/bcm2708_usb/usb1/1-1/1-1.2/1-1.2:1.1/input/input1
U: Uniq=
H: Handlers=kbd mouse0 event1
B: PROP=0
B: EV=1f
B: KEY=4837fff 72ff32d bf544446 0 0 1f0001 20f90 8b17c000 677bfa d9415fed 9ed680 4400 0 10000002
B: REL=143
B: ABS=7f01 0
B: MSC=10
I: Bus=0003 Vendor=0001 Product=0001 Version=0001
N: Name="uinput-sample"
P: Phys=
S: Sysfs=/devices/virtual/input/input2
U: Uniq=
H: Handlers=sysrq kbd mouse1 rfkill event2
B: PROP=0
B: EV=100007
B: KEY=10000 ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe
B: REL=3
Se agradece cualquier ayuda.
Respuesta1
Resultó que el problema se estaba ejecutando advancemame
con sudo
un usuario normal y no con él pi
, no investigamos el motivo.