Linux Kconfig和LKM

Linux Kconfig和LKM,linux,linux-kernel,linux-device-driver,kbuild,Linux,Linux Kernel,Linux Device Driver,Kbuild,我在内核树之外使用LKM,我想为我的模块使用一些编译选项,比如MYLKM_CONFIG{something}。我知道这可以使用C预处理define//ifdef//endif来完成。但我想知道是否可以使用Kbuild Kconfig文件或与此相关的内容 还有一个问题。是否可以只为我的模块而不是整个内核树创建menuconfig 谢谢。如果使用推荐的方法在树外构建驱动程序,请参见ldd第2章,命令应如下所示: $(MAKE) -C $(KERNELDIR) M=$(PWD) modules 此命

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

还有一个问题。是否可以只为我的模块而不是整个内核树创建menuconfig


谢谢。

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

$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
此命令的作用有两个:

C选项将当前目录更改为$KERNELDIR,在那里可以找到主内核生成文件 M选项使makefile返回当前模块开发目录$PWD,在那里它尝试构建模块目标 因此,如果您将.config从$KERNELDIR复制到$PWD,它应该由Makefile进行解析,并且您应该让所有的config_LKM_*定义都可用,虽然没有经过测试,但听起来是合乎逻辑的


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

将第二个问题作为单独的问题发布是一个好主意。谢谢您的回答,但这并不是我想知道的。问题是如何在内核的一个项目文件之外使用类似.config的项目文件。我认为内核不支持两个.config文件。您必须将一个从内核目录复制到模块目录,并在其中添加一些定义。