Formato dos bytes hiddev?

2

Eu tenho um espectrômetro gama que se conecta como um USB HID. Quando for inserido, dmesg informará que dois arquivos de dispositivos foram feitos 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 hidraw2 . Mas estou curioso para saber que tipo de dados está passando por hiddev0 , porque eu estava preso tentando descobrir por um tempo antes de perceber hidraw2 existia.

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

    
por OmnipotentEntity 01.03.2018 / 14:22

1 resposta

2

Resposta parcial:

O driver é hid-generic , então o próximo passo é olhar o descritor HID. Como root, faça

mount -t debugfs none /sys/kernel/debug

E, em seguida, observe o conteúdo de /sys/kernel/debug/hid/<dev>/rdesc , em que <dev> identifica seu dispositivo.

O descritor HID descreve o formato do que você pode ler e escrever no descritor hidraw (talvez também importante para você). Eles são processados pelo analisador HID do kernel e, em seguida, enviados para o descritor hiddev . Pelo menos para dispositivos de entrada, o arquivo acima também tem informações sobre o que o analisador do kernel faz com as informações, mas não tenho certeza do que acontece com hid-generic .

Comparar o que você vê em hidraw e hiddev deve permitir algumas boas suposições sobre o que o analisador de kernel faz e, na dúvida, é possível ler a origem.

Você pode encontrar mais informações em Documentation/hid/hidraw.txt e /Documentation/hid/hiddev.txt nos fontes do kernel.

O "hidpage" dos comentários tem os padrões HID, se você quiser lê-los.

    
por 01.03.2018 / 18:22

Tags