Android: Configuring the Host PC
From OMAPpedia
How to get started building your own binaries for the Android OS on your OMAP Platform | ||||||||||
Overview | Step 1 | Step 2 | Step 3 | Step 4 | Step 5 | Step 6 | Step 7 | Step 8 | Step 9 |
- Step 1
Contents |
[edit] Linux Distribution
Ubuntu is the recommended Linux distribution for this setup. Other distributions are available, however the configurations listed in this wiki currently only covers Ubuntu.
Ubuntu is available for download at: https://help.ubuntu.com/community/Installation
Note: Around 10GB of hard disk space is required to build one release of Android.
[edit] Working behind a firewall
Refer to OMAP Platform Support Tools for more information on setting up Ubuntu's Firewall.
[edit] ARM Cross Compiler
CodeSourcery ARM Compiler should be used for building different kernel distribution and software releases on OMAP platforms. Visit www.codesourcery.com for more info.
Note 1: For L25x kernel builds, Codesourcery tool chain 2008-q3 release should be used. Quick Link - CodeSourcery G++ Lite 2008q3-72 for ARM GNU/Linux
Note 2: For L24x, L27x kernel builds, Codesourcery tool chain 2010-q1 release should be used. Quick Link - Sourcery G++ Lite 2010q1-202 for ARM GNU/Linux
Steps
- Download .tar from above link and untar to a host pc directory
wget -c http://www.codesourcery.com/sgpp/lite/arm/portal/package3696/public/arm-none-linux-gnueabi/arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 OR wget -c http://www.codesourcery.com/sgpp/lite/arm/portal/package6488/public/arm-none-linux-gnueabi/arm-2010q1-202-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 mkdir -p ${HOME}/opt tar -C ${HOME}/opt -jxf arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
- Add Compiler directory to PATH, and cross compiler prefix before build
export PATH=//bin:$PATH export CROSS_COMPILE=arm-none-linux-gnueabi-
[edit] Eclair and Froyo Release
[edit] Additional packages required for building
sudo apt-get install git-core flex bison gperf libesd0-dev zip sudo apt-get install libwxgtk2.6-dev zlib1g-dev build-essential libstdc++5 sudo apt-get install tofrodos x-dev libx11-dev libncurses5-dev sudo apt-get install sun-java5-jdk
To uninstall “sun-java6-jdk” please type:
sudo apt-get remove sun-java6-jdk
- Intrepid (8.10) users may need a newer version of libreadline:
sudo apt-get install lib32readline5-dev
- Ubuntu 9.10 users may need to install a newer version of standard C++ library
sudo apt-get install libstdc++6
- Ubuntu 9.10 users need to follow below steps to install sun-java5-jdk
#add the old Jaunty repos to /etc/apt/sources.list deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse deb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse #then run below commands sudo apt-get update sudo apt-get install sun-java5-jdk
- Ubuntu Intrepid (8.10) users need to roll back on the gcc to the 4.2 version (Intrepid comes with 4.3).
For Ubuntu® users, who previously had java6 installed might run into the following error:
************************************************************ You are attempting to build with the incorrect version of java. Your version is: java version "1.6.0_10". The correct version is: 1.5. Please follow the machine setup instructions at http://source.android.com/download ************************************************************
Try to change the default java version with the following command:
sudo update-alternatives --config java
This will show you the options you have for selecting which java version you want by default. You will have to do this for all java binaries that come with the java jdk (javac, javadoc, javah, etc).
- Libiconv
This can be downloaded from http://www.gnu.org/software/libiconv/ Follow the instructions and install to the standard location. like:
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz tar xzvf libiconv-1.13.1.tar.gz cd libiconv-1.13.1/ ./configure make sudo make install
After installing GNU libiconv for the first time, it is recommended to recompile and reinstall GNU gettext, so that it can take advantage of libiconv. On systems other than GNU/Linux, the iconv program will be internationalized only if GNU gettext has been built and installed before GNU libiconv. This means that the first time GNU libiconv is installed, we have a circular dependency between the GNU libiconv and GNU gettext packages, which can be resolved by building and installing either
first libiconv, then gettext, then libiconv again
for further information refer to the link http://www.gnu.org/software/libiconv/
- Gettext
This can be downloaded from http://www.gnu.org/software/gettext/ Follow the instructions and install to the standard location. like:
wget http://ftp.gnu.org/pub/gnu/gettext/gettext-0.18.1.1.tar.gz tar xzvf gettext-0.18.1.1.tar.gz cd gettext-0.18.1.1/ ./configure make sudo make install
for further information refer to the link http://www.gnu.org/software/gettext/
64-bit Host
On a 64-bit host, you need to force creation of 32-bit code and use the 32-bit version of libiconv and gettext. You can do the native 64-bit build and install as described above first. Then to build a 32-bit version:
./configure CFLAGS=-m32 CXXFLAGS=-m32 LDFLAGS=-m32 make sudo make install-lib libdir=/usr/local/lib32
Note: You may also need to install ia32-libs and gcc-multilib if they are not installed. Additional 32-bit compatibility libraries that may be required: lib32readline5-dev lib32z1-dev lib32stdc++6 lib32ncurses5-dev g++-multilib
[edit] Ubuntu 10.x (32 bit)
From a stock default install. openjdk is not supported, but you can try it by uncommenting the requirement in build/core/main.mk:111
Otherwise, you have to download binary-only java.
apt-get install git-core uboot-mkimage openjdk-6-jdk bison flex g++-4.4 zlib1g-dev libncurses5-dev libreadline5-dev gperf
Or you can follow these instructions. After installation, be sure to run the following commands and select the 1.5 version of the JDK.
sudo update-alternatives --config java sudo update-alternatives --config javac
[edit] Gingerbread Support
64-bit Ubuntu/Linux Distribution (kernel 2.6.35) is required by Gingerbread.
(The procedure to pull the Linux source code is given in Step 3, you are currently on the Step 1 page.)
[edit] Additional packages required for building
sudo apt-get install git-core flex bison gperf libesd0-dev zip libwxgtk2.6-dev zlib1g-dev build-essential tofrodos x-dev sudo apt-get install lib32readline5-dev libstdc++6 lib32z1 lib32z1-dev ia32-libs g++-multilib libx11-dev libncurses5-dev
Add the partner repositories and install the JDK:
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner" sudo apt-get update sudo apt-get install sun-java6-jdk
- Libiconv
This can be downloaded from http://www.gnu.org/software/libiconv/ Follow the instructions and install to the standard location. like:
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz tar xzvf libiconv-1.13.1.tar.gz cd libiconv-1.13.1/ ./configure make sudo make install
After installing GNU libiconv for the first time, it is recommended to recompile and reinstall GNU gettext, so that it can take advantage of libiconv. On systems other than GNU/Linux, the iconv program will be internationalized only if GNU gettext has been built and installed before GNU libiconv. This means that the first time GNU libiconv is installed, we have a circular dependency between the GNU libiconv and GNU gettext packages, which can be resolved by building and installing either
for further information refer to the link http://www.gnu.org/software/libiconv/
- Gettext
This can be downloaded from http://www.gnu.org/software/gettext/ Follow the instructions and install to the standard location. like:
wget http://ftp.gnu.org/pub/gnu/gettext/gettext-0.18.1.1.tar.gz tar xzvf gettext-0.18.1.1.tar.gz cd gettext-0.18.1.1/ ./configure make sudo make install
for further information refer to the link http://www.gnu.org/software/gettext/
Therefore, for systems other than GNU/Linux, first libiconv, then gettext, then libiconv again
[edit] Environment Setup
Environments may differ from one developer to the next. Below is one of many possible environment setup.
Android environment location
cd ~ mkdir android_rls cd android_rls mkdir -p bootloader mydroid myfs my_manifest export MYDROID=~/android_rls/mydroid
- bootloader -- location for your u-boot and x-loader (covered in next section)
- mydroid -- location for your android filesystem
- my_manifest -- used for locking and building specify release tags
[edit] Installing repo
For detail information regarding repo visit: Using Repo and Git
Other reference links on Git can be found in Techincal References page
Download repo to environment
$ cd ~/android_rls/mydroid $ curl $ chmod a+x repo
Previous | Home | Next |