Réponse partielle:
Un périphérique compatible HID doit avoir un descripteur HID décrivant le ou les formats valides de données entrant et sortant du périphérique.
Sous Linux, vous pouvez accéder au descripteur HID de la manière suivante:
Regardez les nouvelles lignes dmesg
qui apparaissent après avoir branché le périphérique. Cela vous indiquera si le noyau Linux le reconnaît également comme périphérique HID, ainsi que le numéro de bus, ainsi que le fournisseur et l'ID du périphérique.
Si ce n'est pas déjà monté, faites
mount -t debugfs none /sys/kernel/debug
en tant que racine. Ensuite /sys/kernel/debug/hid/<dev>/rdesc
, contiendra le descripteur HID, où se <dev>
trouve un identifiant de périphérique contenant le numéro de bus, le fournisseur et l'ID de périphérique, ainsi qu'un numéro supplémentaire.
Examinez le contenu du descripteur avec cat '/sys/kernel/debug/hid/<dev>/rdesc'
et modifiez la question pour inclure le contenu (ou placez-le dans une boîte à copier, etc., puis modifiez la question avec un lien).
lsusb
et lsusb -v -d xxxx:yyyy
(où xxxx:yyyy
sont le fournisseur et l'identifiant du périphérique) donnera également des informations pouvant aider à déterminer comment communiquer avec le périphérique.
Modifier
C’est une façon amusante d’utiliser HID USB: le descripteur HID indique que vous pouvez lire et écrire des fragments d’une longueur de 8 octets, avec un objectif spécifique à l’application (non standard), et le code de pilote blazer_usb dans NUT le fait USB série via des morceaux de 8 octets. Complètement fou.
Voici une description de la façon de le faire fonctionner sous Ubuntu. Apparemment, il y a plusieurs pièges. Le protocole de communication pour l'interface série proprement dite est décrit ici .
Si vous avez toujours du mal à le faire fonctionner sous Linux, jetez un œil à usbmon
ce qui ne fonctionne pas.
Aucune idée de ce que font les pilotes Windows, à moins de prendre le code source et d’en écrire un vous-même.