是否可以在Buildroot的.config中使用配置片段?

时间:2017-05-19 20:05:31

标签: buildroot

我正在使用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

2 个答案:

答案 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的用户表示目前不可能。