在Linux内核版本上递归禁用CONFIG依赖项

时间:2011-06-26 01:31:03

标签: linux configuration makefile kernel

配置Linux内核时,我通常从我的发行版的内核配置文件开始。我经常想关闭一些条目,但它们有时是不可更改的,因为启用了依赖它的其他CONFIG选项。

我可以手动查找依赖项,这些依赖项通常具有自己的依赖项。通过它们完成所有操作可能非常耗时,特别是如果您尝试关闭CONFIG_KALLSYMS之类的内容。

问题:有没有办法指定您想要的CONFIG选项,并为您自动选择/解析所有依赖 ?我查看了所有make选项和scripts目录,但没有看到任何可用的内容。

更新:有人回答说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”两个前两个,我试图找到一种自动删除它们并让它们消失的方法。

2 个答案:

答案 0 :(得分:7)

对于任何可能偶然发现这一点的人来说,Kconfiglib现在位于https://github.com/ulfalizer/Kconfiglib,并且在编写完成时已经过最新的Kconfig版本(Linux 3.7.0-rc8)。安装也大大简化了。

更新

Kconfiglib现已更新为 Linux v4.0-rc3 ,测试套件以强迫模式传递。添加了一个新的option allnoconfig_y选项(用于在y期间将某些符号保留为make allnoconfig)。

很抱歉让Kconfiglib咬了一会儿! :/

随意发布您可能拥有的任何与Kconfig相关的问题(不一定与Kconfiglib相关)并将其链接到此处(或以其他方式通知我)。 Kconfig有很多不起眼的角落。

答案 1 :(得分:5)

看起来像Ulf Magnusson的Kconfiglib会让你在Python中修改配置依赖关系并修改配置设置:http://lwn.net/Articles/426013 - 除此之外,我发现了对问题的讨论,但没有解决方案。

Kconfiglib的一些有用的项目: