gpt4 book ai didi

linux - 将 XInput2 设备映射到 sysfs 节点

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:36:23 27 4
gpt4 key购买 nike

如何打开 XInput2 设备,例如如 XIQueryDevice 所报告的那样,进入适当的 sysfs 节点?该设备是一个通用的 HID 设备,由 evdev 输入驱动程序处理。

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

最佳答案

您可以使用 xinput 获取设备 ID命令。从那里你可以使用 xinput list-props <device id> 获取设备节点路径.属性 261 是设备节点。

获得设备节点后,您可以使用 udevadm info -p $(udevadm info -q path -n <device node path>) 获取 sysfs 节点路径.

懒惰的 oneliner 是

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

`

要以编程方式执行此操作,您需要调用 XIGetProperty使用来自 XIDeviceInfo 的设备 ID (例如 XIDeviceInfo->deviceid ),示例调用语法为 here .

要从设备路径中获取 sysfs 路径,您可以使用 udev_device_new_from_devnum使用 stat(如 here 所示),制作 udev_device从设备路径,然后调用 udev_device_get_syspath有了那个udev_device作为参数。

关于linux - 将 XInput2 设备映射到 sysfs 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30167639/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com