Se você mesmo gravou o driver de dispositivo de caractere e se destina a ser usado como um dispositivo de entrada, talvez seja melhor alterar seu driver para funcionar como um dispositivo de entrada em vez de um dispositivo de caractere genérico.
Felizmente, há uma boa documentação na árvore do kernel, em:
Documentation/input/input-programming.txt
Para uma versão online, dê uma olhada no input-programming.txt na árvore do linux no kernel.org.
Basicamente, você criará um struct input_dev
e o registrará com o subsistema de entrada com input_register_device
. Os eventos de entrada podem ser enviados para a camada de entrada com input_event
ou uma das funções auxiliares como input_report_key
.