![这个宏在linux内核代码中是什么意思?](https://linux22.com/image/1301680/%E8%BF%99%E4%B8%AA%E5%AE%8F%E5%9C%A8linux%E5%86%85%E6%A0%B8%E4%BB%A3%E7%A0%81%E4%B8%AD%E6%98%AF%E4%BB%80%E4%B9%88%E6%84%8F%E6%80%9D%EF%BC%9F.png)
我发现一个配置文件,其中有宏定义
#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_ADP5588 is not set
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_QT2160 is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_GPIO is not set
# CONFIG_KEYBOARD_TCA6416 is not set
# CONFIG_KEYBOARD_MATRIX is not set
# CONFIG_KEYBOARD_LM8323 is not set
# CONFIG_KEYBOARD_MAX7359 is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_OPENCORES is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_SUNKBD is not set
CONFIG_KEYBOARD_OMAP4=y
但是我不明白应该启用哪个宏来将 USB 键盘与 pandabord 连接?有没有关于这个配置文件宏的文档?
答案1
这些不是宏。这是在编译由“make menuconfig”或“make xconfig”等生成的内核之前生成的配置文件。
这些表明在编译内核时要构建哪些驱动程序。
‘y’ 表示内核已支持
'm' 表示该驱动程序是作为内核模块构建的
答案2
检查兼容的驱动程序代码,每个驱动程序都会在 makefile 中定义宏。根据需要选择该宏y
。m
另外,不要忘记选择键盘的依赖驱动程序,这些驱动程序可能是 USB 核心和 hid 驱动程序。
我建议您最好运行make menuconfig
适合您的架构的程序并选择您的键盘驱动程序。这将启用所有相关驱动程序。
答案3
这些不是这里的宏,而是成为生成的 include/generated/autoconf.h 中 C 代码使用的宏。
CONFIG_XXXXXX=y
将会成为#define CONFIG_XXXXXX 1
以后。CONFIG_XXXXXX=m
将会成为#define CONFIG_XXXXXX_MODULE 1
以后。
这里未定义的项目以后将不再定义#defined
。