Buildroot加速

时间:2016-05-12 08:23:40

标签: compilation buildroot

对于一个项目(Arm i.mx6),我使用buildroot来创建我的设置。 这非常有效。

我的问题是我想重新使用构建来创建安装程序。 不使用make clean选项。

我目前正在做什么:

1]。使用文件系统覆盖(A)编译buildroot

2]。搞清楚

3]。使用文件系统覆盖编译buildroot(B)

这需要很多时间。

我尝试过:

1]。使用文件系统覆盖(A)编译buildroot

2]。使用文件系统覆盖编译buildroot(B) 但是系统覆盖(A)中的文件将被插入到系统覆盖(B)中。

我需要A和B,因为在B中我有安装程序脚本和A的Tar.gz结果。 B中我不想要的是A的脚本,因为A具有B中不需要的网络设置。

2 个答案:

答案 0 :(得分:0)

据我了解,您只需要两个“独立”的根文件系统。您可以创建两个文件夹,并将它们与两个不同的配置一起使用:

cd buildroot
mkdir rootfsa
mkdir rootfsb
make O=rootfsa menuconfig
make O=rootfsa
make O=rootfsb menuconfig
make O=rootfsb

现在您有两个不同的rootfs.tar个文件:一个位于rootfsa/images,另一个位于rootfsb/images

答案 1 :(得分:0)

目前还没有一种在buildroot中实现这一目标的好方法。可以单独构建工具链,并将其用于两种构建配置。换句话说,您将有三种配置:

toolchain_defconfig
overlay_a_defconfig
overlay_b_defconfig

toolchain_defconfig应将BR2_HOST_DIR设置为指向永久位置,例如/opt/toolchain。其他配置应使用基于该位置的自定义外部工具链。

此选项仅适用于工具链本身(因此编译器和libc)。无法使用其他库扩展工具链并在构建中使用它们。

第二种可能性是启用BR2_CCACHE。 ccache能够避免大多数实际的编译步骤。这对大包(Qt,Webkit,Node,...)特别有用。

最后,如果两个配置之间的差异是覆盖,您还可以选择构建除了buildroot覆盖之外的所有内容,并编写自定义脚本以组合buildroot生成的tarball使用您的叠加层并从中创建最终的rootfs。