linux键盘驱动程序的源代码

时间:2016-10-07 07:33:24

标签: linux linux-kernel linux-device-driver kernel-module

我一直在为linux制作自己的键盘驱动程序。所以我来到这两个链接:usbkbd.catkbd.c

现在我 混淆了这些是当前驱动键盘的实际代码。正如我所看到的那样,atkbd.c是非常血腥的并且有转换 扫描码到密钥代码。所以它应该是代码,但我不确定。

如果atkbd.c是代码,那么其他代码是什么?

1 个答案:

答案 0 :(得分:2)

这很容易检查。我们来看看usbkbd.c。

相应的Kconfig(http://lxr.free-electrons.com/source/drivers/hid/usbhid/Kconfig#L50)说:

  

只有在您完全确定不想使用时,才会在这里说Y.   USB键盘的通用HID驱动程序,更喜欢使用   相反,键盘处于有限的引导协议模式。

     

这几乎肯定不是你想要的。这主要是有用的   嵌入式应用程序或简单的键盘。

所以它看起来不太可能是我们正在寻找的键盘驱动程序。还要检查USB_KBD的当前内核配置。配置可以在/boot目录下找到,也可以通过运行zcat /proc/config.gz找到。如果USB_KBD不存在,则您不会使用它。如果将usbkbd.c构建为模块,则值得检查它是否实际加载。 Makefile(http://lxr.free-electrons.com/source/drivers/hid/usbhid/Makefile#L10)将目标指定为usbkbd。我们可以在lsmod的输出中通过grepping来检查它是否被加载。

相比之下,atkbd.c的Kconfig(http://lxr.free-electrons.com/source/drivers/input/keyboard/Kconfig#L69)似乎更有可能:

  

如果您想使用标准AT或PS / 2键盘,请在此处说Y.平时   你需要这个,除非你有一个不同类型的键盘(USB,ADB   或其他)。这也适用于通过a连接的AT和PS / 2键盘   PS / 2转串口转换器。如果不确定,请说Y.

同时检查KEYBOARD_ATKBD的内核配置。如果是Y,则表示正在使用它。如果是M,请检查lsmod的{​​{1}}输出。