建设7d43534625ac06ae01987113e912ffaf1aec2302后2018.02,Ubuntu 17.10主机。
我跑:
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内核配置。
然后如预期的那样:
grep '^CONFIG_KGDB=y' ./output/build/linux-4.15/.config有匹配的。
但是我想尝试一个新的内核配置,所以我尝试:
sed -i 's/BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE=kdb/BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE=nokdb/'其中nokdb是具有CONFIG_KGDB=n的内核配置,然后:
time make BR2_JLEVEL="$(nproc)" linux-reconfigure然而,令我惊讶的是,内核.config并没有改变,CONFIG_KGDB=y仍然存在。
除非我这样做:
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
发布于 2018-03-18 08:52:55
配置文件将检查时间戳,因此在您完成之后:
touch kdb
touch nokdb
printf 'BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE=\"kdb\"\n' >>.config
make olddefconfig
time make BR2_JLEVEL="$(nproc)"kdb和nokdb具有相同的修改日期,并且内核不会在下一次重新配置:
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目标,它也能工作:
touch nokdb
time make BR2_JLEVEL="$(nproc)"或者,如果您只是编辑使用的文件,而不是指向一个新的文件,配置也会按预期更新。
https://stackoverflow.com/questions/49260466
复制相似问题