发布
社区首页 >问答首页 >如何非交互地配置Linux内核构建?

如何非交互地配置Linux内核构建?
EN

Unix & Linux用户
提问于 2011-09-01 10:56:49
回答 3查看 6.3K关注 0票数 6

是否有任何方法以这种方式配置linux内核(仅举一个例子):

代码语言:javascript
代码运行次数:0
复制
make config CONFIG_OPTION=y && make config CONFIG_OPTION1=no CONFIG_OPTION3=64 CONFIG_OPTION4=/path/

这些配置选项的所有依赖项和替代方案都将在非交互模式下自动设置。

EN

回答 3

Unix & Linux用户

发布于 2012-09-28 20:08:30

选项I:

qconfig工具似乎达到了这个目的,尽管这取决于您喜欢哪个接口。它使用一个您希望更改的CONFIG_ directives输入文件,并对它们进行更改。我还没试过。

我还没有试过,但它看起来不像按照您所描述的那样,通过命令行参数具有接口。

选项II:

sed -i 's:CONFIG_X=y:# CONFIG_X is not set:g' .config

奇怪的是,非交互式配置似乎根本没有引起注意。当然,它在一般情况下并不适用,但是当您只需要翻转几个开关(几乎没有或没有依赖项),例如一个make目标,那么它将非常有用,比直接使用sed更方便用户,并且比维护.config-with-X.config-without-X更好。

票数 3
EN

Unix & Linux用户

发布于 2011-09-01 11:09:06

最简单的方法是使用所需的选项手工构建.config文件。当然,这需要给出所有的配置选项,因此它适用于对现有的交互式创建的.config文件所做的微小更改。

如果您要求使用当前的.config,但只通过make更改一些标志,我不知道。但是您可以尝试通过脚本编辑.config文件,然后运行make

票数 1
EN

Unix & Linux用户

发布于 2016-09-11 21:27:15

答案移至:如何编写脚本menuconfig来自动化Linux内核构建配置?

Config片段

scripts/kconfig/merge_config.sh

用法:

代码语言:javascript
代码运行次数:0
复制
git checkout v4.9

make x86_64_defconfig

grep -E 'CONFIG_(DEBUG_INFO|GDB_SCRIPTS)[= ]' .config
# # CONFIG_DEBUG_INFO is not set

# GDB_SCRIPTS depends on CONFIG_DEBUG_INFO in lib/Kconfig.debug

cat <<EOF >.config-fragment
CONFIG_DEBUG_INFO=y
CONFIG_GDB_SCRIPTS=y
EOF

# Order is important here. Must be first base config, then fragment.
./scripts/kconfig/merge_config.sh .config .config-fragment

grep -E 'CONFIG_(DEBUG_INFO|GDB_SCRIPTS)[= ]' .config
# CONFIG_DEBUG_INFO=y
# CONFIG_GDB_SCRIPTS=y

不幸的是,进程替换不起作用:

代码语言:javascript
代码运行次数:0
复制
./scripts/kconfig/merge_config.sh arch/x86/configs/x86_64_defconfig \
    <( printf 'CONFIG_DEBUG_INFO=y\nCONFIG_GDB_SCRIPTS=y\n' ) 

原因:https://unix.stackexchange.com/a/164109/32558

merge_config.shmake alldefconfig目标的简单前端。

交叉编译时,必须在运行ARCH时导出merge_config.sh,例如:

代码语言:javascript
代码运行次数:0
复制
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
make defconfig
./scripts/kconfig/merge_config.sh .config .config-fragment

Buildroot使用BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILEShttps://stackoverflow.com/questions/1414968/how-do-i-configure-the-linux-kernel-within-buildroot实现它的自动化

相关:https://stackoverflow.com/questions/7505164/how-do-you-non-interactively-turn-on-features-in-a-linux-kernel-config-file

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/19905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档