Salve a tutti, sono riuscito a compilare con la toolchain linaro 4.7.4 sia il kernel 3.0.72 che l'intera rom dai sorgenti Google Aosp del Samsung Galaxy Nexus.
Kernel + ramdisk:
Kernel updated to: 3.0.72 (compiled with Linaro GCC 4.7.4-2013.06.26)
Compressed zImage – LZO
Disabled ro.adb.secure
Available I/O Schedulers: Deadline – CFQ – No-op
Available CPUFreq govenor: performance – powersave – userspace – ondemand – interactive – conservative – hotplug
Enabled CIFS support
Enabled NFS support
Enabled TUN support
Fix shell adb in standard GNU/Linux
Enabled Local Version
Enabled /proc/config.gz
Enabled extract config zImage
System:
AOSP Jelly Bean 4.3 build JWR66V (compiled with Linaro GCC 4.7.4-2013.06.26)
Installato busybox
La rom non ha il root, mancano anche le google apps, se volete potete installarle tramite la recovery clockworkmod, in basso i link dei download.
Guida per l'installazione:
Installate la recovery Clockworkmod
Scaricate la rom e copiate lo zip nella sdcard
Reboot in recovery, fate wipe data/factory restore e flashate.
Download
- Galaxy-Nexus-4.3-linaro-odexed
- Galaxy-Nexus-4.3-linaro-deodexed
- Root SuperUser 1.51
- Gapps-jb-4.3
Galaxy Nexus 4.3 compilato con toolchain linaro 4.7.4 con cflags -O3
Galaxy_Nexus_4.3_linaro_odexed_02
La rom versione odexata sembra molto fluida e veloce, per aumentare la velocità del luncher, andate in Impostazioni - abilitate Opzioni sviluppatore - selezionate scala animazione finestra, transizione e animatore a 0,5x.
Ringraziamenti
- Google Android Source
- Team Progetto Linaro
- EstebanSannin
Se la mia rom vi piace ringraziatemi con una Donazione
Guida per la compilazione con i sorgenti linaro
Penso che questa guida sarà utile solo a pochi utenti, ma per la felicità di Nemis la pubblico.
- Dovete avere installato ubuntu 10.4 a 64 bit ma la compilazione va anche con ubuntu 13.04 a 64 bit testato da me e la sun java 6
- Scaricate i sorgenti aosp android 4.3, nel sito Android Developers spiega come fare
- Scaricate i sorgenti kernel del Galaxy Nexus:
- Scaricate la toolchain linaro 4.7-2013.07 (4.7.4) da xdacodice:git clone https://android.googlesource.com/kernel/omap.git cd omap git branch -a (questo comando vi elencherà le varie versioni del kernel) master * remotes/origin/android-omap-tuna-3.0-jb-mr2 remotes/origin/HEAD -> origin/master remotes/origin/android-omap-3.0 remotes/origin/android-omap-panda-3.0 remotes/origin/android-omap-steelhead-3.0-ics-aah remotes/origin/android-omap-tuna-3.0 remotes/origin/android-omap-tuna-3.0-ics-mr1 remotes/origin/android-omap-tuna-3.0-jb-mr0 remotes/origin/android-omap-tuna-3.0-jb-mr1 remotes/origin/android-omap-tuna-3.0-jb-mr1.1 remotes/origin/android-omap-tuna-3.0-jb-mr2 remotes/origin/android-omap-tuna-3.0-jb-pre1 remotes/origin/android-omap-tuna-3.0-mr0 remotes/origin/android-omap-tuna-3.0-mr0.1 remotes/origin/glass-omap-xrr02 remotes/origin/glass-omap-xrr35 remotes/origin/glass-omap-xrr64b remotes/origin/glass-omap-xrr88 remotes/origin/linux-omap-3.0 remotes/origin/master remotes/origin/sph-l700-fh05 git checkout remotes/origin/android-omap-tuna-3.0-jb-mr2 (scegliete l'ultima versione aggiornata del kernel 3.0.72 jelly bean) git checkout -b remotes/origin/android-omap-tuna-3.0-jb-mr2
- Settate le variabili per la compilazione del kernel:
- Per compilare i sorgenti google aosp, dobbiamo scaricare questa toolchain linaro 4.7.4: http://snapshots.linaro.org/android/...ux-x86.tar.bz2codice:export ARCH=arm export CROSS_COMPILE=/home/utente/Scrivania/Galaxy_Nexus/Toolchain-Linaro/arm-linux-gnueabi-linaro_4.7.4/bin/arm-unknown-linux-gnueabi- make tuna_defconfig (questo comando vi carica il config del gnexus) make menuconfig (questo comando tramite una interfaccia grafica potete selezionare e caricare i vari moduli nel kernel e modificare la configurazione) make (inizia la compilazione)
- Estraiamo e la copiamo nella cartella: sorgenti-aosp/prebuilts/gcc/linux-x86/arm/ in questa cartella ci sono le toolchain gcc di google, io per non confondermi con le altre cartelle lo chiamata arm-linaro-4.7 , ora non ci resta che modificare il file TARGET_linux-arm.mk che si trova nella cartella sorgenti-aosp/build/core/combo e andiamo a modificare il nome della cartella sul TARGET_TOOLCHAIN_ROOT,
da cosi:
a cosi:codice:# You can set TARGET_TOOLS_PREFIX to get gcc from somewhere else ifeq ($(strip $(TARGET_TOOLS_PREFIX)),) TARGET_TOOLCHAIN_ROOT := prebuilts/gcc/$(HOST_PREBUILT_TAG)/arm/arm-linux-androideabi-$(TARGET_GCC_VERSION) TARGET_TOOLS_PREFIX := $(TARGET_TOOLCHAIN_ROOT)/bin/arm-linux-androideabi- endif
Fatto questo potete iniziare a compilare seguendo le guide del sito android sourcecodice:# You can set TARGET_TOOLS_PREFIX to get gcc from somewhere else ifeq ($(strip $(TARGET_TOOLS_PREFIX)),) TARGET_TOOLCHAIN_ROOT := prebuilts/gcc/$(HOST_PREBUILT_TAG)/arm/arm-linaro-$(TARGET_GCC_VERSION) TARGET_TOOLS_PREFIX := $(TARGET_TOOLCHAIN_ROOT)/bin/arm-linux-androideabi- endif
Comando per compilare la rom aosp odexed:
Ah dimenticavo prima che finisce la compilazione dovete copiare nella system che si crea nella cartella out le blob proprietary del Galaxy Nexus che potete prendere dalla vostra rom stock 4.3, se no la rom non si avvia.codice:make DISABLE_DEXPREOPT=false WITH_DEXPREOPT=true
News:
Ho ricompilando la rom con le cflags a -O3, per impostarlo nei sorgenti ho modificato il file TARGET_linux-arm.mk da cosi:
a cosi:codice:TARGET_arm_CFLAGS := -O2 \ -fomit-frame-pointer \ -fstrict-aliasing \ -funswitch-loops # Modules can choose to compile some source as thumb. TARGET_thumb_CFLAGS := -mthumb \ -Os \ -fomit-frame-pointer \ -fno-strict-aliasing
Avevo prima provato a compilare la rom esportando solo le variabili:codice:TARGET_arm_CFLAGS := -O3 \ -fomit-frame-pointer \ -fstrict-aliasing \ -funswitch-loops # Modules can choose to compile some source as thumb. TARGET_thumb_CFLAGS := -mthumb \ -O3 \ -fomit-frame-pointer \ -fno-strict-aliasing
prima di dare il comando make, ma non ero sicuro che cosi compilava con i cflags a -O3, la compilazione si è conclusa senza errori ma non ho provato la rom.codice:export CFLAGS="-O3 -pipe" export CXXFLAGS="-O3 -pipe"
La compilazione con la modifica al file TARGET_linux-arm.mk è finita senza errori, la system.img che mi ha creato è di 259,1 Mb, invece la system.img con l'esportazione dei cflags è di 250 Mb, la stessa dimensione della system.img che avevo compilato senza i cflags -O3, quindi penso che con la modifica al file sono riuscito a compilare con i cflags -O3, non mi resta che provare la rom e fare dei test di benchmark per vedere se la rom è stata ottimizzata ed è più fluida e veloce.
Ho fatto dei test di benchmark con Antutu sulla rom compilata con i cflags -O3, con freq a 1200 e governor performance ha fatto 7830 di punteggio, più alto rispetto alla rom compilata senza cflags -O3 e della rom stock.

LinkBack URL
About LinkBacks
Ultima modifica di morfes; 30-08-13 alle
Rispondi quotando

