Leí la documentación del núcleo para hidraw e hiddev, y entiendo las diferencias, pero me pregunto cómo el núcleo decide si un dispositivo debe aparecer /dev/hidraw*
o no./dev/usb/hiddev*
Leí la documentación del núcleo para hidraw e hiddev, y entiendo las diferencias, pero me pregunto cómo el núcleo decide si un dispositivo debe aparecer /dev/hidraw*
o no./dev/usb/hiddev*
Respuestas:
Se pasa como un parámetro por controlador a hid_hw_start()
/ hid_connect()
. P.ej:
hid-thingm.c: err = hid_hw_start(hdev, HID_CONNECT_HIDRAW);
Supongo que la mayoría de los conductores hacen algo como esto:
hid-logitech-dj.c: retval = hid_hw_start(hdev, HID_CONNECT_DEFAULT);
E HID_CONNECT_DEFAULT
incluye HID_CONNECT_HIDRAW
:
#define HID_CONNECT_DEFAULT (HID_CONNECT_HIDINPUT|HID_CONNECT_HIDRAW| \
HID_CONNECT_HIDDEV|HID_CONNECT_FF)
Lo mismo sucede exactamente para ambos hidraw
y hiddev
.