恒定零输入

恒定零输入

我有一台联想 Ideapad 700,配有 Antergos。似乎每秒都会有持续的输入,这使我无法在终端中滚动或使用 tty。这是使用

$ xev
KeyPress event, serial 38, synthetic NO, window 0x5400001,  
root 0x153, subw 0x0, time 7416716, (262,3), root:(1124,458),  
state 0x0, keycode 221 (keysym 0x0, NoSymbol), same_screen YES,  
XLookupString gives 0 bytes:   
XmbLookupString gives 0 bytes:   
XFilterEvent returns: False 

我已经尝试禁用 BIOS 中的 Fn 锁,但没有帮助。有谁知道如何修复这个问题或进一步了解这个输入来自哪里?

答案1

Linux 内核 4.13 引入了peaq_wmi驱动程序,它处理 PEAQ 平板电脑上的热键(特别是 PEAQ PMM C1010 上的“杜比”按钮)。

该驱动程序针对系统固件(在 ACPI 表中)中找到的特定 WMI 对象 GUID 进行加载。不幸的是,PEAQ 固件开发人员没有生成唯一的 GUID - 他们只是从 Microsoft 的样本WMI 驱动程序。

不幸的是,他们并不是唯一一家这样做的制造商——在联想固件中可以找到相同的 WMI GUID,当然它具有完全不同的含义。当驱动程序在不兼容的系统上加载时,它会收到垃圾结果并认为按钮始终处于按下状态。

不幸的是,实际的 PEAQ 固件不会在按下按钮时通知操作系统;相反,操作系统必须反复轮询其状态。因此,驱动程序每秒都会得到相同的垃圾结果。

司机最近固定的还要检查系统制造商名称,修复应该很快就会到达稳定内核(4.14.x、4.13.x)。同时,您可以使用以下方法删除模块:

modprobe -r peaq_wmi

和/或通过/etc/modprobe.d或使用内核参数将其列入黑名单:

modprobe.blacklist=peaq_wmi

将来,要调试此类问题,请使用报告单个输入设备的工具;例如,evemu-recordlibinput debug-events。(该xinput工具也可以在 X11 内部执行此操作。)这样可以将其缩小到特定的驱动程序。

(或者你可以浏览从 4.12 到 4.13 的所有 Git 提交,直到找到一个让你觉得“这个新模块看起来很有趣,我想知道当你卸载它时会发生什么”

相关内容