我一直在为linux制作自己的键盘驱动程序。所以我来到这两个链接:usbkbd.c和atkbd.c。
现在我 混淆了这些是当前驱动键盘的实际代码。正如我所看到的那样,atkbd.c是非常血腥的并且有转换 扫描码到密钥代码。所以它应该是代码,但我不确定。
如果atkbd.c是代码,那么其他代码是什么?
答案 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}}输出。