当根据以前的configuration构build一个新的内核时,有没有办法make oldconfig
进程自动化,以便将新选项设置为默认值?
编辑:我的意思是,当在新的内核上使用.config(来自/boot/config-*
或/proc/config.gz
)时, make oldconfig
进程会询问是否要启用那些不是在旧的内核中可用。 您可以回答Y / n / m或按回车键接受默认值。 我希望自动接受默认值,而不需要用户交互。
使用命令:
yes "" | make oldconfig
'yes'命令默认情况下会重复输出一个包含所有指定string的行,或'y'。
所以,你可以使用它来简单地“按回车”,这将导致使用“make oldconfig”命令的默认值。
make olddefconfig
是你想要的。 从帮助(在内核源代码中提供make help
)
olddefconfig – 与silentoldconfig相同,但将新符号设置为默认值
是。 它存储在源目录顶层的“.config”中。
此外,如果使用分发内核,一些分发(如RedHat)将其存储在/ boot / config – $(uname -r)中。 (内核版本)[1]
最后,如果你正在运行的内核编译,可以在/proc/config.gz中find。 我忘记了什么版本引入了这个选项。
[1]这些选项:
CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y
编辑
查看/usr/src/linux/kernel/Documentation/kbuild/kconfig.txt(或适当的path)。 您可以使用他们的一些build议来编写解决scheme。 我会使用脚本和textutils的组合来实现你所描述的。
编辑2
作为补充说明,这是一个坏主意。 如果可选硬件支持对您的环境来说是独一无二的,但是不是默认的? 如果发生负面影响的变化呢? 这真的是应该互动的东西。 您可以进行configuration并自动完成剩下的工作。
“make silentoldconfig”稍微不详细,这可能会有所帮助。 它仍然是互动的。
make silentoldconfig