Como / onde as capacidades do dispositivo linux / bitfields são definidas?

2

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.

Notas de rodapé

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.

    
por theicfire 20.10.2014 / 19:59

0 respostas