首页 文章

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

提问于
浏览
1

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

make mrproper
make menuconfig
make

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

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

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

make updateconfig module_name

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

3 回答

  • 2

    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 mrpropermake menuconfig . 它会在菜单中显示 .


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

  • 3

    我正在寻找Adding an entry to the Linux Kernel .config file的答案

    即你可以这样做:

    make CONFIG_XILINX_FIXED_DEVTREE_ADDR = y

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

  • 0

    树中有一个config脚本,允许调用者在shell中启用和禁用 .config 中的选项 . 但是它看起来不像任何依赖项解析,所以也许在使用它之后运行 make olddefconfig 是有意义的,正如其他评论所提到的那样 .

相关问题