【发布时间】:2011-09-22 19:42:02
【问题描述】:
在配置 Linux 内核时,我通常从发行版的内核配置文件开始。我经常想关闭一些条目,但它们有时无法更改,因为依赖它的其他 CONFIG 选项已启用。
我可以手动查找依赖项,这些依赖项通常都有自己的依赖项。完成所有这些操作可能会非常耗时,尤其是在您尝试关闭 CONFIG_KALLSYMS 之类的功能时。
问题:有没有一种方法可以指定您想要删除的 CONFIG 选项,并为您自动选择/取消选择所有依赖项?我查看了所有的 make 选项和脚本目录,并没有看到任何可用的东西。
更新:有人回答说make oldconfig 应该在从 .config 文件中删除(删除)所需的 CONFIG 选项后完成这项工作,但这没有用(他的回答随后消失了):
$ make oldconfig
scripts/kconfig/conf -o arch/x86/Kconfig
*
* Restart config...
*
*
* Configure standard kernel features (for small systems)
*
Configure standard kernel features (for small systems) (EMBEDDED) [N/y/?] n
Load all symbols for debugging/ksymoops (KALLSYMS) [Y/?] (NEW) y
Include all symbols in kallsyms (KALLSYMS_ALL) [Y/?] (NEW) y
Do an extra kallsyms pass (KALLSYMS_EXTRA_PASS) [N/y/?] (NEW)
它自动在前两个说“y”两个,我正在尝试找到一种自动方法来删除它们并保持它们消失。
【问题讨论】:
-
我认为你不能关闭 KALLSYMS,除非 EMBEDDED 是 y -- 如果这是你的目标,可能值得尝试
make oldconfig。 -
我加粗了问题的实质:根据需要自动选择/取消选择所有依赖项
-
我想我会检查一下,以防你试图只做你的例子。看起来 Kconfiglib 值得研究,因为它似乎了解了依赖关系:lwn.net/Articles/426013——但除此之外,我发现了对该问题的讨论,但没有解决方案。
-
这看起来很有趣。继续并将其添加为“答案”,而不仅仅是评论。这个周末我会玩它,如果没有其他人给我更好的东西,而这恰好给了我我需要的东西,我会给你赏金:)
标签: linux configuration makefile kernel