我正在使用Buildroot作为子模块,我想重用现有的树内defconfigs,并对我自己进行一些修改。
我只想将修改后的选项存储在配置片段中,就像我可以使用BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES
进行Linux内核配置一样。
现在我正在做类似的事情:
cd buildroot
make BR2_EXTERNAL="$(pwd)/../mypackage" qemu_x86_64_defconfig
echo '
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="../kernel_config_fragment"
BR2_ROOTFS_OVERLAY="../rootfs_overlay"
' >> .config
make
有没有更好的方法来避免使用配置片段echo
,就像我用于Linux内核配置片段一样?我希望有类似的东西:
make BR2_CONFIG_FRAG=br_config_frag
其中br_config_frag
包含以下行:
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="../kernel_config_fragment"
BR2_ROOTFS_OVERLAY="../rootfs_overlay"
然后我就能写出:
make -C buildroot BR2_CONFIG_FRAG=br_config_frag qemu_x86_64_defconfig all
这是完整的example repo。
修改
稍微改进的是将“配置片段”放在单独的文件buildroot_config_fragment
中:
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="../kernel_config_fragment"
BR2_ROOTFS_OVERLAY="../rootfs_overlay"
然后cat
:
cat ../buildroot_config_fragment >> .config
答案 0 :(得分:1)
首先注意:您的脚本应在make olddefconfig
之前运行make
,以便将所有新选项设置为其默认值,而不是以交互方式请求。
您可以通过以下方式简化脚本:
cat configs/qemu_x86_64_defconfig br_config_frag > .config
make olddefconfig
您还可以使用kconfig基础结构中的脚本support/kconfig/merge_config.sh
。但是,该脚本内部使用的make alldefconfig
目前无效 - 您需要a patch。
如果您想将BR2_CONFIG_FRAG
的支持添加到Buildroot基础架构,请随时向the Buildroot mailing list发送补丁!
答案 1 :(得分:0)
我在IRC上问道,一位似乎是活跃开发者的Yann E. Morin的用户表示目前不可能。