Visão geral rápida: o manuseio do mouse e do teclado está em camadas. A camada mais abstrata no nível do kernel é a camada de evento de entrada (dispositivos /dev/input/event*
). Você pode ler eventos sobre aqueles com evtest
. Acima disso estão os drivers para X ( evdev
, ou drivers de nível inferior) ou Wayland ( libinput
). Abaixo estão drivers para dispositivos USB HID ( usbmouse
/ usbhid
), teclados PS / 2 ( kbd
), mouses PS / 2 ( mousedev
). Os dispositivos de mouse são um zoológico bastante complexo, porque eles também contêm drivers obsoletos para mouses de porta serial com diferentes protocolos e outras maneiras de anexar mouses.
/dev/input/mouse0
é o dispositivo para eventos de mouse de nível PS / 2, enquanto mousedev
é o módulo do kernel que lida com ele, AFAIK. Não sei por que cat /proc/bus/input/devices
lista nomes de dispositivos em "manipuladores", isso é um pouco inconsistente.
Não há dispositivo para eventos de teclado no nível do PS / 2 por padrão, mas você pode criar um com os módulos e / ou opções corretos (eu teria que procurar isso, como você normalmente não precisa) .
Linha de fundo : A menos que você, por alguma razão, precise mexer com protocolos de nível mais baixo (PS / 2, serial, USB, HID, ...), apenas deixe-os em paz. Use os dispositivos /dev/input/event*
ou use as abstrações X ou Wayland.
Se você puder editar sua pergunta com o que realmente deseja alcançar (a menos que seja pura curiosidade), podemos dar um conselho melhor.