J'ai lu la documentation du noyau pour hidraw et hiddev, et je comprends les différences, mais je me demande comment le noyau décide si un périphérique doit apparaître comme /dev/hidraw*
ou/dev/usb/hiddev*
J'ai lu la documentation du noyau pour hidraw et hiddev, et je comprends les différences, mais je me demande comment le noyau décide si un périphérique doit apparaître comme /dev/hidraw*
ou/dev/usb/hiddev*
Réponses:
Il est transmis en tant que paramètre par pilote à hid_hw_start()
/ hid_connect()
. Par exemple:
hid-thingm.c: err = hid_hw_start(hdev, HID_CONNECT_HIDRAW);
Je suppose que la plupart des pilotes font quelque chose comme ceci:
hid-logitech-dj.c: retval = hid_hw_start(hdev, HID_CONNECT_DEFAULT);
Et HID_CONNECT_DEFAULT
comprend HID_CONNECT_HIDRAW
:
#define HID_CONNECT_DEFAULT (HID_CONNECT_HIDINPUT|HID_CONNECT_HIDRAW| \
HID_CONNECT_HIDDEV|HID_CONNECT_FF)
La même chose se produit exactement pour les deux hidraw
et hiddev
.