我有一个Linux USB HID设备(Hama MCE),我可以通过阅读cat /dev/input/event7
和cat /dev/input/event8
手动阅读其事件。每当我按下设备上的某个键时,就可以使用上面的cat
命令之一读取几个字节。我在机器上默认安装了Ubuntu Jaunty 64位桌面。
我想我可以编写一个解析器来解释设备发出的字节,或者如果它更方便的话我会使用libhid。
我的问题是:
/usr/local/bin/keydumper /dev/input/event7 /dev/input/event8
(或每个/dev/
路径的一个命令)将运行,并使用正确的/dev/
在命令行中替换的路径? 答案 0 :(得分:5)
根据Linux USB HID驱动程序开发人员的回答回答我自己的问题:
问题1和2:做
ioctl(open("/dev/input/event7", O_RDONLY), EVIOCGRAB, 1);
只要此文件句柄处于打开状态,生成的事件就会发生 到这个文件句柄(不是相同设备的其他open()或者 系统键盘或鼠标事件池)。最多一个过程可以容纳一个 成功的EVIOCGRAB一次在HID设备上。可以配置Lirc 做一个EVIOCGRAB。
问题3:配置udev以在设备连接后启动程序。
答案 1 :(得分:0)
我没有足够的观点悲伤地评论。
如果您正在寻找EVIOCGRAB的定义,请尝试
#include <linux/input.h>
答案 2 :(得分:-1)
我认为所有问题的解决方案都可以为您的设备编写自己的过滤设备驱动程序或自定义驱动程序。我知道Windows上有这样的东西(过滤设备驱动程序),所以类似的东西可以在Linux上。在那个过滤设备驱动程序中,你可以阻止你想要阻止的目标设备中的所有不需要的事件,我真的没有得到3个问题,所以我不知道如何回答这个问题。