1

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

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

谢谢。

4

1 回答 1

0

如果您使用推荐的方法在树之外构建驱动程序(参见 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 文件,它可能会起作用。

于 2011-05-20T09:08:18.197 回答