Linux内核:从命令行更新特定模块的配置

时间:2016-06-13 09:07:42

标签: linux linux-kernel linux-device-driver

要从源代码构建linux内核,我通常会这样做:

make mrproper
make menuconfig
make

在menuconfig步骤中,我启用了一些我想在内核中构建的模块,这些模块不属于默认配置文件(defconfig)。

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

有没有办法用

之类的东西替换menuconfig步骤

make updateconfig module_name

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

4 个答案:

答案 0 :(得分:3)

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 '。

答案 1 :(得分:2)

我一直在寻找Adding an entry to the Linux Kernel .config file

的答案

即。你可以这样做:

make CONFIG_XILINX_FIXED_DEVTREE_ADDR = y

并且将编译指定的模块选项。据推测,这也会处理模块依赖性;我已经尝试了一个具有一些依赖性的模块,它似乎工作正常。

答案 2 :(得分:1)

树中还有merge_config.sh脚本,可用于将其他配置片段文件合并到您的配置中。看看this answer了解详情。

答案 3 :(得分:0)

树中有一个config脚本,允许调用者从外壳程序启用和禁用.config中的选项。不过,它似乎并没有执行任何依赖项解析,因此,如其他注释所述,使用它后运行make olddefconfig也许是有意义的。