Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicit� Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Come eseguire Yocto Linux OS in una macchina virtuale
Scritto da Francesco Baldassarri il 20-04-2016 ore 19:03
A volte abbiamo bisogno di un ambiente di sviluppo completo per compilare, distribuire e testare le nostre soluzioni; altre volte non possiamo lavorare direttamente sull'hardware, oppure, pi semplicemente, l'SDK che ci viene fornito non sufficiente per i nostri piani di sviluppo. Potrebbe essere il caso, per esempio, di Edison o Galileo di Intel: come posso compilare interi framework, runtime e le loro dipendenze su Yocto Linux OS?
In questo articolo spiegher come creare un'immagine eseguibile di Yocto e come testarla all'interno di QEMU - un semplice emulatore di software - e come eseguirla allinterno di un Hypervisor, come Microsoft Hyper-V, sotto Windows.

PREREQUISITI PER POTER UTILIZZARE QUESTO TUTORIAL
  • Debian/Ubuntu (testato su Debian 8.2 amd64)
  • Connessione ad Internet
  • Almeno 100 GB di spazio libero su disco

PREPARAZIONE PRELIMINARE DELLA VOSTRA BUILDING MACHINE
Come root (o tramite "sudo") eseguite il seguente comando:
  1. apt-get install wget git-core unzip make gcc g++ build-essential subversion sed autoconf automake texi2html texinfo coreutils diffstat python-pysqlite2 docbook-utils libsdl1.2-dev libxml-parser-perl libgl1-mesa-dev libglu1-mesa-dev xsltproc desktop-file-utils chrpath groff libtool xterm gawk fop

Il successo del precedente comando dipende dalla versione di Ubunto/Debian che state usando. Da ultimo, per risolvere le dipendenze dei pacchetti potete eseguire "aptitude" e forzare l'installazione della corretta versione dei pacchetti che vi serve (per esempio, "aptitude install libsdl1.2-dev").
Per altre distribuzioni di Linux - come RedHat, CentOS, Fedora, SuSe, Gentoo, ecc. - io consiglio di controllare le rispettive versioni del pacchetto precedente utilizzando il gestore di pacchetto appropriato (per esempio, zypper, yum, etc.).

PRIMO PASSO: IMPOSTARE LA CARTELLA DI LAVORO
Come utente normale senza privilegi (non root)
  1. cd
  2. mkdir yocto-2.0
  3. cd yocto-2.0
  4. wget http://downloads.yoctoproject.org/releases/yocto/yocto-2.0/poky-jethro-14.0.0.tar.bz2
  5. tar xvjf poky-jethro-14.0.0.tar.bz2
  6. cd poky-jethro-14.0.0/

Potete scegliere altri development branch delle release di Yocto seguendo Yocto Project Downloads. In questo tutorial user l'attuale ultima release "Jocto Poky 2.0.14.0.0 nome in codice Jethro". Se volete procurarvi l'ultimissima release dei sorgenti Yocto potete prendere il master development branch, dovrete sostituire il comando wget con il seguente:
  1. git clone git://git.yoctoproject.org/poky.git
  2. cd poky

SECONDO PASSO: IMPOSTARE LE VARIABILI D'AMBIENTE PER LA VOSTRA SHELL DI SISTEMA
C' uno script molto semplice da usare fornito dagli sviluppatori di Yocto.
  • # . ./oe-init-build-env
Dopo aver eseguito lo script, se questo ha funzionato, la vostra posizione sar cambiata in una cartella di build che costituir il vostro nuovo spazio di lavoro. Qualcosa tipo /home/<your user>/yocto-2.0/poky-jethro-14.0.0/build/.

TERZO PASSO: IMPOSTARE BITBAKE
Eseguendo il precedente script, stato creato un file conf/local.conf .
Il file di configurazione serve per impostare BitBake, il build engine di Yocto (componente centrale di Yocto Project).
Modificate il file di configurazione di BitBake con il vostro editor di testo preferito. In questo tutorial user nano, un semplice editor di testo con interfaccia a linea di comando per gli ambienti Unix, come segue:
  1. cd conf/
  2. nano local.conf

Togliamo i commenti dalle seguenti righe:
  1. DL_DIR ?= "${TOPDIR}/downloads"
  2. SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
  3. TMPDIR ?= "${TOPDIR}/tmp"
  4. SDKMACHINE ?= "i686"

Io consiglio di inserire nell'immagine tutte le altre funzioni extra disponibili. Le immagini che si otterranno saranno piuttosto pesanti (circa 8 GB ciascuna), ma assolutamente complete e versatili al massimo per ogni esigenza di sviluppo.
  1. EXTRA_IMAGE_FEATURES = "dbg-pkgs dev-pkgs ptest-pkgs tools-sdk tools-debug eclipse-debug tools-profile tools-testapps debug-tweaks"

Ora salvate le modifiche apportate al file local.conf con la combinazione di tasti CTRL+X. Quindi:
  1. cd ..
  2. hob

Ora dovrebbe avviarsi un'istanza di Hob (l'interfaccia utente grafica basata su GTK2 per BitBake), che controller la correttezza del build system.

I2-1-.png


Ora selezionate qemux86 come macchina nel menu a discesa.

I2-2-.png


Aspettate che Hob abbia finito di analizzare la ricetta di BitBake e generi l'albero di dipendenza. Quindi, selezionate l'immagine bersaglio che volete creare tramite "seleziona una ricetta immagine" nel menu sovrastante. In questo esempio, io selezioner l'intera core image senza la GUI: core-image-full-cmdline.

I2-3-.png


Ora fate clic su "Configurazione avanzata".

I2-4-.png


Nel pannello "Tipi di immagine" lasciate Poky nel menu "Distro" se desiderate creare l'ultima release stabile. Quindi, nel campo "Tipi di immagine" selezionate il formato che vi serve: io, di solito, seleziono ".iso", ".vdi" e ".vmdk", dal momento che sono i formati pi utili e comodi da utilizzare.

I2-5-.png


Nel pannello "Output", selezionate le opzioni che meglio fanno al caso vostro. Io vi consiglio di aggiungere almeno 4GB di spazio libero di archiviazione alla vostra immagine, per popolare l'SDK per l'architettura i686 (se state lavorando con la scheda di sviluppo Edison). Inoltre, io trovo molto utile impostare "deb" come formato di impacchettamento per il file system di root. Quindi, come segue:

I2-6-.png


Bene, salvate. Ora siete pronti a creare la vostra immagine! Cliccate sul pulsante "Crea immagine"!

I2-7-.png


Hob lancer un'istanza di BitBake core-image-full-cmdline con le vostre impostazioni preferite.

I2-8-.png


Questa procedura richieder parecchio tempo per creare le immagini finali. Tuttavia, a seconda delle capacit della vostra macchina host, potete modificare il numero di core del processore da utilizzare nell'operazione di creazione, agendo su "Thread paralleli BitBake" e "Crea thread paralleli". Per modificare queste variabili dalla finestra delle impostazioni di Hob:

I2-9-.png


Infine, con Hob avete la possibilit di decidere quali pacchetti volete inserire nell'immagine che state creando. Per farlo prima di cominciare a creare l'immagine, potete selezionare "Modifica ricetta dell'immagine".

I2-10-.png


E, quindi, selezionate i pacchetti da includere utilizzando la seguente finestra:

I2-11-.png


Ora, una volta terminata la procedura di creazione, potrete provare direttamente le immagini che avete appena generato! Cliccando su "Esegui immagine", Hob lancer un'istanza di QEMU per eseguire l'immagine qemux86 appena creata.

I2-12-.png


Ma, prima, il sistema vi chieder di fornire la password per i privilegi di superutente:

I2-13-.png


Si aprir un'altra finestra della console a riga di comando UNIX per mostrare lo stato del caricamento e lo splash screen di Yocto Project OS.

I2-14-.jpg


Ora siete pronti per effettuare l'accesso all'account di root dell'immagine Yocto che avete appena creato. Ricordate: inserendo il parametro debug-tweaks nella variabile EXTRA_IMAGE_FEATURES in conf/local.conf potrete effettuare il login come root lasciando vuoto il campo della password. Altrimenti, dovrete impostare la password di root nella ricetta prima di creare l'immagine.

I2-15-.png


Ora siete pronti per cominciare a lavorare con la macchina virtuale QEMU di Yocto. Dopo aver creato l'immagine Yocto come indicato in questo tutorial, ci siamo ritrovati con 89,8 GB di spazio sui disco occupato.

I2-16-.png


Troverete le immagini generate come .iso, .vmdk, .vdi, e negli altri formati che avrete scelto, all'interno della directory
  1. ~/yocto-2.0/poky-jethro-14.0.0/build/tmp/deploy/images/qemux86/

Ora potete caricare le immagini all'interno del vostri hypervisor o emulatori preferiti (Microsoft* Hyper-V, vmWare Fusion, Virtualbox, etc.).

Per maggiori informazioni su Intel Edison leggi la guida Edison Getting Started, oppure consulta il forum. Scopri gli altri tool di sviluppo disponibili per IoT sulla Intel IoT Developer Zone.

RIFERIMENTI
Yocto Project Build System
Intel IoT Dev Zone
Intel Edison Board Getting Started guide
Precedente: Disservizi nella giornate del 12 e 13 aprile.
Successiva: Il Modbus per Intel Edison
Copyright Programmazione.it™ 1999-2017. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.196 secondi.