为什么设备显示为 hidraw 而不是 hiddev?

为什么设备显示为 hidraw 而不是 hiddev?

我阅读了 hidraw 和 hiddev 的内核文档,并且了解它们之间的差异,但我想知道内核如何决定设备是否应显示为/dev/hidraw*/dev/usb/hiddev*

答案1

它作为每个驱动程序的参数传递到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)

hidraw和都会发生完全相同的事情hiddev

相关内容