Siccome mi sto dilettando nella compilazione di ROM dai sorgenti, mi sono interessato al funzionamento di Linaro (visto che praticamente adopero solo ROM buildate attraverso questo tool) per cui volevo condividere questa guida con voi.
Ovviamente
non vuole essere una pretenziosa guida su come compilare le ROM dai sorgenti, bensì su come adoperare il famoso toolchain Linaro in luogo del compilatore Google.
Innanzitutto qualche cenno, giusto per capire di cosa stiamo parlando:
Cos'è un Toolchain?
Nel software, un toolchain è un set di tool di programmazione che sono usati per creare un prodotto (tipicamente un altro programma per computer o un sistema di programmi. I tools possono essere usati in una catena, così che l'output di ciascun tool diventi l'input per il seguente, ma il termine è usato ampiamente in riferimento a qualunque set di tool di sviluppo collegato.
Una toolchain di sviluppo di un semplice software consiste in un compilatore ed un collegatore per trasformare il codice sorgente in un programma eseguibile, librerie per fornire un'interfaccia al sistema operativo ed un debugger. Un prodotto complesso come un videogame necessita di tools per preparare gli effetti sonori, la musica, la textures, i modelli 3D e le animazioni, ed inoltre altri tools per combinare queste risorse al prodotto finito.
Fonte: Wikipedia
Cos'è Linaro?
Linaro è un posto dove gli ingegneri da tutto il mondo che lavorano per le compagnie tecnologiche definiscono il futuro di ARM su Linux. La compagnia è un'organizzazione ingegneristica no-profit con oltre 120 ingegneri che lavorano al consolidamento e all'ottimizzazione del software open source per le architetture ARM, inclusi i toolchain GCC, il kernel Linux, la gestione energetica ARM e l'interfaccia grafica e multimediale.
Fonte: linaro.org
In soldoni cosa si ricava dall'utilizzare Linaro? Migliori performance in quanto il codice ne risulta più snello, una durata migliore della batteria ed in generale la ROM funziona meglio.
Alcuni esempi che fanno da prova a questa tesi sono le ROM stesse, tra le quali (in questa sezione):
- https://www.androidiani.com/forum/mo...nofficial.html (rom originale la SlimKAT)
- https://www.androidiani.com/forum/mo...al-builds.html (rom originale la SlimBean)
- https://www.androidiani.com/forum/mo...rom-v-5-a.html (rom originale la CyanogenMod)
- https://www.androidiani.com/forum/mo...ly-builds.html (rom originale la CyanogenMod)
Prerequisiti
- Ambiente Linux (emulabile con una
macchina virtuale su Windows).
- Conoscenza basilare di come compilare una ROM.
- Conoscenza basilare del funzionamento del terminale.
Procedura
Recatevi nella root del vostro codice sorgente usando il terminale (nel mio caso la root è ~/system/android/).
Sempre da terminale digitate
codice:
cd prebuilts/gcc/linux-x86/arm/
Attenzione: la cartella giusta è
prebuilts, non prebuilt.
Adesso dovrete scaricare il toolchain Linaro vero e proprio, per cui eseguite sul terminale
Versione testata da me e perfettamente funzionante:
codice:
wget http://releases.linaro.org/12.11/components/android/toolchain/4.7/android-toolchain-eabi-linaro-4.7-2012.11-1-2012-11-16_21-55-58-linux-x86.tar.bz2
Ultima versione testata da me ed anch'essa funzionante alla perfezione:
codice:
wget http://releases.linaro.org/13.10/components/android/toolchain/4.7/android-toolchain-eabi-4.7-2013.10-x86.tar.bz2
Al termine del download eseguite
codice:
bunzip2 *.tar.bz2
e
Adesso aprite il vostro file manager (Nautilus se siete su Ubuntu con su Unity, Thunar se utilizzate XFCE come DE, etc) e recatevi nella cartella root del vostro codice sorgente, dopo di che aprite la cartella
build:
Col vostro editor di testo preferito (io uso gedit, ma potete usare leafpad o altro, ma
non libreoffice) aprite il file
envsetup.sh e scrollate fino alla stringa evidenziata nell'immagine (potete aiutarvi con lo strumento di ricerca parole attivabile con la combinazione ctrl+f). Modificate la stringa che trovate come lo vedete nell'immagine (inserendo il percorso del toolchain Linaro).
Salvate il documento e chiudete.
Ora potete procedere con la compilazione, enjoy!