当前位置 : 首页 » 互动问答 » 正文

将XInput2设备映射到sysfs节点

分类 : 互动问答 | 发布时间 : 2015-05-11 12:27:24 | 评论 : 2 | 浏览 : 253 | 喜欢 : 0

如何关闭XInput2设备如 XIQueryDevice 所报告的,转换为适当的sysfs节点?该设备是通用HID设备,由evdev输入驱动程序处理。

我知道我可以获取设备的name。我可能会看到Xorg.0.log,并尝试查找添加此设备时的适当日志消息,希望它提及与此关联的 / dev / input / event *设备节点。或者我可以查看sysfs中的所有输入事件,查找具有该名称的输入事件,并希望该名称是唯一的,并且与通过XInput报告的名称相同。但我希望有一个比这两者更清晰的解决方案。

回答(2)

  • 1楼
  • 输入设备可以具有其他属性; XIListProperties 将枚举它们。至少在我的系统中,其中一个属性是“设备节点”,它指向设备的 / dev / input / eventX 设备。

    尽管基本上,<notranslate >查找设备,然后在每个设备上查找“设备名称”属性的 XIGetProperty 。 (你需要一些原子内部的东西在那里)。)可以显示这个信息: XIQueryDevice

    The xinput utility (code here,并且应该作为一个完整的例子。xinput list-props $devid xinput list -props $ devid

  • 2楼
  • 您可以使用xinput命令获取设备ID。从中你可以使用 udevadm info -p $(udevadm info -q path -n <设备节点路径>),您可以获得sysfs节点路径。<noranslate> xinput list-props <device id> 获取设备节点路径。属性261是设备节点。使用

    )<打印$ 2}'| awk'{print} lazy oneliner is .

    udevadm info -q path -n $(xinput list-props`xinput | grep“search term”| awk -F“id =”' $ 1}'`| grep“261”| awk -F'“''{print $ 2}')

    要以编程方式执行此操作,您希望使用

    `

    中的deviceid调用 XIDeviceInfo ),示例调用语法为 XIDeviceInfo-> deviceid (e.g 获取sysfs路径从设备路径中,使用 XIGetProperty here.

    和stat(如演示 udev_device <notranslate > udev_device_get_syspath ),从设备路径创建here,然后调用 udev_device作为参数。udev_device_get_syspath with that udev_device udev_device_new_from_devnum

相关阅读: