USB HID设备检测

USB HID设备检测,usb,dbus,hid,udev,hal,Usb,Dbus,Hid,Udev,Hal,我正在尝试访问Ubuntukernel-3.0下的USB HID设备。我想写一个程序,它可以在USB设备连接到总线时通知我,即在插入USB设备时是否会生成任何事件,我可以进行监控。我调查过DBus和HAL,但没有成功。但我不希望linux在设备插入时加载其当前模块usbhid和HID。我还想问一下,上述模块是否也是用于HID设备的设备驱动程序 我的唯一目的是在USB设备插入总线时运行脚本,该总线将间接调用上述模块 我正在用C语言编写代码。我对linux相当陌生。因此,如果有人能为我指出正确的方向

我正在尝试访问Ubuntukernel-3.0下的USB HID设备。我想写一个程序,它可以在USB设备连接到总线时通知我,即在插入USB设备时是否会生成任何事件,我可以进行监控。我调查过DBus和HAL,但没有成功。但我不希望linux在设备插入时加载其当前模块usbhid和HID。我还想问一下,上述模块是否也是用于HID设备的设备驱动程序

我的唯一目的是在USB设备插入总线时运行脚本,该总线将间接调用上述模块

我正在用C语言编写代码。我对linux相当陌生。因此,如果有人能为我指出正确的方向,那将是非常有帮助的


谢谢..

当插入USB驱动器时,UDisks deamon将发送添加的D-Bus信号设备,并且可能会为驱动器上的每个分区添加另一个设备。如果您有自动挂载,那么在挂载分区时也会收到DeviceChanged信号。例如,您可以查询UDisks接口以及单个设备的属性。您可以在此处找到有关UDisks界面的更多信息:

要更熟悉D-Bus上的块设备或其他设备,一种方法是安装并使用D-Foot检查总线。UDisk出现在系统总线上。您可以查看其中的内容,并检查各个设备以及UDisks接口本身的属性


另一种方法是从命令行运行dbus monitor,它也允许您查看总线上传输的信号。

我编写了一个类似于使用的libudev monitor的程序来查找HID设备添加事件。它在/dev下查找hidraw条目,该条目仅在枚举设备后出现。所以我认为除了编写内核驱动程序,我别无选择。谢谢你的链接。我很高兴这个答案至少在某种程度上有所帮助。这个答案有点漏洞百出。OP要求为USB人机交互设备HID(而非USB存储设备)的插拔生成事件。显然,我们必须直接监控udev,就像@pattu777列出的C程序中所做的那样。