Ank*_*nko 3 debugging x11 mouse events
几天前,当我同时释放两个按钮时,我的鼠标按钮释放开始有时无法被识别。因此,一个按钮的逻辑状态卡在“按下”状态,导致恼人的意外操作,直到我再次按下它来重置它。
我可以重现监视鼠标事件的问题xev
(输出有时不显示预期的按键释放事件)。我无法通过监视事件来重现该问题/sys/kernel/debug/usb/usbmon
(输出始终与现实一致)。
因此,故障显然出在 X11 以下但 USB 以上的某个抽象软件组件上。
可能是什么原因造成的?我怎样才能进一步缩小范围?
USB事件和X事件之间的级别是:
除非您的鼠标很特殊并且有自己的驱动程序,否则它很可能是 HID 设备。找到相应的hidraw
设备(选中dmesg
),并验证您在那里获取事件。USB 到 HID 的转换由内核完成。
所有输入事件都通过输入层离开内核,相应的设备位于/dev/input
. 以 root身份运行evtest
,选择鼠标,看看是否收到事件。从 HID 事件到输入事件的转换由内核完成。
X 自动加载所有输入设备的驱动程序,大多数情况下是evdev
驱动程序。查看/var/log/Xorg.0.log
加载了哪些驱动程序。这些驱动程序将输入事件转换为 X 事件。