【问题标题】:Recursively disabling CONFIG dependencies on linux kernel builds递归禁用对 linux 内核构建的 CONFIG 依赖项
【发布时间】: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


【解决方案1】:

对于任何可能偶然发现这一点的人,Kconfiglib 现在位于https://github.com/ulfalizer/Kconfiglib,并且已针对撰写本文时的最新 Kconfig 版本(Linux 3.7.0-rc8)进行了优化和更新。安装也大大简化了。

更新:

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

对不起,让 Kconfiglib 比特腐烂了一段时间! :/

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

【讨论】:

    【解决方案2】:

    看起来,Ulf Magnusson 的 Kconfiglib 可以让您了解 Python 中的配置依赖关系并修改配置设置:http://lwn.net/Articles/426013——除此之外,我找到了对该问题的讨论,但没有解决方案。

    一些对 Kconfiglib 有用的项目:

    【讨论】:

      猜你喜欢
      • 2010-09-10
      • 1970-01-01
      • 2018-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-26
      • 1970-01-01
      • 2013-03-31
      相关资源
      最近更新 更多