要从源代码构建 linux 内核,我通常会执行以下操作:

make mrproper
make menuconfig
make

在 menuconfig 步骤中,我启用了一些我想内置到内核中的模块,这些模块不是默认配置文件 (defconfig) 的一部分。

现在假设我事先知道我想在 menuconfig 中启用哪些模块,但想从脚本自动化构建过程(即非交互式)。我不想在发出 make 之前手动编辑 .config 文件,因为我可能无法正确解析要安装的模块的依赖项。

有没有办法用类似的东西替换 menuconfig 步骤

make updateconfig module_name

?

PS 我不想第一次做 menuconfig 然后将更新的 .config 保存为新的默认配置。

最佳答案

make menuconfig 是可以配置 Linux 内核源代码的五个类似工具之一,这是编译源代码所需的必要早期步骤。 make menuconfig 具有菜单驱动的用户界面,允许用户选择将要编译的 Linux 内核(和其他选项)的功能。

make menuconfig 是一个工具,它将加载在 Kconfig 中定义的所有属性并创建新的 .config 。首先,您必须将您的属性添加到 Kconfig,然后它将显示在 menuconfig 中。

 Example :
 I want to add new backlight driver in kernel.
 1. open Kconfig 'drivers/video/backlight/Kconfig' and add below line---

    config BACKLIGHT_LOCOMO
    tristate "Sharp LOCOMO LCD/Backlight Driver"
    depends on SHARP_LOCOMO
    default y
    help
      If you have a Sharp Zaurus SL-5500 (Collie) or SL-5600 (Poodle) say y to
      enable the LCD/backlight driver.

    2. Add CONFIG_BACKLIGHT_LOCOMO to make file.
        obj-$(CONFIG_BACKLIGHT_LOCOMO) += locomolcd.o

现在运行 make mrproper make menuconfig 。它会显示在菜单中。

否则,您可以手动添加到 .config ' CONFIG_BACKLIGHT_LOCOMO=y '。

关于Linux 内核 : update config from command line for specific modules,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37785710/

10-09 19:32