Eu tenho um dispositivo com essa saída em /proc/bus/input/devices
:
I: Bus=0003 Vendor=05b8 Product=3280 Version=0111
N: Name="PixArt USB Optical Mouse"
P: Phys=usb-0000:00:1a.0-1.1/input0
S: Sysfs=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1:1.0/input/input89
U: Uniq=
H: Handlers=mouse3 event5
B: PROP=0
B: EV=17
B: KEY=ff0000 0 0 0 0
B: REL=103
B: MSC=10
Onde estão esses campos de bit (KEY, REL etc.) definidos?
Olhando em volta da fonte linux, parece que os drivers específicos definem os bitfields. No entanto, o módulo instalado para este dispositivo é o hid_generic 1 , que não faz quase nada.
Eu imagino que há também outro driver que está ouvindo o mouse. Isso é mousedev? É algo que está criando um arquivo chamado /dev/input/mouse3
. Parece que o mousedev precisa que os bitfields sejam definidos antes de decidir que é o driver que corresponde ao dispositivo do mouse.
1 - Como sei que o hid_generic está sendo usado
dmesg
output quando eu conecto os moues:
[272055.191824] usb 1-1.1: new low-speed USB device number 23 using ehci-pci
[272055.288221] usb 1-1.1: New USB device found, idVendor=05b8, idProduct=3280
[272055.288232] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[272055.288238] usb 1-1.1: Product: USB Optical Mouse
[272055.288243] usb 1-1.1: Manufacturer: PixArt
[272055.291101] input: PixArt USB Optical Mouse as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1:1.0/input/input88
[272055.291774] hid-generic 0003:05B8:3280.004A: input,hidraw2: USB HID v1.11 Mouse [PixArt USB Optical Mouse] on usb-0000:00:1a.0-1.1/input0
Nota hid-generic
é mencionado. Posso verificar isso executando sudo rmmod hid_generic
e, em seguida, desconectando e reconectando o dispositivo. sudo lsmod | grep hid_generic
mostra que está de volta.