【问题标题】:Kconfig and LKMKconfig 和 LKM
【发布时间】:2011-05-18 07:02:29
【问题描述】:

我正在内核树之外使用 LKM,我想为我的模块使用一些编译选项,例如 MYLKM_CONFIG_{something}。我知道这可以使用 C 预处理 (#define // #ifdef // #endif) 来完成。但我想知道是否可以为此目的使用 Kbuild(Kconfig 文件或相关文件)?..

还有一个问题。是否可以 make menuconfig 仅用于我的模块,而不用于整个内核树?

谢谢。

【问题讨论】:

  • 最好将第二个问题作为单独的问题发布。

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


【解决方案1】:

如果您使用推荐的方法在树之外构建驱动程序(参见 ldd 第 2 章),命令应如下所示:

$(MAKE) -C $(KERNELDIR) M=$(PWD) modules

这个命令的作用有两个:

  1. -C 选项将当前目录更改为$(KERNELDIR),它可以在其中找到主内核 Makefile
  2. -M 选项使 makefile 返回到您当前的模块开发目录$(PWD),它会尝试构建模块目标

因此,如果您将 .config 从 $(KERNELDIR) 复制到 $(PWD),则它应该由 Makefile 解析,并且您应该拥有所有 CONFIG_LKM_* #defines 可用(虽然未经测试,但听起来合乎逻辑)。

对于make menconfig的问题,关于上面的解释,如果你在你的$(PWD)目录下添加一些KConfig文件可能会起作用。

【讨论】:

  • 嗯,感谢您的回复,但这并不是我想知道的。问题是除了内核的项目文件之外,如何使用.config-like项目文件。
  • 我认为内核不支持两个.config 文件。您必须从内核目录复制一个到您的模块目录并在其中添加一些#defines。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-07
  • 1970-01-01
  • 1970-01-01
  • 2013-10-02
  • 1970-01-01
相关资源
最近更新 更多