2016-05-12 89 views
0

對於項目(Arm i.mx6),我使用buildroot來創建我的設置。 這工作得很好。Buildroot加速

我的問題是,我想重新使用構建來創建一個安裝程序。 不使用make clean選項。

我目前在做什麼:

1]。編譯帶有文件系統覆蓋的buildroot(A)

2]。清潔

3]。用文件系統覆蓋編譯buildroot(B)

這需要很多時間。

我曾嘗試:

1]。編譯帶有文件系統覆蓋的buildroot(A)

2]。編譯帶有文件系統覆蓋的buildroot(B) 但是然後將系統覆蓋(A)中的文件插入到系統覆蓋(B)中。

我需要A和B,因爲在BI中有安裝程序腳本和A的Tar.gz結果。 我不想在B中的是A的腳本,因爲A具有我的網絡設置不需要B.

回答

0

據我所知,你只需要兩個「獨立」的根文件系統。您可以創建兩個文件夾,並用兩種不同的CONFIGS使用它們:

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

+0

謝謝你的回答。但是,這仍然需要很長時間來編譯。我正在尋找的是:1]。編譯所有庫一次。 2]。爲rootfsa構建根文件系統。 3]。爲rootfsb構建根文件系統。 –

0

有目前不是一個真正的好辦法在buildroot中實現這一點。可以單獨構建工具鏈並將其用於兩種構建配置。換句話說,你將有三種配置:

toolchain_defconfig 
overlay_a_defconfig 
overlay_b_defconfig 

toolchain_defconfig應該設置BR2_HOST_DIR指向一個固定的位置,例如/opt/toolchain。其他配置應該使用基於該位置的自定義外部工具鏈。

該選項僅適用於工具鏈本身(so compiler and libc)。無法使用額外的庫擴展工具鏈,並在構建中使用這些庫。

第二種可能性是啓用BR2_CCACHE。 ccache能夠避免大部分實際的編譯步驟。這對大包(Qt,Webkit,Node,...)特別有用。

最後,如果你的兩個配置之間的唯一區別是覆蓋,你還必須創造一切條件,除了與buildroot的覆蓋,並編寫自定義腳本來通過buildroot的與您的疊加所產生的壓縮包相結合的選項,從中創建最終的rootfs。

+0

謝謝你的回答,在這一刻我已經決定重建只是一個生活中的事實。兩個腳本的維護將給隔夜重建帶來更大的影響。 –