2

我想了解 menuconfig 是如何完成的,例如:对于 linux-kernel 或 Buildroot。我所知道的是,它使用 lxdialog 作为 GUI,并且 kconfig 以某种方式承载了逻辑部分(如选择、依赖等)。

但是对话框在哪里或如何从 kconfig 文件中获取信息?互联网上似乎没有太多信息。

感谢您的支持

[我发现了什么:]

我相信kconfiglib用于加载菜单,但没有给出示例,这是如何完成的:/

4

1 回答 1

3

Kconfig包括:

  • Kconfig 文件的解析器,由 flex/bison 生成;
  • 已解析文件的内部模型 + 依赖项的业务逻辑等,您可以在 symbol.c、expr.c 等中找到。
  • 使用多个 UI 库的多个前端,每个库都有自己的源文件,例如用于 lxdialog 前端的 mconf.c;
  • lxdialog 库本身作为 kconfig 的一部分分发。

kconfiglib.py是解析器、内部模型和业务逻辑的替代实现,它可以读取 Kconfig 文件以及从 python 读取和写入 .config 文件。然而,据我所知,没有基于 kconfiglib 的前端。它也不是作为内核的一部分分发的。

最后, kconfig-frontends是 Kconfig 实现的独立克隆,它是内核的一部分。它使得在其他项目中使用 Kconfig 成为可能,而无需单独复制和维护它。

于 2014-05-15T09:07:07.920 回答