2013-01-23 11 views
6

Hai qualche idea su come creare un progetto oe con la compilazione distribuita di bitbake? Ho pensato a distcc.Compiled compile with bitbake

make chiamerà linux-gcc dal mio percorso che punta a distcc.
distcc pianificherà le attività su tutti gli host conosciuti.
-jn creerà n6 istanze di marca.
Funziona bene.
Ma ora voglio usare distcc con bitbake.
So come usare -jn con bitbake.
Basta usare export PARALLEL_MAKE=-jn

Ma come utilizzare l'esportazione PATH=~/distcc/bin:$PATH con bitbake.
Il distcc/bin DEVE stare di fronte allo $PATH.
Ma bitbake posizionerà $PATH_prepend (inserito in org.openembedded.dev/conf/bitbake.conf) davanti allo $PATH.

Oppure qualcuno ha ottenuto un altro strumento per un migliore modo di costruire distribuito con bitbake?

+0

comando esportazione sarà aggiungere il percorso dato alla variabile $ PATH e sarà attivo in quella sessione . Ma non sono chiaro riguardo al tuo problema. Potresti spiegare il tuo problema –

+0

Il problema è che so solo come usare PARALLEL_MAKE, ma quando si tratta di bitbake, chi chiama make alla fine, non ho idea di come configurarlo per funzionare come PARALLEL_MAKE. – butter

risposta

1

Un modo leggermente più BitBake di invocare build con parallelismo è di modificare local.conf e annullare il commento di BB_NUMBER_THREADS e PARALLEL_MAKE e impostare i loro valori su due volte il numero di core che si hanno. Ora, ogni volta che invochi BitBake, utilizzerà questi valori.

+0

Ho provato modi BB_NUMBER_THREADS, ma non ha avuto un grande miglioramento in una singola macchina. Sembra che il sistema operativo abbia limitato i thread di creazione – butter

11

Prova Icecream: https://github.com/icecc/icecream/blob/master/README.md

Come distcc, gelato prende la compilazione di posti di lavoro da un accumulo e lo distribuisce tra le macchine remote che consentono una configurazione in parallelo. Ma a differenza di distcc, Icecream utilizza un server centrale che pianifica dinamicamente i lavori di compilazione sul server gratuito più veloce.

Sia OpenEmbedded che Yocto Project supportano Icecream. Vedi https://git.yoctoproject.org/cgit.cgi/poky/plain/meta/classes/icecc.bbclass

Installare gelato, quindi aggiungere il seguente al vostro site.conf o local.conf

INHERIT += "icecc" 

# This value overrides PARALLEL_MAKE when ICECC is enabled 
# This would enable icecc for local and cross 
ICECC_PARALLEL_MAKE = "-j 24"