Changes

first verision of ics android
= How to get the Android ICS distribution =

[[Image:Android-logo.png|left]][http://www.android.com Android] is a software stack for mobile devices that includes an operating system, middleware and key applications, that uses a modified version of the Linux kernel. It was initially developed by Android Inc., a firm later purchased by Google, and lately by the Open Handset Alliance. It allows developers to write managed code in the Java language, controlling the device via Google-developed Java libraries.

Rowboat project provides Android on OMAP35xx and DM37xx platforms and enables key processor hardware features (ARM plus NEON, DSP, 2D/3D Accelerated Graphics and others). Key differentiators among many others:

*Active and open development of a quality Android port.
*Focused on a stable, well tested and benchmarked Android port for OMAP35xx and DM37xx.
*Graphics and Multimedia performance optimizations.

= Overview of How-To =
This How-To is meant to be a starting point for people to learn build and run Android images for IGEP v2 devices as quickly and easily as possible.

= Feedback and Contributing =
At any point, if you see a mistake you can contribute to this How-To.

= Android Platform Setup Environment =
To build your Android distribution for igep v2 boards, you need to set up the build environment first.
The following part is based on Ubuntu 12.04. Beware that using a different version of Ubuntu or a different Linux distribution might need different steps to set up your environment, as it highly depends on the versions of the software packages.

== Set up the build environment under Ubuntu 12.04 Linux (32-bit x86) ==
To set up your Linux development environment, make sure you have the following:

Required Packages:
*Git 1.5.4 or newer and the GNU Privacy Guard.
*flex, bison, gperf, libsdl-dev, libesd0-dev, libwxgtk2.6-dev (optional), build-essential, zip, curl.

=== Java ===
Get Java SE 6 Update 32 (JDK) in version 6 from:
http://www.oracle.com/technetwork/java/javase/downloads/index.html

The file is called something like '''jdk-6u32-linux-i586.bin'''
In the download folder, execute the following commands:
<pre>
$ chmod u+x jdk-6u32-linux-i586.bin
$ ./jdk-6u32-linux-i586.bin
$ sudo mv jdk1.6.0_32 /usr/lib/jvm/
$ sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.6.0_32/bin/java" 1
$ sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.6.0_32/bin/javac" 1
</pre>
Do the last step as well for javap, javah, javadoc and javaws.

Afterwards set the alternatives link to the newly installed Java version:
<pre>
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac
</pre>
Do the last step as well for javap, javah, javadoc and javaws.
See also https://help.ubuntu.com/community/Java#Oracle_.28Sun.29_Java_6

=== GCC compiler ===
Apart from that you need to install a older version of gcc and c++ to be compatible with the build environment:

$ sudo apt-get install gcc-4.4-multilib g++-4.4

As root, change the softlinks in /usr/bin/ for gcc and g++, so that gcc and g++ points to version 4.4.
<pre>
user$ sudo su
root$ cd /usr/bin
root$ mv gcc gcc-old
root$ ln -s gcc-4.4 gcc
root$ mv g++ g++-old
root$ ln -s g++-4.4 g++
root$ exit
</pre>

=== Linaro Toolchain ===
To create the igep-x-loader (MLO) we need the linaro cross compile toolchain installed on our machine.
To check it if it's installed, try:
<pre>
$ arm-linux-gnueabi-gcc --version
arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.5.3-12ubuntu2) 4.5.3
</pre>

== Download the source code ==
In order to build an android image for this release, you need to download
the corresponding android repository.
<pre>
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

$ mkdir android
$ cd android
$ repo init -u git://git.isee.biz/pub/scm/android/manifest -b master -m rowboat-ics.xml
$ repo sync
</pre>

== Build the source code ==

Having downloaded the source code, you can build an igep00x0 image as such:
<pre>
$ . build/envsetup.sh
$ make TARGET_PRODUCT=igep00x0 OMAPES=5.x -j8
</pre>
0
edits