Howto build Android full source for X86 Architecture on Linux Mint for EeePC

76 views
Skip to first unread message

drew

unread,
Jan 6, 2009, 9:53:04 PM1/6/09
to android-porting
HOWTO Build Android-X86 Full Source on Linux Mint
====================================
Last Modified on 7-Jan-2009 10:20
by: Andrew John P. Young and John Clark Naldoza Jr. of www.mylinuxsupport.com/
/**
format and reference taken from Original Post by Lim,GeunSik
Lim,GeunSik's original post can be found at
http://groups.google.com/group/android-porting/browse_thread/thread/66862bdb52dac936
**/

We Summarized how to build android full source for x86 target.

0. Our development environments
a. Successful Environment (John Clark Naldoza's Setup)
- OS : Linux Mint (Ubuntu 8.10 Distribution)
Linux version 2.6.27-7-generic (buildd@palmer) (gcc version 4.3.2
(Ubuntu 4.3.2-1ubuntu11) ) #1 SMP Tue Nov 4 19:33:20 UTC 2008
- CPU Information:
processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 127
model name : AMD Athlon(tm) Processor LE-1640
stepping : 2
cpu MHz : 2699.922
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov
pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt rdtscp
lm 3dnowext 3dnow up pni cx16 lahf_lm svm extapic cr8_legacy
3dnowprefetch
bogomips : 5399.84
clflush size : 64
power management: ts fid vid ttp tm stc 100mhzsteps

- Target: Eee PC (ASUS)

b. Failed Environment due to error found at
http://groups.google.com/group/android-porting/browse_thread/thread/af3894c516f45369
- OS : Ubuntu 8.04
Linux version 2.6.24-22-generic (buildd@vernadsky) (gcc version
4.2.3 (Ubuntu 4.2.3-2ubuntu7)) #1 SMP Mon Nov 24 18:32:42 UTC 2008
- CPU Information:
processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 95
model name : AMD Athlon(tm) Processor LE-1640
stepping : 3
cpu MHz : 2600.049
cache size : 1024 KB


[Inserted By Andrew Young: Additional Steps/Required steps]

Installation of Latest Sun Java Development Kits and have Ubuntu make
it as Ubuntu's default java (instead of openjdk or GNU's java)

(reference material at http://ubuntuforums.org/showthread.php?t=201378)

$ sudo apt-get install sun-java6-jdk
$ sudo update-java-alternatives -s java-6-sun

Next, edit the JVM configuration file
Code:
$ sudo -b gedit /etc/jvm

and add the following to the top of the file
Code:
/usr/lib/jvm/java-6-sun


Install also the following using apt-get or synaptic or aptitude
g++ 4.2.3
gcc-source 4.2.3 (these are for the headers)
yyparse
flex (not adobe flex but the fast lexical analyzer generator package)
mtools
zlib1g/zlib1g-dbg/zlib1g-dev(the dbg may not be needed)
gperf
libncurses5/libncurses5-dev/libncurses5-dbg(the dbg may not be needed)

Install/copy this as well
repo (refer to http://source.android.com/download#TOC-Installing-Repo)

[end Inserted By Andrew Young: Addtional Steps/Required steps]




1. Query of Linux distribution information
$ uname -a
Linux mylinux-njclark 2.6.27-7-generic #1 SMP Tue Nov 4 19:33:20 UTC
2008 i686 GNU/Linux

$ gcc -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu
4.3.2-1ubuntu11' --with-bugurl=file:///usr/share/doc/gcc-4.3/
README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/
usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-
included-gettext --enable-threads=posix --enable-nls --with-gxx-
include-dir=/usr/include/c++/4.3 --program-suffix=-4.3 --enable-
clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --
enable-targets=all --enable-checking=release --build=i486-linux-gnu --
host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.3.2 (Ubuntu 4.3.2-1ubuntu11)

2. repo init and Sync
- You have to download android full source for x86 architecture like
ASUS Eee PC 701.
- Eee pc dev tree is "git://android.git.kernel.org/platform/vendor/
asus/eee_701.git".
$ cd ~
$ mkdir bin_x86 && cd bin_x86
$ mkdir mydroid && cd mydroid
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b
cupcake
$ repo sync
$ vi ./.repo/local_manifest.xml
<manifest>
<project name="platform/vendor/asus/eee_701" path="vendor/asus/
eee_701"/>
</manifest>

$ repo sync

cp /home/invain/bin_x86/mydroid/.repo/repo/repo /home/invain/bin/
repo

Initializing project platform/vendor/asus/eee_701 ...
remote: Counting objects: 33, done.
remote: Compressing objects: 100% (31/31), done.
remote: Total 33 (delta 2), reused 33 (delta 2)
Unpacking objects: 100% (33/33), done.
From git://android.git.kernel.org/platform/vendor/asus/eee_701
* [new branch] cupcake -> korg/cupcake
* [new branch] master -> korg/master

3. Building x86 android full source
$ TARGET_ARCH=x86 TARGET_PRODUCT=eee_701 DISABLE_DEXPREOPT=true
CC=gcc-4.2 CXX=g++-4.2 make -j2 installer_img

<Andrew's NOTE: We used the 4.2 compiler version so that we won't have
to touch any of the source headers to have a successful build/compile>

build/core/product_config.mk:207: WARNING: adding test OTA key
============================================
TARGET_PRODUCT=eee_701
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=
TARGET_BUILD_TYPE=release
TARGET_ARCH=x86
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=
============================================
build/core/main.mk:178: implicitly installing apns-conf_sdk.xml
<..
skipping all the other messages here and showing you what the last few
lines should be
..>
Filesystem did not have a UUID; generating one.

Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
/lost+found not found. Create? yes

Pass 4: Checking reference counts
Pass 5: Checking group summary information

inst_data: ***** FILE SYSTEM WAS MODIFIED *****
inst_data: 15/768 files (0.0% non-contiguous), 372786/391856 blocks
--- Finished installer data image -[ out/target/product/eee_701/
installer/installer_data.img ]-
Creating bootable installer image: out/target/product/eee_701/
installer.img
Updated inst_boot length to be 4439KB
Updated inst_data length to be 391856KB
I/diskconfig(31233): Requesting operation on a regular file, not block
device.
I/config_mbr(31233): Configuring pentry. status=0x80 type=0x83
start_lba=2048 len_lba=8878
I/config_mbr(31233): Configuring pentry. status=0x0 type=0x83
start_lba=10926 len_lba=783712
I/config_mbr(31233): Configuring pentry. status=0x0 type=0x0
start_lba=0 len_lba=0
I/config_mbr(31233): Configuring pentry. status=0x0 type=0x0
start_lba=0 len_lba=0
Copying images to specified partition offsets
I/diskutils(31233): Writing RAW image 'out/target/product/eee_701/
installer/installer_tmp.img' to 'out/target/product/eee_701/
installer.img' (offset=1048576)
I/diskutils(31233): Wrote 4545536 bytes to out/target/product/eee_701/
installer.img @ 1048576
I/diskutils(31233): Writing RAW image 'out/target/product/eee_701/
installer/installer_data.img' to 'out/target/product/eee_701/
installer.img' (offset=5594112)
I/diskutils(31233): Wrote 401260544 bytes to out/target/product/
eee_701/installer.img @ 5594112
File edit complete. Wrote 2 images.
Done with bootable installer image -[ out/target/product/eee_701/
installer.img ]-

<end of compilation message>


<we did'nt have to do any troubleshooting here so we immediately wrote
the image file to a USB>

4. Make USB Stick Installer
a. check your existing HDD's
$ fdisk -l
Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xcb3ecb3e

Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 1434 11414182+ 83 Linux
/dev/sda3 9633 9729 779152+ 82 Linux swap /
Solaris
/dev/sda4 1435 9632 65850435 5 Extended
/dev/sda5 1435 4791 26965071 83 Linux
/dev/sda6 9293 9632 2731018+ 82 Linux swap /
Solaris
/dev/sda7 4792 9101 34620043+ 83 Linux
/dev/sda8 9102 9292 1534176 82 Linux swap /
Solaris

Partition table entries are not in disk order

b. plug in your Flash Drive and do another Check to find out what
device your flashdisk is
$ fdisk -l
Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xcb3ecb3e

Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 1434 11414182+ 83 Linux
/dev/sda3 9633 9729 779152+ 82 Linux swap /
Solaris
/dev/sda4 1435 9632 65850435 5 Extended
/dev/sda5 1435 4791 26965071 83 Linux
/dev/sda6 9293 9632 2731018+ 82 Linux swap /
Solaris
/dev/sda7 4792 9101 34620043+ 83 Linux
/dev/sda8 9102 9292 1534176 82 Linux swap /
Solaris

Partition table entries are not in disk order

Disk /dev/sdb: 2013 MB, 2013265920 bytes
16 heads, 15 sectors/track, 16384 cylinders
Units = cylinders of 240 * 512 = 122880 bytes
Disk identifier: 0x00000000

Device Boot Start End Blocks Id System
/dev/sdb1 2 16384 1965952+ 6 FAT16

(Note here in our case the Flash disk turned out to be /dev/sdb1)

c. Use dd to write out the image
$ dd if=out/target/product/eee_701/installer.img of=/dev/sdb
794638+0 records in
794638+0 records out
406854656 bytes (407 MB) copied, 148.131 s, 2.7 MB/s

5. Installing Android onto the EeePC 701
(reference taken from http://virtuallyshocking.com/2008/12/20/building-android-for-the-asus-eeepc-701/)
Turn on your EeePC and do the following:
<<< REMINDER! Your EeePC's HDD will be overwritten once this procedure
is through>>>

a. BIOS Settings - Go into the BIOS settings (press F2 on boot) and
set the boot device order so that the hard drive comes first. Also
under IDE configuration set the internal flash drive to load before
any USB drives. You must also turn off the SD card reader for the
installation procedure.

b. Boot - Plug the usb stick into your Eee PC and boot from it. When
the BIOS screen comes up, press the ‘Esc’ key to get the boot menu.
Select the USB drive. You should be presented with a rudimentary
installer menu. Quickly press an arrow and select option 0
(sysloader), then press Enter.

c. Let the install run - When it’s done type “reboot” and hit enter.
Once it reboots, wait a few seconds and then the android boot screen
will appear

Enjoy!

This is a contribution by the group at http://www.mylinuxsupport.com/

Brock

unread,
Jan 6, 2009, 10:40:48 PM1/6/09
to android-porting
You know, you should at least credit me since you directly plagiarized
some of the paragraphs of my howto here:

http://virtuallyshocking.com/2008/12/20/building-android-for-the-asus-eeepc-701/

On Jan 6, 8:53 pm, drew <andrewjohnyo...@gmail.com> wrote:
>       HOWTO Build Android-X86 Full Source on Linux Mint
>      ====================================
>             Last Modified on 7-Jan-2009 10:20
> by: Andrew John P. Young and John Clark Naldoza Jr. ofwww.mylinuxsupport.com/
>       /**
>       format and reference taken from Original Post by Lim,GeunSik
>       Lim,GeunSik's original post can be found at
>      http://groups.google.com/group/android-porting/browse_thread/thread/6...
> b. Failed Environment due to error found athttp://groups.google.com/group/android-porting/browse_thread/thread/a...
> - OS : Ubuntu 8.04
>     Linux version 2.6.24-22-generic (buildd@vernadsky) (gcc version
> 4.2.3 (Ubuntu 4.2.3-2ubuntu7)) #1 SMP Mon Nov 24 18:32:42 UTC 2008
>  - CPU Information:
> processor       : 0
> vendor_id       : AuthenticAMD
> cpu family      : 15
> model           : 95
> model name      : AMD Athlon(tm) Processor LE-1640
> stepping        : 3
> cpu MHz         : 2600.049
> cache size      : 1024 KB
>
> [Inserted By Andrew Young: Additional Steps/Required steps]
>
> Installation of Latest Sun Java Development Kits and have Ubuntu make
> it as Ubuntu's default java (instead of openjdk or GNU's java)
>
> (reference material athttp://ubuntuforums.org/showthread.php?t=201378)
>
> $ sudo apt-get install sun-java6-jdk
> $ sudo update-java-alternatives -s java-6-sun
>
> Next, edit the JVM configuration file
> Code:
> $ sudo -b gedit /etc/jvm
>
> and add the following to the top of the file
> Code:
> /usr/lib/jvm/java-6-sun
>
> Install also the following using apt-get or synaptic or aptitude
> g++ 4.2.3
> gcc-source 4.2.3 (these are for the headers)
> yyparse
> flex (not adobe flex but the fast lexical analyzer generator package)
> mtools
> zlib1g/zlib1g-dbg/zlib1g-dev(the dbg may not be needed)
> gperf
> libncurses5/libncurses5-dev/libncurses5-dbg(the dbg may not be needed)
>
> Install/copy this as well
> repo (refer tohttp://source.android.com/download#TOC-Installing-Repo)
> (reference taken fromhttp://virtuallyshocking.com/2008/12/20/building-android-for-the-asus...)

Brock

unread,
Jan 6, 2009, 10:43:59 PM1/6/09
to android-porting
And I'm an ass -- sorry, I now see your reference. I've had that
article directly ripped off already by dubious sites so I'm a little
touchy. Once again, sorry.

On Jan 6, 8:53 pm, drew <andrewjohnyo...@gmail.com> wrote:
>       HOWTO Build Android-X86 Full Source on Linux Mint
>      ====================================
>             Last Modified on 7-Jan-2009 10:20
> by: Andrew John P. Young and John Clark Naldoza Jr. ofwww.mylinuxsupport.com/
>       /**
>       format and reference taken from Original Post by Lim,GeunSik
>       Lim,GeunSik's original post can be found at
>      http://groups.google.com/group/android-porting/browse_thread/thread/6...
> b. Failed Environment due to error found athttp://groups.google.com/group/android-porting/browse_thread/thread/a...
> - OS : Ubuntu 8.04
>     Linux version 2.6.24-22-generic (buildd@vernadsky) (gcc version
> 4.2.3 (Ubuntu 4.2.3-2ubuntu7)) #1 SMP Mon Nov 24 18:32:42 UTC 2008
>  - CPU Information:
> processor       : 0
> vendor_id       : AuthenticAMD
> cpu family      : 15
> model           : 95
> model name      : AMD Athlon(tm) Processor LE-1640
> stepping        : 3
> cpu MHz         : 2600.049
> cache size      : 1024 KB
>
> [Inserted By Andrew Young: Additional Steps/Required steps]
>
> Installation of Latest Sun Java Development Kits and have Ubuntu make
> it as Ubuntu's default java (instead of openjdk or GNU's java)
>
> (reference material athttp://ubuntuforums.org/showthread.php?t=201378)
>
> $ sudo apt-get install sun-java6-jdk
> $ sudo update-java-alternatives -s java-6-sun
>
> Next, edit the JVM configuration file
> Code:
> $ sudo -b gedit /etc/jvm
>
> and add the following to the top of the file
> Code:
> /usr/lib/jvm/java-6-sun
>
> Install also the following using apt-get or synaptic or aptitude
> g++ 4.2.3
> gcc-source 4.2.3 (these are for the headers)
> yyparse
> flex (not adobe flex but the fast lexical analyzer generator package)
> mtools
> zlib1g/zlib1g-dbg/zlib1g-dev(the dbg may not be needed)
> gperf
> libncurses5/libncurses5-dev/libncurses5-dbg(the dbg may not be needed)
>
> Install/copy this as well
> repo (refer tohttp://source.android.com/download#TOC-Installing-Repo)
> (reference taken fromhttp://virtuallyshocking.com/2008/12/20/building-android-for-the-asus...)

drew

unread,
Jan 7, 2009, 12:38:29 AM1/7/09
to android-porting
Peace!

No worries... we totally understand how you feel (and some of us here
experienced what you've experienced as well).

We do try our best to list out the references to give due credit where
credit should be given.

You did a great job on that article if I may say so, your article and
the articles listed on this howto really helped us to achieve the
desired result.

Sincerely,
--
Engr. Andrew John P. Young
IT Consultant/RH Technician
sn# 609003172208054
"With God Everything IS POSSIBLE"
> ...
>
> read more »

drew

unread,
Jan 12, 2009, 6:47:25 PM1/12/09
to android-porting
Peace!

This is an update on the pre-requisite stuff to install prior to
compilation

apt-get install automake build-essential libtool zlib1g-dev bison
gcc-4.2-source g++-4.2 g++-4.2-multilib gperf libncurses5-dev

this should have your system be ready to compile android :)

FYI: don't use the 64bit OS version yet, some of these applications
have not been made available in the 64bit version of Ubuntu/Linux Mint
or if they are, these application acts differently on the 32bit
version from the 64bit version.
Reply all
Reply to author
Forward
0 new messages