Hola,
Recientemente estaba tratando de lograr algo similar.
Eche un vistazo al proyecto logkeys:
http://code.google.com/p/logkeys/
Si descarga el código fuente y echa un vistazo al archivo logkeys.cc, encontrará un método para detectar automáticamente qué /dev/input/event usa su teclado. Esto le permitirá leer códigos de escaneo sin procesar desde el teclado, independientemente del programa que tenga el foco actualmente. El programa logkeys también muestra cómo traducir los códigos de escaneo en caracteres y otros trucos útiles.
Espero que esto ayude,
Marcos.
Un simple grep
operación en /proc/bus/input/devices El archivo producirá todos los teclados conectados a la máquina:
grep -E 'Handlers|EV=' /proc/bus/input/devices | \
grep -B1 'EV=120013' | \
grep -Eo 'event[0-9]+'
Donde EV=120013
es la máscara de bits para los eventos admitidos por el dispositivo. Como se explica aquí.
Esta es la forma en que se implementa en logkeys
Estás leyendo el dispositivo equivocado. Pruebe todo /dev/input/event* o busque en /var/log/Xorg.0.log qué dispositivo se usa para su teclado.