写一些东西给linux隐藏设备?

liu*_*unx 5 linux usb kernel driver hid

我正在学习linux hid驱动程序编程,我知道如何从hid设备读取消息,
但是,我很困惑如何写一些东西到设备?比如usb hid键盘,我可以用xset或其他一些程序来控制键盘的leds,如何存档呢?有任何提示请!
谢谢你.

rod*_*igo 5

USB HID 设备主要是输入设备,因此它们通常不提供 OUT 端点(HID 规范允许它们,但我从未见过)。如果未提供 OUT 端点,则通过控制端点 (EP0) 发送输出报告。URB 应该是这样的:

bmRequestType = 0x21     (To class interface)
bRequest = 0x09          (SET_REPORT)
wValue = 0x02 <report_code>
wIndex = <interface>     (Usually 0x0001)
wLength = <Data length>
Data = <report_code> <data>...
Run Code Online (Sandbox Code Playgroud)

当然,有些函数可以做到这一点。从内核中,您可以查看 hiddev_lookup_report/usbhid_submit_report。从用户态,如果您使用/dev/usb/hiddev?您可以尝试 HIDIOCSREPORT ioctl,如果您使用 /dev/hidraw?你只需将()写入其中即可。

HID还定义了“功能”,即一种输出控制机制,但我从未使用过它们。

  • 需要输入的 HID 设备的一个示例是 Fido U2F(通用第二因素)令牌。 (3认同)