我阅读了 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
。