要从源代码构建linux内核,我通常会这样做:
make mrproper
make menuconfig
make
在menuconfig步骤中,我启用了一些我想在内核中构建的模块,这些模块不属于默认配置文件(defconfig)。
现在假设我事先知道要在menuconfig中启用哪些模块,但希望从脚本(即非交互式)自动化构建过程。我不想在发出make之前手动编辑.config文件,因为我可能无法正确解析我想要安装的模块的依赖项。
有没有办法用
之类的东西替换menuconfig步骤make updateconfig module_name
PS我第一次不想做menuconfig,然后将更新的.config保存为新的默认配置。
答案 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
也许是有意义的。