Você pode usar /dev/uhid
para criar seu próprio dispositivo HID . Isso torna fácil não apenas fornecer teclados do espaço do usuário, mas também mouses, joysticks etc. O dispositivo HID recém-criado receberá automaticamente um dispositivo /dev/input
associado. Existe um programa de exemplo nos fontes do kernel, samples/uhid/uhid-example.c
. Eu acho que é a maneira mais portátil, os dispositivos HID são altamente padronizados. Basicamente, todos os teclados e mouses USB são dispositivos HID.
Você também pode usar /dev/uinput
ou /dev/input/uinput
(depende da sua distribuição) para criar diretamente um dispositivo de camada de entrada. Veja por exemplo aqui para detalhes. Isso precisa do módulo do kernel uinput
.