Buildroot 为什么当我更改BR2_LINUX_KERNEL_CUSTOM_CONFIG_文件并运行makelinux reconfigure时,KERNEL.CONFIG不会更改?
Buildroot 7D43534625AC06AE01987113E912FFAF1AEC2302018.02之后,Ubuntu 17.10主机 我运行:Buildroot 为什么当我更改BR2_LINUX_KERNEL_CUSTOM_CONFIG_文件并运行makelinux reconfigure时,KERNEL.CONFIG不会更改?,buildroot,Buildroot,Buildroot 7D43534625AC06AE01987113E912FFAF1AEC2302018.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是一种Linux内核配置,具有CO
make qemu_x86_64_defconfig
printf 'BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE=\"kdb\"\n' >>.config
make olddefconfig
time make BR2_JLEVEL="$(nproc)"
其中kdb是一种Linux内核配置,具有CONFIG\u KGDB=y
然后正如所料:
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\u KGDB=y
仍然存在
除非我这样做:
rm -f ./output/build/linux-4.15/.config
time make BR2_JLEVEL="$(nproc)" linux-reconfigure
有没有更好的方法来强制重新生成内核.config
,例如一些其他linux-*
目标
我不喜欢这个rm
解决方案,因为它迫使我处理output
中的“内部”路径
我希望linux-reconfigure
能为我完成这一再生
如果打开和关闭BR2\u TARGET\u ROOTFS\u INITRAMFS
,则会出现类似的行为,这会影响Linux内核的CONFIG\u INITRAMFS\u SOURCE
选项
将检查配置文件的时间戳,因此在执行此操作后:
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重新配置
目标,它也可以工作:
touch nokdb
time make BR2_JLEVEL="$(nproc)"
或者,如果您只是编辑使用过的文件,而不是指向新文件,那么配置也会按预期进行更新