首页 > 解决方案 > 编写 Linux 键盘驱动程序

问题描述

我运行 Ubuntu,最近购买了 HP Wireless 800 键盘和鼠标。默认情况下,它们与 Linux 不兼容。幸运的是,一些传奇人物编写了这个实用程序,它允许键盘(大部分)与 Linux 一起工作。我现在的问题是,当我开始在键盘上打字时,它会挂起我的电脑几秒钟,而我的笔记本电脑的键盘却没有这样做。

我想做的是尝试改进实用程序以消除滞后。我的问题是我不知道从哪里开始。我可以编写 C 代码,但我以前从未编写过键盘驱动程序。有人可以让我从正确的方向开始,比如在哪里了解键盘如何与 Linux 内核交互?

标签: clinuxkeyboardhardware

解决方案


虽然这不是您想听到的,但说真的,去买一个像标准 USB HID 协议的像样的键盘。您链接的驱动程序是一个巨大的黑客,它通过一个草率编写的用户空间驱动程序来回路由事件,除了代码中的错误之外,它可能具有您无法真正摆脱的固有延迟。

如果你真的想为此做一个好的驱动程序,这将是一个重大的研究项目,涉及从上述代码中找出协议并可能进行进一步的实验,并涉及为此找出合适的 Linux 驱动程序层并为其编写代码。这并不是说它是不可撤销的,但是您可以做更多有趣的事情。


推荐阅读