2011-05-18 51 views
1

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

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

谢谢。

+0

将第二个问题作为单独问题发布是个好主意。 – 2011-05-20 09:18:35

回答

0

如果用于构建树的外侧驱动器的建议报告方法(参见LDD第2章),命令应该是这样的:

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

这个命令的作用是二:

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

所以,如果你在你的.config复制从$(KERNELDIR)$(PWD),应该由Makefile文件解析,你应该有可用的(虽然不是所有测试您的CONFIG_LKM_ *#定义,但这听起来合乎逻辑)。

对于make menconfig问题,关于上述解释,如果您在$(PWD)目录中添加一些KConfig文件,它可能会有效。

+0

嗯,感谢您的回复,但这不完全是我想知道的。问题是关于如何使用类似'.config'的项目文件以及内核的项目文件。 – 2011-05-24 13:35:12

+0

我不认为内核支持两个'.config'文件。你将不得不从一个内核目录复制一个到你的模块目录,并在其中添加一些#defines。 – Longfield 2011-05-24 17:28:02

相关问题