[HOW-TO] Compile nitdroid gingerbread and ics in ubuntu 64 bit 11.10
1 Attachment(s)
NITDROID WANTS YOU!
Get in the team I wrote a how-to-compile Nitdroid on Ubuntu 11.10 for errors and hints contact me and I'll update the guide HOW TO COMPILE NITDROID GINGERBREAD AND ICS IN UBUNTU 64 BIT 11.10 ***Let's begin with build environment*** 1a) Open terminal as 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 a file /etc/udev/rules.d/51-android.rules, paste this and save: # 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>" ***Now, let's prepare Nitdroid environment...*** 1b) Open a terminal as root 2b) mkdir ~/bin 3b) PATH=~/bin:$PATH 4b) curl https://dl-ssl.google.com/dl/googlesource/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 At this point my guide splits into two parts (one for gingerbread and one for the highly experimental ics branch). As stated here: http://e2e.ti.com/support/embedded/a...aspx?pi24527=2 the libs for AM35x are out, so SGX support for n14 is available now here but there is the need to tweak correctly the system to use them: http://gitorious.org/rowboat/hardwar...gx_sdk-ddk_1.8 ***Steps for Gingerbread Branch*** 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 and replace: LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) with: 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) mv /hardware/alsa_sound/Android.mk /hardware/alsa_sound/Android.mkbk ***Steps for Ice Cream Sandwich Branch*** 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 (not sure about this, have to ask e-yes because n900-userdebug does not work in ics branch and I'm not sure that full-userdebug produce the same n14_dev_snapshot content) 5c) gedit frameworks/base/libs/utils/Android.mk and replace: LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) with: 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 and add this: #include <stddef.h> after the other #include 8c) gedit external/oprofile/libpp/format_output.h and delete at line 94 only the word "mutable" 9c) gedit external/gtest/include/gtest/internal/gtest-param-util.h and add this: #include <cstddef> after the other include 10c) gedit external/llvm/lib/Support/Android.mk and add the following lines: LOCAL_C_INCLUDES += system/core/include/cutils LOCAL_SHARED_LIBRARIES := libcutil in the section "for the host" and in the section "for the device" 11c) gedit external/llvm/lib/Support/Mutex.cpp and after the other include add this: #include <threads.h> 12c) gedit external/llvm/llvm-host-build.mk and add: LOCAL_LDLIBS := -lpthread -ldl 13c) gedit external/llvm/lib/Support/Threading.cpp and after the other include add this: #include <threads.h> 14c) gedit frameworks/compile/slang/Android.mk and replace: local_cflags_for_slang := -Wno-sign-promo -Wall -Wno-unused-parameter -Werror with local_cflags_for_slang := -Wno-sign-promo -Wall -Wno-unused-parameter 15c) gedit build/core/combo/javac.mk and replace: COMMON_JAVAC := javac -J-Xmx512M -target 1.5 -Xmaxerrs 9999999 with COMMON_JAVAC := javac -J-Xmx512M -target 1.5 -source 1.5 -Xmaxerrs 9999999 16c) gedit libcore/luni/src/main/java/java/lang/Enum.java and replace: return ordinal - o.ordinal with return ordinal - o.ordinal (); 17c) gedit external/gtest/include/gtest/internal/gtest-param-util.h and add, after #include vector: #include <cstddef> ***The next steps are in common for both Gingerbread and Ics branch and have to be used AFTER the previous steps of my guide*** 1d) make -j 3 (loooong time to compile all sources) 2d) Install Eclipse Classic from here: http://www.eclipse.org/downloads/ 3d) Open Eclipse, choose your workspace folder and go to "Help" -> Install New Software 4d) Click Add in the top-right corner 5d) In the Add Repository dialog write "ADT Plugin" in the field "Name" and the following URL for the field "Location": https://dl-ssl.google.com/android/eclipse/ then click OK 6d) When the "Pending" text disappears, select the checkbox of Developer Tools and click "Next" (if it asks of unsigned software installation ignore the warning and let it continue the installation) 7d) In the next window click again Next 8d) In the next window accept all License Agreements and click on Finish 9d) Restart Eclipse. 10d) When Eclipse restart, it'll ask to download a version of Android SDK necessary for the ADT Plugin. Choose to download the latest version, not the 2.1 11d) To be able to access adb anytime and anywhere from Ubuntu's Terminal, add the following to the end of either your ~/.bashrc or ~/.profile or ~/.bash_profile configuration files: export PATH=${PATH}:/home/<yourubuntuusername>/android-sdks/tools:/home/<yourubuntuusername>/android-sdks/platform-tools 12d) Turn on the N900 in Nitdroid/Gingerbread 13d) Connect the USB cable to PC 14d) Check that N900 is recognized by the PC by typing “adb devices” in terminal...it should respond: 0123456789ABCDEF device 15d) Make the desired changes to the branch 16d) To apply your changes, do "make -j 3" again 17d) adb -p ~/nitdroid/out/target/product/n900 sync 18d) restart N900 Everytime you update your work on nitdroid files, you have only to follow the steps from 12d to 18d Hint1: If it gives “adb: command not found” you don't have android sdk properly configured, follow steps 2d-11d. If adb can't find your device, try to kill the adb server and start it again (adb kill-server and adb start-server, thanks to vakkov for hint) Hint2 (tested only for gingerbread branch): If it gives some errors about libcamera.so copy files from the zip attachment (taken from my 2.3.7 nitdroid) into out/target/product/n900/system/lib and run "make -j 3" again (thanks to vakkov for testing this solution) Credits for this guide goes to: e-yes, ammyt, Google (how-to prepare android build environment), CyanogenMod, blackjack4it, XeonDead, jdm13,vakkov,xda-developers and all the mantainers of the Nitdroid project. If I forgot someone tell me and I'll add to the credits |
Re: [HOW-TO] Compile Nitdroid and sync with N900 on Ubuntu 11.10
What is the aim of this How-To for noobs as me?? I don't even know any basis for coding! I prefer to wait for the next stable and maybe full functional release of NitDroid...even if the wait seems to be too long! :(
But thanks for this thread man, It could help some members out there! :D EDIT: did you try it yet??? |
Re: [HOW-TO] Compile Nitdroid and sync with N900 on Ubuntu 11.10
I wrote that guide by myself explaining to any developers which steps I followed to build Nitdroid 2.3.7 that is actually on my n900 ;) so, the answer to your question is yes and the aim is to let everyone that know Java to know how to compile and contribute to the project ;)
|
Re: [HOW-TO] Compile Nitdroid and sync with N900 on Ubuntu 11.10
Can you shortly describe new things at 2.3.7, comparing to the prev ones?
|
Re: [HOW-TO] Compile Nitdroid and sync with N900 on Ubuntu 11.10
By the adb sync I've noticed that 43 files were updated and I have only took a look at the system version to check that was 2.3.7 so I need more time to discover new functions ;) stay tuned ;)
|
Re: [HOW-TO] Compile Nitdroid and sync with N900 on Ubuntu 11.10
Are you using latest sources from e-eyes's Gitourious? and if so, do them include rear camera support?
I hope more people could contribute to Nitdroid as e-eyes is now tired of doing it alone. |
Re: [HOW-TO] Compile Nitdroid and sync with N900 on Ubuntu 11.10
Yes I've compiled the latest source code available on e-yes gitorious but he haven't committed yet all of his recent updates ;) so we'll wait for him ;) I can help the project by using my knowledge in Java's coding for example :)!
|
Re: [HOW-TO] Compile Nitdroid and sync with N900 on Ubuntu 11.10
Updated first post with the solution for ofono compiling problem (thanks goes to e-yes)
|
Re: [HOW-TO] Compile Nitdroid and sync with N900 on Ubuntu 11.10
...first of all ...thanks!
After this, as soon as you can, could you write a working/not working list of what you have built until now? |
Re: [HOW-TO] Compile Nitdroid and sync with N900 on Ubuntu 11.10
For now I'm just briefing the steps needed to build the latest Git release available, I know a bit of Java and also C++ and I'm talking with e-yes to help him in the project so as soon as we will have progress we will update you for sure :D! If you know Java and C++ contact him, a help will be very appreciated :D
|
All times are GMT. The time now is 19:33. |
vBulletin® Version 3.8.8