Visualizzazione post con etichetta cross-compilazione. Mostra tutti i post
Visualizzazione post con etichetta cross-compilazione. Mostra tutti i post

lunedì 23 marzo 2009

Compilare il kernel Atrmark 2.6.26 per armadillo 500

Ecco le maggiori info :)
Cercando in rete ho scoperto che su armadillo 500-FX è già ststo portato android con kernel 2.6.26.
Dato che le due macchine sono così simili a livello hardware mi è parso così strano che il kernel più aggiornato disponibile per armadillo 500 sia il solo 2.6.18.. Quindi ho cercato tra i repository dell'armadillo 500-FX i sorgenti del kernel con l'intenzione di portarlo su armadillo-500.
Il kernel disponibile era proprio il 2.6.26 e con gioia ho scoperto che esisteva anche il file di configurazione per armadillo 500! nonché tutti i sorgenti specifici della CPU board e driver della board di sviluppo!

Bene! Allora i passi per il deploiment:
1
Scaricare e decomprimere i sorgenti del kernel dai repository atmark:
$ wget http://download.atmark-techno.com/armadillo-500-fx/source/kernel/linux-2.6.26-at3.tar.gz
$ tar -xvf linux-2.6.26-at3.tar.gz
2
Configurare e compilare i sorgenti per armadillo con l'aiuto di android:
$ cd linux-2.6.26-at3
$ make armadillo500_defconfig
$ export ARCH=arm
$ export CROSS_COMPILE=[basePathAndroid]/cupcake/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-
$ make
Nota: ho usato la toolchain di cupcake, credo che anche con il branch master non abbia problemi..
3
Deploiment nella scheda:
In ./arch/arm/boot sono stati creati i file immagine del kernel: Image e compresso zImage
quindi copiando zImage nella cartella /tftp e scaricandolo nella flash attraverso hermit come nei post precedenti (indicando il nome di file zImage eh!) al reboot tutto funziona correttamente :)

Nota: il comando tftpdl da hermit della scheda, all'attivazione della periferica di rete è come se alcune volte non avesse il link attivato.. rimanendo in attesa della risposta dal server per il download.
Workaround: se da workstation eseguo il ping al'indirizzo impostato per la board il download dell'immagine, prima in attesa, parte contemporaneamente.

venerdì 6 marzo 2009

Kernel per Android..

Link di riferimento:
http://groups.google.com/group/android-kernel
Allora, la sottocartella kernel esiste in master! e perché non viene compilata????
Urc! solita ricerca in rete e vien fuori che la versione che ho non è propriamente la versione per goldfish -> attiviamo il branch giusto!
..consiglio, creiamo un'altra directory per il nostro kernel:
$ mkdir -p alberdroid/kernel-goldfish
$ cd alberdroid/kernel-goldfish
$ repo init -u git://android.git.kernel.org/kernel/common.git -b android-goldfish-2.6.27
$ repo sync
Solito tempo che passa.....
poi:
-
Edit: perché ha salvato i sorgenti in .repo/manifests ??
cmq, dal precedente codice shell
$ cd .repo/manifests
e si continua con:
-
$ export ARCH=arm
$ export CROSS_COMPILE=PATHGIUSTO/alberdroid/master/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-
$ make goldfish_defconfig
$ make
Verrà così creato un buon kernel per l'emulatore :)