Kconfig 和 LKM

发布于 2024-11-07 18:33:53 字数 232 浏览 5 评论 0原文

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

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

谢谢。

I'm working with LKM outside the kernel tree and I want to use some compiling options for my module like MYLKM_CONFIG_{something}. I know that this can be done using the C preprocessing (#define // #ifdef // #endif). But I want to know is it possible to use Kbuild (Kconfig files or something related) for that purposes?..

And one more question. Is it possible to make menuconfig for only my module, not for the whole kernel tree?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

巴黎盛开的樱花 2024-11-14 18:33:53

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

If you use the recommanded method for building drivers outside of the tree (see ldd Chapter 2), the command should look like this:

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

The effect of this command is two:

  1. the -C option changes the current directory to the $(KERNELDIR) where it finds the main kernel Makefile
  2. the -M option makes the makefile go back your current module dev directory $(PWD), where it tries to build the modules target

So if you copy your .config from $(KERNELDIR) to $(PWD), it should be parsed by the Makefile and you should have all your CONFIG_LKM_* #defines available (not tested though, but it sounds logical).

For the make menconfig question, with regards to the above explanation, it may work if you add some KConfig files in your $(PWD) directory.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文