Atualmente estou trabalhando em um projeto onde quero controlar meu PC com um AVR, através da emulação de um teclado PS/2. Por esse motivo, atualmente tenho todo o hardware necessário e algumas bibliotecas de software, como https://github.com/ndusart/ps2-keyboard para o AVR e http://python-evdev.readthedocs.io/en/latest/ index.html para a parte do PC.
Também li sobre o protocolo PS/2 em http://www.pcbheaven.com/wikipages/The_PS2_protocol/ , http://www.computer-engineering.org/ps2protocol/ e http://retired.beyondlogic.org/ teclado/keybrd.htm
Em seguida, executei o comando sudo cat /dev/input/by-path/platform-i8042-serio-0-event-kbd > ./kbrd.hex
e conectei um teclado, pressionei e soltei o backspace.
Eu gostaria de algo como AA 66 F0 66
, e talvez alguns FA
(ACK) no meio, mas o que eu tenho é muito diferente:
Então, minha pergunta:
isso pode ser causado por meu mal-entendido sobre o comportamento de trabalho de /dev/input/ ou o problema está em outras partes da minha configuração? Espero obter a entrada bruta do buffer de /dev/input/, e isso não é o que eu acho que deveria ser.
Da maneira como você descreve o processo, você: começou a capturar a saída, conectou o teclado, pressionou uma tecla e parou de capturar. Se for esse o caso, eu recomendaria conectar o teclado, iniciar a captura, pressionar a tecla, parar a captura?
EDIT: Adicionando informações adicionais
Não obtive nada em minha própria pesquisa rápida para alinhar totalmente com seus despejos até agora, mas:
De acordo com a documentação e o código-fonte do kernel.org , a saída das interfaces /dev/input está no formato:
O que equivale a:
01
paraEV_KEY
(pressionar tecla). Consulte códigos de evento de entrada.h0E
paraKEY_BACKSPACE
. Consulte códigos de evento de entrada.h01
para pressionamento de tecla,00
para liberação,02
para repetição automática