13

Ho un ambiente OpenEmbedded usando bitbake per fare alcune build. Volevo che succedesse qualcosa di "interattivo" in cui bitbake si fermava e chiedeva un input, poi continuava con la build ma ho scoperto che non è possibile.È possibile passare le variabili da riga di comando a una build bitbake?

Poiché non riesco a farlo, sto cercando un modo per passare dei flag aggiuntivi per la build. C'è un modo per passare in flag a una versione bitbake come l'opzione -D di gcc?

cioè:

bitbake -Dfoo=bar oe-myimage 

Così, durante il processo di generazione del oe-myimage variabile foo verrà impostato bar.

risposta

2

No, non credo che esista un meccanismo del genere. Ma si potrebbe fare qualcosa di simile

"echo "foo = \"bar\"" >local.conf 

Non sono sicuro che risolverà il vostro problema particolare o meno. Inoltre, esiste un meccanismo per le variabili locali a livello di sito: se si ha un file 'site.conf' nella propria directory home in una directory denominata .oe, bitbake lo leggerà e applicherà tali variabili all'ambiente globale per ogni build. Forse sarebbe d'aiuto? Non hai specificato esattamente quale problema stai cercando di risolvere, potrebbero esserci modi migliori.

14

-D flag non riconosciuto da bitbake. Quindi, usare il metodo sopra non funzionerà. Invece è possibile specificare i flag dalla riga di comando utilizzando i seguenti passaggi:

Dire di voler esportare la variabile foo e aspettarsi che venga riconosciuta da bitbake.

export foo="foobar" 

Sarà necessario esportare questo e informare bitbake via variabile BB_ENV_EXTRAWHITE dopo di sourcing OE-init-build-ENV. Ciò significa

. oe-init-build-env 
export foo="foobar" 
export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE foo"  

questo Whitelists variabile 'foo' per bitbake e quindi rende visibile a ricette e sottoprocesso durante la costruzione.

Dopo questo è possibile richiamare qualsiasi operazione bitbake utilizzando variabile pippo all'interno bitbake tramite espressioni come -

${foo} 
4

si può fare:

export foo="bar" 
export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE foo" 
bitbake oe-myimage 
3

Mentre non c'è niente di sbagliato con le altre risposte bitbake fa accetta un argomento --postread come documentato here. Ciò significa che è possibile scrivere tutte le variabili bitbake come si desidera in un file di configurazione temporaneo e farlo leggere dopo bitbake.conf specificando il nome del file sulla riga di comando. Ad esempio:

bitbake --read=./extra.conf 

Personalmente trovo questo più conveniente rispetto alle variabili di ambiente.