Jump to content
Nokioteca Forum

[Guida] Compilare Nitdroid Su Ubuntu 11.10 E Sincronizzazrlo Con L'n900


Bl@ckJ@ck4IT
 Share

Recommended Posts

NITDROID WANTS YOU!

Entra nella squadra di sviluppo! Di seguito la mia guida alla compilazione di Nitdroid, Gingerbread e Ice Cream Sandwich, su Ubuntu 11.10 64 Bit! Per errori e suggerimenti contattatemi e la aggiornerò il prima possibile ;)

***Iniziamo con le impostazioni di base***

1a) Aprite un terminale come utente root

2a) add-apt-repository "deb http://archive.canonical.com/ lucid partner"

3a) add-apt-repository "ppa:ferramroberto/java" (thanks to mornage for hint)

4a) apt-get update

5a) apt-get install sun-java6-jdk

6a) apt-get install git-core gnupg flex bison gperf build-essential \

zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \

x11proto-core-dev libx11-dev libreadline-gplv2-dev lib32z-dev lib32readline-gplv2-dev \

libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \

libxml2-utils

7a) create un file /etc/udev/rules.d/51-android.rules, e incollatevi questo contenuto:

# adb protocol on passion (Nexus One)

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="<username>"

# fastboot protocol on passion (Nexus One)

SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="<username>"

# adb protocol on crespo/crespo4g (Nexus S)

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="<username>"

# fastboot protocol on crespo/crespo4g (Nexus S)

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="<username>"

***Ora passiamo all'ambiente di compilazione di Nitdroid***

1b) Aprite un Terminale come utente root

2b) mkdir ~/bin

3b) PATH=~/bin:$PATH

4b) curl https://dl-ssl.googl...e/git-repo/repo > ~/bin/repo

5b) chmod a+x ~/bin/repo

6b) cd /home/<username>/Documents (replace <username> with your Ubuntu username)

7b) mkdir nitdroid

8b) cd nitdroid

A questo punto la mia guida si divide in due parti (una per Gingerbread e una per Ice Cream Sandwich, quest'ultima indicata cone highly experimental)

N.B. Fino a quando Imagination Technologies non aggiornerà le librerie relative al nostro chip video, il SGX530 rev.121, per Ice Cream Sandwich, sarà impossibile avere un N14 usabile a causa della mancanza dell'accelerazione hardware dell'interfaccia grafica e dei giochi.

***Passi da seguire per compilare Gingerbread***

1c) repo init -u git://gitorious.org/android-n900/nitdroid_platform_manifest.git -b gingerbread

2c) repo sync

3c) source build/envsetup.sh

4c) lunch n900-userdebug

5c) gedit frameworks/base/libs/utils/Android.mk e sostituite:

LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)

con:

LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) -fpermissive

6c) gedit build/core/combo/HOST_linux-x86.mk e sostituite:

HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0

con:

HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0

7c) mv /hardware/alsa_sound/Android.mk /hardware/alsa_sound/Android.mkbk

***Passi da seguire per compilare Ice Cream Sandwich***

1c) repo init -u git://gitorious.org/android-n900/nitdroid_platform_manifest.git -b ics

2c) repo sync

3c) source build/envsetup.sh

4c) lunch full-userdebug (questa parte è ancora in fase sperimentale, non sono certo che produrrà lo stesso n14_dev_snapshot di e-yes)

5c) gedit frameworks/base/libs/utils/Android.mk e sostituite:

LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)

con:

LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) -fpermissive

6c) gedit build/core/combo/HOST_linux-x86.mk and replace

HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0

with

HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0

7c) gedit external/mesa3d/src/glsl/linker.cpp e aggiungete questo:

#include <stddef.h>

dopo gli altri #include

8c) gedit external/oprofile/libpp/format_output.h e cancellate alla linea 94 solo la parola "mutable"

9c) gedit external/gtest/include/gtest/internal/gtest-param-util.h e aggiungete questo:

#include <cstddef>

dopo gli altri #include

10c) gedit external/llvm/lib/Support/Android.mk e aggiungete le seguenti righe:

LOCAL_C_INCLUDES += system/core/include/cutils

LOCAL_SHARED_LIBRARIES := libcutil

nella sezione "for the host" e nella sezione "for the device"

11c) gedit external/llvm/lib/Support/Mutex.cpp e aggiuntete questo:

#include <threads.h>

dopo gli altri #include

12c) gedit external/llvm/llvm-host-build.mk e aggiungete:

LOCAL_LDLIBS := -lpthread -ldl

13c) gedit external/llvm/lib/Support/Threading.cpp e aggiuntete questo:

#include <threads.h>

dopo gli altri #include

14c) gedit frameworks/compile/slang/Android.mk e sostituite:

local_cflags_for_slang := -Wno-sign-promo -Wall -Wno-unused-parameter -Werror

con:

local_cflags_for_slang := -Wno-sign-promo -Wall -Wno-unused-parameter

15c) gedit build/core/combo/javac.mk e sostituite:

COMMON_JAVAC := javac -J-Xmx512M -target 1.5 -Xmaxerrs 9999999

con:

COMMON_JAVAC := javac -J-Xmx512M -target 1.5 -source 1.5 -Xmaxerrs 9999999

16c) gedit libcore/luni/src/main/java/java/lang/Enum.java e sostituite:

return ordinal - o.ordinal

con:

return ordinal - o.ordinal ();

17c) gedit external/gtest/include/gtest/internal/gtest-param-util.h e aggiungete questo:

#include <cstddef>

dopo gli altri #include

***I prossimi passi sono comuni sia a Gingerbread sia a Ics e devono essere svolti solo DOPO aver completato i passi precedenti della mia guida***

1d) make -j 3 (ci vorrà molto tempo per compilare tutto)

2d) Installate Eclipse Classic da qui:

http://www.eclipse.org/downloads/

3d) Aprite Eclipse, scegliete il vostro workspace e andate su "Help" -> Install New Software

4d) Cliccate su Add in alto a destra

5d) Nel campo Add Repository scrivete "ADT Plugin" nel campo "Name" e questo URL nel campo "Location":

https://dl-ssl.googl...ndroid/eclipse/

quindi cliccate su OK

6d) Quando sparisce il testo "Pending" selezionate la checkbox dei Developer Tools e cliccate "Next" (se vi domanda se installare software non firmati ignorate l'avviso e confermate)

7d) Nella prossima schermata premete Next

8d) Accettate tutte le Licence Agreements e cliccate su Finish

9d) Riavviate Eclipse.

10d) Quando Eclipse si sarà riaperto vi chiederà di scaricare una versione dell'Android SDK necessaria al plugin ADT. Scegliete l'ultima versione disponibile, non la 2.1

11d) Per poter usare il comando adb ovunque voi siate nel terminale aggiungete la seguente riga ai files ~/.bashrc o ~/.profile o ~/.bash_profile:

export PATH=${PATH}:/home/<yourubuntuusername>/android-sdks/tools:/home/<yourubuntuusername>/android-sdks/platform-tools

12d) Accendete l'N900 e entrate in Nitdroid

13d) Connettete l'N900 con il cavo USB al vostro PC

14d) Controllate che l'N900 sia riconosciuto da adb tramite il comando “adb devices” da terminale...dovrebbe rispondervi:

0123456789ABCDEF device

15d) Fate i cambiamenti che volete al codice sorgente

16d) Per applicarli alla distribuzione di Nitdroid fate "make -j 3" e attendete che finisca

17d) Sempre da terminale fate "adb -p ~/nitdroid/out/target/product/n900 sync"

18d) Riavviate il vostro N900

Ogni volta che vorrete lavorare sui files di Nitdroid dovrete seguire solo i passi dal 12d al 18d

Suggerimento1:

Se il Terminale vi dice “adb: command not found” non avete installato correttamente l'Android SDK, seguite attentamente i passi dal 2d al 11d

Se il comando "adb devices" non trova il vostro N900 provate a killare l'adb server e a farlo ripartire tramite i seguenti comandi:

adb kill-server and adb start-server, su suggerimento di vakkov

Suggerimento2 (testato solo su Gingerbread):

Se vi da errori riguardanti un file chiamato libcamera.so copiate il file dall'allegato del Thread (preso dal mio Nitdroid 2.3.7) nella cartella out/target/product/n900/system/lib e riprovate a fare "make -j 3" again, su suggerimento di vakkov

I crediti di questa guida vanno a:

e-yes, ammyt, Google (come preparare l'android build environment), CyanogenMod, blackjack4it, XeonDead, jdm13,vakkov,xda-developers e tutti i developers del progetto Nitdroid. Se mi sono dimenticato qualcuno ditemelo pure e lo aggiungerò ai crediti.

libcamera.zip

Edited by Bl@ckJ@ck4IT
Link to comment
Share on other sites

  • 1 month later...

Guida aggiornata, rimossa l'installazione manuale dell'Android SDK in favore di una installazione automatica tramite Eclipse biggrin.png chiedo cortesemente agli amministratori di correggere il titolo..."Sincronizzazrlo" è inguardabile biggrin.png e se possibile, di stickare questo Thread wink.png grazie e buon lavoro wink.png

EDIT: Guida nuovamente aggiornata, ho separato i passi necessari alla compilazione di Gingerbread e Ice Cream Sandwich per evitare confusione ;)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

Questo sito utilizza i cookie per analisi, contenuti personalizzati e pubblicità. Continuando la navigazione, accetti l'utilizzo dei cookie da parte nostra | Privacy Policy