Resposta parcial:
Um dispositivo compatível com HID deve ter um descritor HID, que descreva os formatos válidos de dados para e do dispositivo.
No Linux, você pode acessar o descritor HID da seguinte maneira:
Veja as novas linhas em dmesg
que aparecem depois que você conecta o dispositivo. Isto lhe dirá se o kernel do Linux também o reconhece como um dispositivo HID e o número do barramento, bem como o ID do fornecedor e do dispositivo.
Se ainda não estiver montado, faça
mount -t debugfs none /sys/kernel/debug
como root. Em seguida, /sys/kernel/debug/hid/<dev>/rdesc
conterá o descritor HID, em que <dev>
é um identificador de dispositivo contendo o número do barramento, o ID do fornecedor e do dispositivo e um número adicional.
Observe o conteúdo do descritor com cat '/sys/kernel/debug/hid/<dev>/rdesc'
e edite a pergunta para incluir o conteúdo (ou colocá-lo em um pastebin etc. e edite a pergunta com um link).
lsusb
e lsusb -v -d xxxx:yyyy
(onde xxxx:yyyy
é o fornecedor e o ID do dispositivo) também fornecerá informações que podem ajudar a determinar como se comunicar com o dispositivo.
Editar
Essa é uma maneira divertida de usar o HID USB: O descritor HID diz que você pode ler e gravar blocos de 8 bytes de comprimento, com finalidade específica do aplicativo (não padrão) e, de fato, o blazer_usb no NUT exatamente faz isso, simulando um USB serial por meio de trechos de 8 bytes. Totalmente louco.
Aqui é uma descrição de como fazê-lo funcionar no Ubuntu, aparentemente existem várias armadilhas. O protocolo de comunicação para a interface serial apropriada é descrito aqui .
Se você ainda tiver problemas para fazê-lo funcionar no Linux, dê uma olhada em usbmon
para depurar o que não está funcionando.
Não faço ideia do que fazer para um driver do Windows, a menos que você pegue a fonte e escreva uma.