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

时间:2011-07-27 14:46:02

标签: linux usb driver kernel hid

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

1 个答案:

答案 0 :(得分:2)

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>...

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

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