获取evdev设备的类型

戴夫·巴特勒

从Linux用户空间中,如何获得evdev / input_event设备的类型(例如,鼠标或键盘)?

我知道我可以通过阅读/proc/bus/input/handlers或列出来枚举它们,/sys/class/input/但是尚不清楚哪个设备是鼠标还是键盘。

/proc/bus/input/handlers像这样的H: Handlers=sysrq kbd event3 leds似乎暗示这是一个带有'kbd'的键盘,但是我找不到任何具有这种效果的实际文档。

斯蒂芬·基特

内核并不是真正根据设备类型进行推理,而是根据设备可以产生的事件类型进行推理(请参阅内核中的事件代码文档)。

因此,您需要一些启发式方法来识别设备类型。许多设备可以产生关键事件。键盘具有同时产生按键事件(EV_KEY)和重复事件(EV_REP的特殊性我认为,老鼠是产生相对事件(EV_REL的唯一设备

设备公开了可以ev在其类capabilities目录中的文件中生成的事件类型每个偶数类型都有给定的位偏移量,定义为/usr/include/linux/input-event-codes.hEV_KEYEV_REP1、20、2 EV_REL。您可以在给定的值中查找那些位,/sys/class/input/input*/capabilities/ev以找到您感兴趣的设备。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章