Eu tenho um espectrômetro gama que se conecta como USB HID. Quando é inserido, dmesg
informa-me que dois arquivos de dispositivo foram criados para ele hiddev0
e hidraw2
(obviamente, a numeração não é importante).
Com base na documentação e na inspeção visual dos bytes, quero ler de hidraw2
. Mas estou curioso para saber que tipo de dados estão chegando hiddev0
, porque fiquei tentando descobrir por um tempo antes de perceber que hidraw2
existiam.
Aqui estão alguns dados de exemplo de hiddev0
.
00000000 01 00 00 ff 0d 00 00 00 01 00 00 ff 81 00 00 00 |................|
00000010 01 00 00 ff 0b 00 00 00 01 00 00 ff 00 00 00 00 |................|
00000020 01 00 00 ff 0e 00 00 00 01 00 00 ff c1 00 00 00 |................|
00000030 01 00 00 ff 08 00 00 00 01 00 00 ff 01 00 00 00 |................|
00000040 01 00 00 ff 08 00 00 00 01 00 00 ff 41 00 00 00 |............A...|
00000050 01 00 00 ff 0b 00 00 00 01 00 00 ff 31 00 00 00 |............1...|
00000060 01 00 00 ff 07 00 00 00 01 00 00 ff b1 00 00 00 |................|
00000070 01 00 00 ff 09 00 00 00 01 00 00 ff 01 00 00 00 |................|
00000080 01 00 00 ff 08 00 00 00 01 00 00 ff b1 00 00 00 |................|
00000090 01 00 00 ff 08 00 00 00 01 00 00 ff 51 00 00 00 |............Q...|
000000a0 01 00 00 ff 1d 00 00 00 01 00 00 ff 51 00 00 00 |............Q...|
000000b0 01 00 00 ff 0a 00 00 00 01 00 00 ff f1 00 00 00 |................|
000000c0 01 00 00 ff 08 00 00 00 01 00 00 ff 51 00 00 00 |............Q...|
000000d0 01 00 00 ff 34 00 00 00 01 00 00 ff 91 00 00 00 |....4...........|
Conforme solicitado, aqui está a linha de dmesg
.
[411407.529580] hid-generic 0003:04D8:0023.0003: hiddev0,hidraw2: USB HID v1.01 Device [Kromek SIGMA50] on usb-0000:00:1a.1-2/input0
Resposta parcial:
O driver é
hid-generic
, portanto, a próxima etapa é examinar o descritor HID. Como root, façaEm seguida, observe o conteúdo de
/sys/kernel/debug/hid/<dev>/rdesc
, onde<dev>
identifica seu dispositivo.O descritor HID descreve o formato do que você pode ler e escrever no
hidraw
descritor (talvez também seja importante para você). Estes são processados pelo analisador HID do kernel e, em seguida, enviados para ohiddev
descritor. Pelo menos para dispositivos de entrada, o arquivo acima também contém informações sobre o que o analisador do kernel faz com as informações, mas não tenho certeza do que acontece com arquivoshid-generic
.Comparar o que você vê
hidraw
ehiddev
deve permitir algumas suposições muito boas sobre o que o analisador do kernel faz e, em caso de dúvida, pode-se ler a fonte.Você pode encontrar mais informações nos
Documentation/hid/hidraw.txt
fontes/Documentation/hid/hiddev.txt
do kernel.A "hidpage" dos comentários tem os padrões HID, se você quiser lê-los.