web-dev-qa-db-ja.com

デバイスがhiddevではなくhidrawとして表示されるのはなぜですか?

Hidrawとhiddevのカーネルドキュメントを読み、違いは理解していますが、デバイスを/dev/hidraw*または/dev/usb/hiddev*として表示するかどうかをカーネルがどのように決定するのか疑問に思っています。

8

これは、ドライバーごとのパラメーターとしてhid_hw_start()/hid_connect()に渡されます。例えば:

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

ほとんどのドライバーは次のようなことをしていると思います。

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

そして、HID_CONNECT_DEFAULTにはHID_CONNECT_HIDRAWが含まれます。

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

hidrawhiddevの両方でまったく同じことが起こります。

1
V13