我正在使用内核树外的LKM,我想为我的模块使用一些编译选项,比如MYLKM_CONFIG_ {something}。我知道这可以使用C预处理(#define // #ifdef // #endif)来完成。但我想知道是否有可能使用Kbuild(Kconfig文件或相关的东西)?Kconfig和LKM
还有一个问题。是否有可能make menuconfig
只适用于我的模块,而不适用于整个内核树?
谢谢。
我正在使用内核树外的LKM,我想为我的模块使用一些编译选项,比如MYLKM_CONFIG_ {something}。我知道这可以使用C预处理(#define // #ifdef // #endif)来完成。但我想知道是否有可能使用Kbuild(Kconfig文件或相关的东西)?Kconfig和LKM
还有一个问题。是否有可能make menuconfig
只适用于我的模块,而不适用于整个内核树?
谢谢。
如果用于构建树的外侧驱动器的建议报告方法(参见LDD第2章),命令应该是这样的:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
这个命令的作用是二:
$(KERNELDIR)
,它在其中找到主内核Makefile$(PWD)
,wh缓过气来尝试构建模块目标所以,如果你在你的.config复制从$(KERNELDIR)
到$(PWD)
,应该由Makefile文件解析,你应该有可用的(虽然不是所有测试您的CONFIG_LKM_ *#定义,但这听起来合乎逻辑)。
对于make menconfig
问题,关于上述解释,如果您在$(PWD)
目录中添加一些KConfig文件,它可能会有效。
嗯,感谢您的回复,但这不完全是我想知道的。问题是关于如何使用类似'.config'的项目文件以及内核的项目文件。 – 2011-05-24 13:35:12
我不认为内核支持两个'.config'文件。你将不得不从一个内核目录复制一个到你的模块目录,并在其中添加一些#defines。 – Longfield 2011-05-24 17:28:02
将第二个问题作为单独问题发布是个好主意。 – 2011-05-20 09:18:35