在基于先前的配置构建新内核时,是否有一种方法可以自动执行该make oldconfig
过程,以便将新选项设置为其默认值?
编辑:我的意思是,当在较新的内核上使用.config(从/boot/config-*
或/proc/config.gz
)时,该make oldconfig
过程将询问您是否要启用旧内核中不可用的选项。您可以回答Y / n / m或按Enter接受默认值。我想在没有用户交互的情况下自动接受默认值。
在基于先前的配置构建新内核时,是否有一种方法可以自动执行该make oldconfig
过程,以便将新选项设置为其默认值?
编辑:我的意思是,当在较新的内核上使用.config(从/boot/config-*
或/proc/config.gz
)时,该make oldconfig
过程将询问您是否要启用旧内核中不可用的选项。您可以回答Y / n / m或按Enter接受默认值。我想在没有用户交互的情况下自动接受默认值。
Answers:
使用命令:
yes "" | make oldconfig
'yes'命令重复输出包含所有指定字符串的行,默认情况下为'y'。
因此,您可以使用它简单地“按Enter”,这将导致使用“ make oldconfig”命令的默认值。
make olddefconfig
是你想要的。从帮助(make help
在内核源目录中)
olddefconfig-与silentoldconfig相同,但将新符号设置为其默认值
是。它存储在源目录顶层的“ .config”中。
此外,如果使用发行版内核,则某些发行版(如RedHat)会将其存储在/ boot / config-$(uname -r)中。(内核版本)[1]
最后,如果您在运行的内核中进行编译,则可以在/proc/config.gz中找到它。我忘记了哪个版本引入了此选项。
[1]这些选项:
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
编辑
检出/usr/src/linux/kernel/Documentation/kbuild/kconfig.txt(或适当的路径)。您可以使用他们的一些建议来编写解决方案的脚本。我将结合使用脚本和textutils来完成您描述的内容。
编辑2
另外,这是一个坏主意。如果您的环境特有的可选硬件支持发生了变化但不是默认设置,该怎么办?如果发生不利影响的更改怎么办?这确实应该是交互式的。您可以进行配置并使其余部分自动化。
“ makesilentoldconfig”稍微冗长一些,可能会有所帮助。它仍然是交互式的。