首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么当我更改BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE并运行make重新配置内核时,.config不会改变?

为什么当我更改BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE并运行make重新配置内核时,.config不会改变?
EN

Stack Overflow用户
提问于 2018-03-13 15:51:11
回答 1查看 1.1K关注 0票数 0

建设7d43534625ac06ae01987113e912ffaf1aec2302后2018.02,Ubuntu 17.10主机。

我跑:

代码语言:javascript
复制
make qemu_x86_64_defconfig
printf 'BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE=\"kdb\"\n' >>.config
make olddefconfig
time make BR2_JLEVEL="$(nproc)"

其中kdb是一个具有CONFIG_KGDB=y的Linux内核配置。

然后如预期的那样:

代码语言:javascript
复制
grep '^CONFIG_KGDB=y' ./output/build/linux-4.15/.config

有匹配的。

但是我想尝试一个新的内核配置,所以我尝试:

代码语言:javascript
复制
sed -i 's/BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE=kdb/BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE=nokdb/'

其中nokdb是具有CONFIG_KGDB=n的内核配置,然后:

代码语言:javascript
复制
time make BR2_JLEVEL="$(nproc)" linux-reconfigure

然而,令我惊讶的是,内核.config并没有改变,CONFIG_KGDB=y仍然存在。

除非我这样做:

代码语言:javascript
复制
rm -f ./output/build/linux-4.15/.config
time make BR2_JLEVEL="$(nproc)" linux-reconfigure

是否有更好的方法强制重新生成内核.config,例如其他一些linux-*目标?

我不喜欢这个rm解决方案,因为它迫使我处理output内部的“内部”路径。

我希望linux-reconfigure能为我做那种再生。

如果您打开或关闭BR2_TARGET_ROOTFS_INITRAMFS,则会产生类似的行为,这会影响Linux内核的CONFIG_INITRAMFS_SOURCE选项。

http://lists.busybox.net/pipermail/buildroot/2018-March/215817.html

EN

回答 1

Stack Overflow用户

发布于 2018-03-18 08:52:55

配置文件将检查时间戳,因此在您完成之后:

代码语言:javascript
复制
touch kdb
touch nokdb
printf 'BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE=\"kdb\"\n' >>.config
make olddefconfig
time make BR2_JLEVEL="$(nproc)"

kdbnokdb具有相同的修改日期,并且内核不会在下一次重新配置:

代码语言:javascript
复制
sed -i 's/BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE=kdb/BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE=nokdb/'
time make BR2_JLEVEL="$(nproc)" linux-reconfigure

但是,如果您触摸了新的配置文件,即使不显式地使用linux-reconfigure目标,它也能工作:

代码语言:javascript
复制
touch nokdb
time make BR2_JLEVEL="$(nproc)"

或者,如果您只是编辑使用的文件,而不是指向一个新的文件,配置也会按预期更新。

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

https://stackoverflow.com/questions/49260466

复制
相关文章

相似问题

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