这个宏在linux内核代码中是什么意思?

这个宏在linux内核代码中是什么意思?

我发现一个配置文件,其中有宏定义

#
# 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 中定义宏。根据需要选择该宏ym另外,不要忘记选择键盘的依赖驱动程序,这些驱动程序可能是 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

相关内容