当我快速键入按键序列时,键盘会发出oun
按键序列。oun<F12>
(更新:实际上,您必须按住序列中的每个键才能触发问题。如果在按“u”之前释放“o”,则不会触发问题)。
我第一次注意到这个问题是在使用谷歌浏览器输入网站时,并注意到开发者控制台会在输入时随机弹出。直到我在 vim 中输入并突然<F12>
出现在我的文本中时,我才弄清楚具体细节。
几分钟的实验得出以下结果:
- 每次都是 100% 可重复的
- 它由按键序列“oun”专门触发
- 当您按下第三个键时,第一个键必须仍处于按下状态。在按下下一个键之前释放每个键不会触发该问题(这就是为什么您仅在快速打字时遇到该问题的原因)。
作为开发人员,这似乎是一个需要解决的简单问题(如果您按顺序看到这四个输入,请删除第四个)。然而,我不知道从哪里开始:Linux 上有哪些低级输入流过滤可用,或者如何破解设备驱动程序等。
我的问题是,我应该在哪里实施这样的更改?在内核中?是否有接受过滤器的键盘输入处理机制?
额外细节:
这是在 HP ProBook 4530s(2011 年推出的商务笔记本电脑)上。我在 Windows 7 主机上的 VirtualBox VM 中运行 Debian 8。我还没有启动到 Knoppix 来验证问题在 100% 纯 Linux 环境中是否仍然存在,但我非常有信心这个问题发生在操作系统级别以下。
早在 2012 年,就有人用全新的 4530 报告了完全相同的问题(相同的按键顺序):http://www.tomsguide.com/forum/75276-35-keys-activate-typing-help
更新:
我使用 Knoppix 启动 4530,并运行 xev 来确认这是一个硬件问题。以下是输出的摘录,您可以在其中看到序列oun<F12>
:https://gist.github.com/cellularmitosis/018d822e5ccc5c1a64e6
更新2:
好吧,我很幸运,BIOS 更新足以解决这个问题。看http://h20564.www2.hp.com/hpsc/swd/public/detail?sp4ts.oid=5060881&swItemId=ob_146941_1&swEnvOid=4059
我接受 Dmitry 的回答,因为如果 BIOS 更新没有解决问题,我接下来会尝试这样做。