Warum wird ein Gerät als Hidraw anstelle von Hiddev angezeigt?

8

Ich habe die Kerneldokumentation für hidraw und hiddev gelesen und verstehe die Unterschiede, aber ich frage mich, wie der Kernel entscheidet, ob ein Gerät als /dev/hidraw*oder angezeigt werden soll oder nicht/dev/usb/hiddev*

anderl.heckmaier
quelle

Antworten:

1

Es wird als Parameter pro Treiber an hid_hw_start()/ übergeben hid_connect(). Z.B:

hid-thingm.c:   err = hid_hw_start(hdev, HID_CONNECT_HIDRAW);

Ich denke, dass die meisten Fahrer so etwas tun:

hid-logitech-dj.c:  retval = hid_hw_start(hdev, HID_CONNECT_DEFAULT);

Und HID_CONNECT_DEFAULTbeinhaltet HID_CONNECT_HIDRAW:

#define HID_CONNECT_DEFAULT     (HID_CONNECT_HIDINPUT|HID_CONNECT_HIDRAW| \
                HID_CONNECT_HIDDEV|HID_CONNECT_FF)

Das gleiche passiert für beide hidrawund hiddev.

V13
quelle