Howto build Android full source for X86 Architecture like EeePC(ASUS)

7,302 views
Skip to first unread message

Lim,GeunSik

unread,
Dec 23, 2008, 10:11:27 AM12/23/08
to android-porting

HOWTO Build Android-X86 Full Source
====================================
Last Modified on 23-Dec-2008 23:10

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

0. My development environments
- OS : Ubuntu 8.10 Distribution ( 2.6.27-4-generic )
- CPU: Intel(R) Core(TM)2 Duo CPU T5750 @ 2.00GHz ( Samsung SENS
R60 Laptop )
- RAM: Samsung DDR Ram
- Target: Eee PC (ASUS)

1. Query of Linux distribution information
- At first, Prepare ASUS Eee 701 Lattop or Samsung nettop (NC01).
And then, confirm system information on your linux distribution
like belows.

$ uname -a
Linux invain-laptop 2.6.27-4-generic #1 SMP Wed Sep 24 01:30:51 UTC
2008 i686 GNU/Linux

$ gcc --version
gcc (Ubuntu 4.3.2-1ubuntu10) 4.3.2
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There
is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.



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
... A new repo command ( 1.8) is available.
... You should upgrade soon:

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 make -
j2 installer_img

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
............... Below Omission ...................


* Toouble Shooting


$ vi external/srec/tools/thirdparty/OpenFst/fst/lib/../../fst/lib/
vector-fst.h
$ vi external/srec/tools/thirdparty/OpenFst/fst/lib/symbol-table.cpp
$ vi frameworks/base/tools/aidl/aidl.cpp --> #include <stdlib.h>,
#include <string.h>
and so on......



$ vi
$ ls -lh out/target/product/eee_701/
total 753M
-rw-r--r-- 1 oedev oedev 2.5M 2008-12-20 21:23 boot.img
-rw-r--r-- 1 oedev oedev 57 2008-12-20 22:15 clean_steps.mk
drwxr-xr-x 4 oedev oedev 4.0K 2008-12-20 21:32 data
drwxr-xr-x 2 oedev oedev 4.0K 2008-12-20 19:54 grub
drwxr-xr-x 4 oedev oedev 4.0K 2008-12-20 22:36 installer
-rw-r--r-- 1 oedev oedev 388M 2008-12-20 22:38 installer.img
-rw-r--r-- 1 oedev oedev 1.9M 2008-12-20 18:45 kernel
drwxr-xr-x 12 oedev oedev 4.0K 2008-12-20 22:33 obj
-rw-r--r-- 1 oedev oedev 592K 2008-12-20 21:10 ramdisk.img
drwxr-xr-x 9 oedev oedev 4.0K 2008-12-20 21:09 root
drwxr-xr-x 4 oedev oedev 4.0K 2008-12-20 19:55 symbols
drwxr-xr-x 12 oedev oedev 4.0K 2008-12-20 21:29 system
-rw-r--r-- 1 oedev oedev 355M 2008-12-20 22:34 system.img
-rw-r--r-- 1 oedev oedev 5.0M 2008-12-20 21:32 userdata.img


$ file out/target/product/eee_701/installer.img
out/target/product/eee_701/installer.img: x86 boot sector;
GRand Unified Bootloader, stage1 version 0x3; partition 2:
ID=0x83, starthead 0, startsector 10926, 783672 sectors, code offset
0x48


$ file out/target/product/eee_701/system.img
out/target/product/eee_701/system.img: Linux rev 0.0 ext2 filesystem
data


$ file out/target/product/eee_701/userdata.img
out/target/product/eee_701/userdata.img: Linux rev 0.0 ext2 filesystem
data


$ sudo mount -o loop boot.img /mnt
total 2.5M
-rw-r--r-- 1 oedev oedev 77 2008-12-20 21:23 cmdline
-rw-r--r-- 1 oedev oedev 1.9M 2008-12-20 21:23 kernel
-rw-r--r-- 1 oedev oedev 592K 2008-12-20 21:23 ramdisk

$ cat /mnt/cmndline
console=tty0 console=ttyS1,115200n8 console=tty0
androidboot.hardware=eee_701

$ cp /mnt/ramdisk /tmp/ramdisk.gz
$ cd /tmp
$ gunzip ramdisk.gz
$ cpio -iv < ramdisk
sys
init.goldfish.rc
system
data
init.rc
proc
init
default.prop
sbin
sbin/adbd
init.eee_701.rc
lib
lib/modules
lib/modules/i915.ko
lib/modules/font.ko
lib/modules/drm.ko
lib/modules/cfbcopyarea.ko
lib/modules/cfbimgblt.ko
lib/modules/bitblit.ko
lib/modules/cfbfillrect.ko
lib/modules/softcursor.ko
lib/modules/fbcon.ko
lib/modules/atl2.ko
dev
2955 blocks

$ file /tmp/init
/tmp/init: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
statically linked, not stripped


4. Make USB Stick Installer
$ dd if=out/target/product/eee_701/installer.img of=/dev/<usbstick of
your choice>



5. Now. Enjoy X86 Android Platform!

End of Line.

Carlos Ferreyra

unread,
Dec 23, 2008, 10:36:09 AM12/23/08
to android...@googlegroups.com
Got my hands on a eee701 today, will try this as soon as I get home
and install Ubuntu!
Yesterday I tried to compile in Slack12, perhaps later I will post the
compile barf.

Thank you very much for the data!

2008/12/23 Lim,GeunSik <lee...@gmail.com>:

Rich

unread,
Dec 23, 2008, 6:45:10 PM12/23/08
to android-porting
Pix and video please!

freedom

unread,
Dec 23, 2008, 7:29:59 PM12/23/08
to android-porting

Using gcc-4.2 instead of gcc-4.3 should help avoid modifying source,
that is
$ TARGET_ARCH=x86 TARGET_PRODUCT=eee_701 DISABLE_DEXPREOPT=true
CC=gcc-4.2 CXX=g++-4.2 make ........

Android Zaurus

unread,
Dec 23, 2008, 7:35:17 PM12/23/08
to android-porting
I agree with freedom.

And recommend Ubuntu 8.04LTS instead of Ubuntu 8.10 for now.

gowtham gowda

unread,
Dec 23, 2008, 10:29:22 PM12/23/08
to android-porting
i have done all this and i have the .img files but i am not able to
create a working live usb. The grub loader seems to be going into some
kind of loop. How do i get past that ? any ideas?

Gowtham

gowtham gowda

unread,
Dec 23, 2008, 10:29:38 PM12/23/08
to android-porting
i have done all this and i have the .img files but i am not able to
create a working live usb. The grub loader seems to be going into some
kind of loop. How do i get past that ? any ideas?

Gowtham

On Dec 23, 10:11 am, "Lim,GeunSik" <lee...@gmail.com> wrote:

Carlos Ferreyra

unread,
Dec 24, 2008, 7:56:39 AM12/24/08
to android...@googlegroups.com
Got this error trying to compile in Slackware 12.

I know, I know I should do this in Ubuntu, but I'm a Slackware die hard!

----------------------------------------

cryptic@marlbo:~/src/android$ TARGET_ARCH=x86 TARGET_PRODUCT=eee_701
DISABLE_DEXPREOPT=true make -


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

cryptic@marlbo:~/src/android$ TARGET_ARCH=x86 TARGET_PRODUCT=eee_701
DISABLE_DEXPREOPT=true make -


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

cryptic@marlbo:~/src/android$ TARGET_ARCH=x86 TARGET_PRODUCT=eee_701
DISABLE_DEXPREOPT=true make -j2 installer_img


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

host Executable: acp (out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp)
host SharedLib: libESR_Shared (out/host/linux-x86/obj/lib/libESR_Shared.so)
true
host Executable: aapt
(out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt)
host SharedLib: libneo_cs (out/host/linux-x86/obj/lib/libneo_cs.so)
Symlink: out/target/product/eee_701/system/bin/dumpcrash -> dumpstate
true
host Executable: apriori
(out/host/linux-x86/obj/EXECUTABLES/apriori_intermediates/apriori)
host Executable: bsdiff
(out/host/linux-x86/obj/EXECUTABLES/bsdiff_intermediates/bsdiff)
true
host Executable: bspatch
(out/host/linux-x86/obj/EXECUTABLES/bspatch_intermediates/bspatch)
true
true
host Executable: dexdump
(out/host/linux-x86/obj/EXECUTABLES/dexdump_intermediates/dexdump)
host Executable: dexlist
(out/host/linux-x86/obj/EXECUTABLES/dexlist_intermediates/dexlist)
true
host Executable: dump_diskconfig
(out/host/linux-x86/obj/EXECUTABLES/dump_diskconfig_intermediates/dump_diskconfig)
true
host Executable: editdisklbl
(out/host/linux-x86/obj/EXECUTABLES/editdisklbl_intermediates/editdisklbl)
true
true
host Executable: sqlite3
(out/host/linux-x86/obj/EXECUTABLES/sqlite3_intermediates/sqlite3)
target StaticLib: libbz
(out/target/product/eee_701/obj/STATIC_LIBRARIES/libbz_intermediates/libbz.a)
target StaticLib: libdrm2
(out/target/product/eee_701/obj/STATIC_LIBRARIES/libdrm2_intermediates/libdrm2.a)
/usr/lib/gcc/i486-slackware-linux/4.1.2/../../../libreadline.so:
undefined reference to `PC'
/usr/lib/gcc/i486-slackware-linux/4.1.2/../../../libreadline.so:
undefined reference to `tgetflag'
/usr/lib/gcc/i486-slackware-linux/4.1.2/../../../libreadline.so:
undefined reference to `tgetent'
/usr/lib/gcc/i486-slackware-linux/4.1.2/../../../libreadline.so:
undefined reference to `UP'
/usr/lib/gcc/i486-slackware-linux/4.1.2/../../../libreadline.so:
undefined reference to `tputs'
/usr/lib/gcc/i486-slackware-linux/4.1.2/../../../libreadline.so:
undefined reference to `tgoto'
/usr/lib/gcc/i486-slackware-linux/4.1.2/../../../libreadline.so:
undefined reference to `tgetnum'
/usr/lib/gcc/i486-slackware-linux/4.1.2/../../../libreadline.so:
undefined reference to `BC'
/usr/lib/gcc/i486-slackware-linux/4.1.2/../../../libreadline.so:
undefined reference to `tgetstr'
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/EXECUTABLES/sqlite3_intermediates/sqlite3]
Error 1
make: *** Waiting for unfinished jobs....

----------------------------------------

Rich

unread,
Dec 24, 2008, 9:12:46 PM12/24/08
to android-porting
Seriously.. video, please? I'm really interested in how good this
looks.

rams

unread,
Dec 25, 2008, 8:45:58 AM12/25/08
to android...@googlegroups.com
Hi All,

Will these steps work for a Desktop PC
<Intel Dual Core, Ubuntu 8.10>
without affecting anything in my harddisk?

Please help.

Thanks
Ram.

gowtham gowda

unread,
Dec 25, 2008, 9:50:54 AM12/25/08
to android-porting
depends on how you build it. use the make-live script and it should
create a live usb which will not affect the internal hdd.

On Dec 25, 8:45 am, rams <plram2...@gmail.com> wrote:
> Hi All,
>
> Will these steps work for a Desktop PC
> <Intel Dual Core, Ubuntu 8.10>
> without affecting anything in my harddisk?
>
> Please help.
>
> Thanks
> Ram.
>

rams

unread,
Dec 25, 2008, 9:52:59 AM12/25/08
to android...@googlegroups.com
Hi Gowtham,

Thanks for the reply.
Where is the live script available?

Ram

gowtham gowda

unread,
Dec 25, 2008, 9:55:04 AM12/25/08
to android...@googlegroups.com

Anson Zhang

unread,
Dec 25, 2008, 8:15:54 PM12/25/08
to android...@googlegroups.com, android-porti...@googlegroups.com
winmail.dat

Stargatto

unread,
Dec 26, 2008, 7:58:36 AM12/26/08
to android-porting
Ok, after some work I get installer.img from android sources.

I'm trying to use it on 1) QEMU x86 version 2) a generic x86 PC (not
Asus eee).

In the first case linux kernel loads, but the installer stops trying
to lauch init script
(I guess there are some scripts to modify to permit android to work
properly on
an emulated environment). In particular, I obtain something like
init: Unable to open persistent property directory /data/property
errno:2
installer : waiting for device: /dev/block/sdb2

The secondo case in more interesting. I've used make-live script to
copy installer.img
on an USB hard drive. Android kernel and init scripts start without
problems.

The problem is that after the first loading I obtain a "black screen",
but with ALT+F1
I can use the sh prompt. I think that the black screen appears because
I haven't an
Intel 915 video card on the pc...but I'm not really sure.

Any tips or suggestion?

On 25 Dic, 15:55, "gowtham gowda" <gowth...@gmail.com> wrote:
> http://code.google.com/p/android/issues/detail?id=1598
>

freedom

unread,
Dec 26, 2008, 8:59:24 AM12/26/08
to android-porting

for the first case, most likely your USB hard drive is not /dev/block/
sdb, to use it to install Android on your system, kill the /system/bin/
installer process and run '/system/bin/installer -p /dev/block/
WHAT_YOUR_HARDDRIVE_IS2' (e.g., my USB stick is sdd, I use /dev/block/
sdd2)

for the second case, I think what you guessed is right. To be sure of
it, if you got ethernet, 'adb logcat' could help you. To build
required modules, you may wanna read 'vendor/asus/eee_701/modules/
module.versions', check out android-2.6.25 kernel, and start from
'vendor/asus/eee_701/kernel.config'.

rams

unread,
Dec 26, 2008, 9:52:26 AM12/26/08
to android...@googlegroups.com
Hi All,

Can anyone please clarify my doubts?

1) Android SDK & Sources : What we get from google
contains a built Emulator along with ramdisk, data & system imgs.
It is an ARM Emulator (QEMU) which emulates a ARM processor architecture.

2) Android Sources : When we get android sources, run . ./envsetup.sh
& lunch 1, It gives the Emulated ARM Environment (QEMU).

3) A generic x86 PC: This is the build which will make Android to work
on X86 architectures like Asus ePC, Normal Desktop etc. We have the
live script to make it and run.

4) QEMU x86 version: Is this the QEMU emulated environment of Android
running on X86? What are the steps to make it work? choosecombo steps?

Is my understanding right?

Thanks,
Ram.

Chen Yang

unread,
Dec 26, 2008, 9:53:13 AM12/26/08
to android...@googlegroups.com
For use on qemu or generic PC, you may need to compile the kernel with VESA Frame buffer support and specify the VESA mode when boot: vga=788 (800x600, that may be a good resolution, 785 for 640x480, 791 for 1024x768). You can add it in grub's menu.lst
For disk file with qemu, it may be possible to use dd image of  the make-live script created usb disk. I haven't tried yet, but it may be possible.
--
 Chen

Carlos Ferreyra

unread,
Dec 26, 2008, 1:14:47 PM12/26/08
to android...@googlegroups.com
Finally managed to compile sources and run the installer on my eee.

I'm having now these problems:

1) The first few times I try to use the keyboard I get this error:

The application Sample Soft Keyboard (process
com.example.android.softkeyboard) has stopped unexpectedly. Please try
again.

The logcat shows this error:

W/InputMethodManager( 1968): IME died:
com.example.android.softkeyboard/.SoftKeyboard dropping:
KeyEvent{action=1 code=66 repeat=0 meta=0 scancode=28 mFlags=0}
W/InputMethodManager( 1968): android.os.DeadObjectException

I run logcat and the same happens with some other keys.

2) If I try to activate WiFi, the UI says "Unable to start WI-FI" and
the logcat shows the error:

E/WifiService( 1935): Failed to load Wi-Fi driver.

3) I read in other posts that Android doesn't support a mouse pointer
but the mouse events should be handled nevertheless. Is that so?
Because I tried and there are neither responses to mouse events in the
UI nor the logcat.

Finally, where can I find info on how to troubleshoot a running system
(I only know the logcat so far)?

Thank you very much for your help.

Carlos.

Andriod Developer

unread,
Dec 26, 2008, 1:58:25 PM12/26/08
to android-porting
Thanks Lee for the detailed instructions. Do you know if this build
works in Virtual Environment(like VMWare or VirtualBox?).
What changes do I need to make if I need to run this in virtual
environment?

Also, Do you know if the vanilla cupcake branch will work for the
virtual environment? Or do I need to pull in the Asus tree?

Thanks

Dima Zavin

unread,
Dec 26, 2008, 7:10:42 PM12/26/08
to android...@googlegroups.com
1) Android SDK & Sources : What we get from google
contains a built Emulator along with ramdisk, data & system imgs.
It is an ARM Emulator (QEMU) which emulates a ARM processor architecture.

Yes.
 
2) Android Sources : When we get android sources, run . ./envsetup.sh
& lunch 1, It gives the Emulated ARM Environment (QEMU).

(I dont remember which lunch selection it is but,) yes the qemu from the android tree only supports ARM tergets at this point.
 
3) A generic x86 PC: This is the build which will make Android to work
on X86 architectures like Asus ePC, Normal Desktop etc. We have the
live script to make it and run.

There is no support for generic PCs, but it should be possible to create a more generic x86 target without a kernel, no installer, but just a basic ramdisk and system image.

There is some basic support for EeePC 701, though others have had success running it on other similar hardware (building your own kernel might be necessary). Common issue is the lack of correct framebuffer drivers. As someone suggested on this thread, try building the kernel with vesafb to make it easier for bringup. 


4) QEMU x86 version: Is this the QEMU emulated environment of Android
running on X86? What are the steps to make it work? choosecombo steps?

QEMU provided runs ON x86, but only runs ARM target code.

Hope this helps.
 
--Dima

Chen Yang

unread,
Dec 26, 2008, 8:43:09 PM12/26/08
to android...@googlegroups.com
I have managed to run it under both Vmware and Virtualbox. You need to compile the kernel with proper driver: vesafb, ethernet, scsci or ide, etc.
You may be able to use the dd image of the make-live created usb key.
--
 Chen

Andriod Developer

unread,
Dec 27, 2008, 4:57:50 AM12/27/08
to android-porting
Hi Chen, could u pls list the steps to do this(i.e. running the image
in virtualbox)?
thanks
Sri

On Dec 26, 5:43 pm, "Chen Yang" <sunsety...@gmail.com> wrote:
> I have managed to run it under both Vmware and Virtualbox. You need to
> compile the kernel with proper driver: vesafb, ethernet, scsci or ide, etc.
> You may be able to use the dd image of the make-live created usb key.
> --
>  Chen
> --
> Yang, Chen- Hide quoted text -
>
> - Show quoted text -

Piethein Strengholt

unread,
Dec 27, 2008, 5:34:10 AM12/27/08
to android-porting
Could you drop the vmware file at some place? I'm willing to share it
on my fast internet connection. Would be very nice to have a look at
Android running on X86 hardware!

On Dec 27, 2:43 am, "Chen Yang" <sunsety...@gmail.com> wrote:
> I have managed to run it under both Vmware and Virtualbox. You need to
> compile the kernel with proper driver: vesafb, ethernet, scsci or ide, etc.
> You may be able to use the dd image of the make-live created usb key.
> --
>  Chen
> --
> Yang, Chen

Piethein Strengholt

unread,
Dec 27, 2008, 6:58:54 AM12/27/08
to android-porting
I think by editing the /vendor/asus/eee_701/kernel.config file

Add these lines:

CONFIG_FB_VESA=y
CONFIG_HAVE_IDE=y

And try to compile everything again.

Stargatto

unread,
Dec 27, 2008, 7:52:18 AM12/27/08
to android-porting
Yes, it finally WORKS!

I've compiled a kernel 2.6.25 with vesa fb and radeon fb actived,
(take it here: www.dei.unipd.it/~rossicar/kernel)
you can overwrite standard eee kernel located in mydroid/vendor/asus/
eee_701/
and add "vga=" option during grub boot or in menu.lst
Thanks to freedom, Chen Yang and Lim for the guidelines

Problems?
1) at high resolutions android doesn't work very well (using vga=794)
2) low screen refresh rates (obvious, is a framebuffer...)
3) no mouse support
4) buggy keyboard support
5) no network support
6) dialer function doesn't work.. ;-)


Dima Zavin

unread,
Dec 27, 2008, 10:50:00 AM12/27/08
to android...@googlegroups.com
Problems?
1) at high resolutions android doesn't work very well (using vga=794)

There is no hardware acceleration whatsoever for this target. You are running at high resolution, and forcing the CPU to copy lots of data around for every frame. Also, the assets in the framework are all designed to look good on HVGA, and you are asking them to look good on 1280x1024 :)
 
2) low screen refresh rates (obvious, is a framebuffer...)
 
You probably mean low framerate. Framebuffer itself is not the problem. As stated above, you running in pure software mode, so composition will be pretty slow since you have to copy stuff around a few times before you finally copy it into the framebuffer. And by copy, I mean memcpy() the data around, no DMA or hardware blitters, or anything. With some basic hw support, this will be improved dramatically.

3) no mouse support

It's not designed to work with a mouse at this point. There is no support for a maintaining a cursor's position, or drawing a cursor on the screen. Remember, we are running an environment that is currently only supported on a touchscreen mobile handset. Hopefully, non-handset usage will improve as people submit patches, work more on the mid profile, and generally drive the platform on non-handsets forward.
You should note though, that plugging in a USB mouse generally should work, and will act as a "trackball" like you have on the G1.

4) buggy keyboard support

You need the correct keymap for your keyboard. Specfifically, menu/back/home keys need to be properly mapped.
 
5) no network support

Your kernel is missing the proper network drivers.
 

6) dialer function doesn't work.. ;-)

What did you expect it to do? ;)
 
Good to see that you made some progress.

--Dima






Andriod Developer

unread,
Dec 27, 2008, 8:44:11 PM12/27/08
to android-porting
I modified the kernel.config file and restarted my build again. I
assume virtualbox needs a .iso file for installation. How do i convert
installer.img to .iso file?
is there any other way of doing this? I want to run Android in
virtualbox (running on XP pc).

On Dec 27, 3:58 am, Piethein Strengholt <pietheinstrengh...@gmail.com>
wrote:
> > > - Show quoted text -- Hide quoted text -

Chen Yang

unread,
Dec 28, 2008, 3:40:13 AM12/28/08
to android...@googlegroups.com
At hand, i only have VMware workstation, and I have verified the steps, hope it helps.
I assume that you have parepared the installer.img from Lim's description:
 
1. create the vmware disk file based on the installer.img
you can use sfdisk -l installer.img to get the C/H/S information about it, although it reports issues, it won't do harm, at least from my observation. And get our interested line:
...
  for C/H/S=*/1/0 (instead of 49/255/63).
...
 
Also, you may need to change the following entries: the extent description part, to the real block size of the image, basically, it's size of installer.img/512.
 
Cut the following lines to one file with the installer.img as installer.vmdk, and copy the installer.img together with this file in the same directory.
---
# Disk DescriptorFile
version=1
CID=b01deebc
parentCID=ffffffff
createType="monolithicFlat"
# Extent description
RW 794622 FLAT "installer.img" 0
# The Disk Data Base
#DDB
ddb.virtualHWVersion = "4"
ddb.geometry.cylinders = "49"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
ddb.adapterType = "ide"
ddb.toolsVersion = "0"
--
 
2.create a new vmware target environment as linux 2.6 series, and create one primary hdd with IDE at least 1.8GB(maybe a little less is possible, i haven't remebered the precise size, and I haven't tried SCSI yet, but may be also possible). Add the installer.vmdk as one extra hard disk to the virtual machine.
 
3. Boot the VM, and when bios shows, press F2 to enter BIOS, to select the right installer drive as the boot drive, if you added later, it will be Primary Slave. Choose it before the Primary Master by Pressing + on that HDD in boot column. After that, you will see the boot starts.
 
4. it may report issues in installation as "no sda6" as it happened to me, it seems to have some relationship with the updated partition table read failure. Take it easy. Just reboot the vm, and installation will continue, as the updated parition table will be effective when rebooted. Wait some time, and it will report
"Successfully configured N images."
Then the installation is done!
 
5. Reboot the VM, and change the boot up drive as the Primary Master. Or you can just remove the installer.vmdk from the VM configuration. Then boot starts, you will be able to use it.
 
Some notes:
1. Be sure to compile the kernel with VESAFB and add the vga=788 with in cmdline. 800x600 seems to be a quite usable resolution, for 1024x768 and above resolutions, you may meet some performance or execution issues.
2. If you want to use network, you may need to compile the AMD PCNET32 driver.
3. the installer.vmdk also works with Virtualbox, but i haven't verified the above steps yet.
4. Chris's make-live may provide some short-cut, i haven't explored yet. But I may update if I find one good approach. :)
 
Hope it helps! And correct me if i have something incorrect with my description. Thanks.
--
 Chen

Chen Yang

unread,
Dec 28, 2008, 11:12:19 AM12/28/08
to android...@googlegroups.com
I just repeated the process on VirtualBox, mostly the same and you may meet with one issue in booting the installer.img, as you select the primary slave as the boot up disk, it will complain that it cannot find the right parition, then please select 0 and edit the 3 lines configuration one by one, to replace the the hd0 with hd1, then it will start the installation process correctly. You will also need the same rebooting and re-configure the 0 sysloader, and 3 lines configuration to accomplish the installation.
Hope it helps!
--
 Chen

--
Yang, Chen

Andriod Developer

unread,
Dec 29, 2008, 12:23:32 PM12/29/08
to android-porting
Thanks yang for the instructions.
I am using VirtualBox2.1.0 release and it complains about .vmdk file
when i try to add it. Somebody has opened a bug for virtualbox for the
same issue.
What release are you using?
> ...
>
> read more »

Chen Yang

unread,
Dec 29, 2008, 12:42:51 PM12/29/08
to android...@googlegroups.com
hi, I have managed to accomplished the installation with virtualbox 2.1.0 on Mac, which seems to be the most updated version. What kind of error message?
--
 Chen

Andriod Developer

unread,
Dec 29, 2008, 1:51:27 PM12/29/08
to android-porting
This is what i see

----
Could not open the hard disk "f:\Asusinstaller\installer.vmdk".

VDI: Invalid pre-header in "f:\Asusinstaller\installer.vmdk"
(VERR_VD_VDI_INVALID_SIGNATURE)

VD: error opening image file "f:\Asusinstaller\installer.vmdk"
(VERR_VD_VDI_INVALID_SIGNATURE)
-------------

and the contents of my vmdk file are:
---
# Disk DescriptorFile
version=1
CID=b01deebc
parentCID=ffffffff
createType="monolithicFlat"
# Extent description
RW 794622 FLAT "installer.img" 0
# The Disk Data Base
#DDB
ddb.virtualHWVersion = "4"
ddb.geometry.cylinders = "49"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
ddb.adapterType = "ide"
ddb.toolsVersion = "0"
----

I am choosing the existing virtual hard disk option(with boot hard disk
(primary master) checked) while creating the new VM.
Thanks for ur help!

On Dec 29, 9:42 am, "Chen Yang" <sunsety...@gmail.com> wrote:
> hi, I have managed to accomplished the installation with virtualbox 2.1.0 on
> Mac, which seems to be the most updated version. What kind of error message?
>
> --
>  Chen
> ...
>
> read more »

Chen Yang

unread,
Dec 29, 2008, 2:14:30 PM12/29/08
to android...@googlegroups.com
i just verified your configuration with Virtualbox 2.1.0 under Windows, it can import the disk correctly. Which version are you using?
--
 Chen

Andriod Developer

unread,
Dec 29, 2008, 2:34:02 PM12/29/08
to android-porting
VirtualBox2.1.0 on WinXP. As per your instructions, I created a .vmdk
file with the above contents and
copied installer.img and .vmdk file to the same directory and i tried
to create a new VM by choosing the
existing virtual harddisk. When i see the error, i also noticed that
the contents of the .vmdk file are
modified with lot of "^@" symbols..

Thanks for ur time Chen... I really wanted to get this going.

On Dec 29, 11:14 am, "Chen Yang" <sunsety...@gmail.com> wrote:
> i just verified your configuration with Virtualbox 2.1.0 under Windows, it
> can import the disk correctly. Which version are you using?
> --
>  Chen
>
> ...
>
> read more »

Andriod Developer

unread,
Dec 29, 2008, 3:27:29 PM12/29/08
to android-porting
May be i am missing something here. This is what i am doing:

Launch Sun VirtualBox
Click on New -> Next
Name it as "AsusAndrioid"
Ostype=Linux
Version=2.6
RAM=256MB
Checked Boot Harddisk(Primary master)
clicked on exisiting and selecting the .vmdk file(this is only 1k file
though). When i select the file, virtualbox complains about failing to
open the file and says it has invalid signature.

Not sure if i am doing any wrong in this step..

Please help!






On Dec 29, 11:14 am, "Chen Yang" <sunsety...@gmail.com> wrote:
> i just verified your configuration with Virtualbox 2.1.0 under Windows, it
> can import the disk correctly. Which version are you using?
> --
>  Chen
>
> ...
>
> read more »

Chen Yang

unread,
Dec 29, 2008, 6:45:47 PM12/29/08
to android...@googlegroups.com
It seems all are correct.
You can choose to add the vmdk without creating the virtual machine by selecting the File->Virtual Media Manager ...
Meanwhile, the installer.img is useless as a primary master, since it's only for installation use.
--
 Chen

Avtar Singh

unread,
Jan 3, 2009, 1:27:24 AM1/3/09
to android-porting
Hi,

I am following the instructions specified by Dima and Lim to build
Android on a EeePC. However, I want to build it on a Desktop with
Ubuntu 8.10. I created a new directory for Android source code, did a
"repo init", followed by "repo sync" and then explicitly