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

5600 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 did a git
clone of git://android.git.kernel.org/platform/vendor/asus/eee_701.git
to get the EeePC files.

I only did a repo init (not with -b option) with the understanding
that the cupcake branch is now merged into the master branch. Is this
incorrect? Do I have to use '-b cupcake'?

Subsequently, I ran the following command:

TARGET_ARCH=x86 TARGET_PRODUCT=eee_701 DISABLE_DEXPREOPT=true
CC=gcc-4.2.1 CXX=g++-4.2.1 make -j2 installer_img

The output I got is:
********************************************************************************
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
build/core/base_rules.mk:117: *** recovery/amend:
MODULE.HOST.EXECUTABLES.amend already defined by bootable/recovery/
amend. Stop.
********************************************************************************

What could be the issue? I have created symbolic links for 'gcc-4.2.1'
to point to "prebuilt/linux-x86/toolchain/i686-unknown-linux-gnu-4.2.1/
bin/i686-unknown-linux-gnu-gcc-4.2.1".

Thanks,
Avtar

On Dec 24 2008, 5:29 am, freedom <koansin....@gmail.com> wrote:
> 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 ........

Chen Yang

unread,
Jan 3, 2009, 3:25:34 AM1/3/09
to android...@googlegroups.com
hi Avtar:
   Is this directory also used for pre-cupcake source? It seems that the compilation issue was caused by the stale directory "recovery" under your android source root directory. You may remove it to see whether it works or not. Hope it helps!
--
 Chen

s.a...@gmail.com

unread,
Jan 3, 2009, 3:46:45 AM1/3/09
to android...@googlegroups.com
> Is this directory also used for pre-cupcake source? It seems that the
> compilation issue was caused by the stale directory "recovery" under your
> android source root directory. You may remove it to see whether it works or

Yes. It also had pre-cupcake source. It works now. Thanks, Chen! I
will now follow the make output and see what I have got.

s.a...@gmail.com

unread,
Jan 4, 2009, 1:21:03 AM1/4/09
to android...@googlegroups.com

I now get the following error: could not locate libstdc++. Any pointers?

# TARGET_ARCH=x86 TARGET_PRODUCT=eee_701 DISABLE_DEXPREOPT=true make
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: genext2fs
(out/host/linux-x86/obj/EXECUTABLES/genext2fs_intermediates/genext2fs)
/home/developer/mydroid/prebuilt/linux-x86/toolchain/i686-unknown-linux-gnu-4.2.1/bin/../lib/gcc/i686-unknown-linux-gnu/4.2.1/../../../../i686-unknown-linux-gnu/bin/ld:
cannot find -lstdc++
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/EXECUTABLES/genext2fs_intermediates/genext2fs]
Error 1

s.a...@gmail.com

unread,
Jan 4, 2009, 1:27:50 AM1/4/09
to android...@googlegroups.com

I now get the following error: could not locate libstdc++. Any pointers?

# TARGET_ARCH=x86 TARGET_PRODUCT=eee_701 DISABLE_DEXPREOPT=true make
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

Lennart Moltrecht

unread,
Jan 4, 2009, 10:33:47 AM1/4/09
to android-porting
I get stuck at the third step:

ubuntu@ubuntu:~$ repo init -u git://android.git.kernel.org/platform/manifest.git
-b cupcake
bash: repo: command not found

Why is my repo command not found? My Ubuntu version is almost the same
as you specified:

ubuntu@ubuntu:~$ uname -a
Linux ubuntu 2.6.24-16-generic #1 SMP Thu Apr 10 13:23:42 UTC 2008
i686 GNU/Linux
ubuntu@ubuntu:~$ gcc --version
gcc (GCC) 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
Copyright (C) 2007 Free Software Foundation, Inc.

Please help me!
>     <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

s.a...@gmail.com

unread,
Jan 4, 2009, 11:34:37 AM1/4/09
to android...@googlegroups.com
> bash: repo: command not found
> Why is my repo command not found?

Have you downloaded repo? You need to download it and have that path
in your PATH variable.

Avtar

Lennart Moltrecht

unread,
Jan 4, 2009, 1:47:17 PM1/4/09
to android-porting
Thanks for the answer. How can I download it? I went to the package
manager (I think it's Synaptics but not sure, it's the one that opens
when you click Applications -> Add/Remove software), entered "repo"
into the search field and downloaded "Report", the only thing that
made sense. It wanted me to install something like "camaeleon" or
similar, I downloaded whatever it wanted, but the installation broke
somewhere, and now I can't start it again.
I remember there was a terminal command somewhere to clean up the
repository data, but forgot what it was. Is this the right approach?
And how can I add that path to my PATH variable?

Avtar Singh

unread,
Jan 5, 2009, 12:15:23 AM1/5/09
to android...@googlegroups.com
> Thanks for the answer. How can I download it?

Check the link below- it should do:
http://source.android.com/download#TOC-Installing-Repo

Avtar

Lennart Moltrecht

unread,
Jan 5, 2009, 6:35:05 AM1/5/09
to android-porting
Ok sorry for asking again, but somehow it doesn't want to work. I
downloaded curl and repo, and I think I also added it to the PATH
variable, but still the terminal can't find the repo:

This should do it, right? Or is the ~ symbol wrong when I add it to
PATH?

ubuntu@ubuntu:~$ sudo apt-get install curl
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
curl
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 197kB of archives.
After this operation, 311kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com hardy/main curl 7.18.0-1ubuntu2
[197kB]
Fetched 197kB in 0s (246kB/s)
Selecting previously deselected package curl.
(Reading database ... 98223 files and directories currently
installed.)
Unpacking curl (from .../curl_7.18.0-1ubuntu2_i386.deb) ...
Setting up curl (7.18.0-1ubuntu2) ...
ubuntu@ubuntu:~$ curl http://android.git.kernel.org/repo >~/bin/repo
% Total % Received % Xferd Average Speed Time Time
Time Current
Dload Upload Total Spent
Left Speed
100 16989 0 16989 0 0 22294 0 --:--:-- --:--:--
--:--:-- 71556
ubuntu@ubuntu:~$ chmod a+x ~/bin/repo
ubuntu@ubuntu:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/
games
ubuntu@ubuntu:~$ export PATH=$PATH:~/bin/repo
ubuntu@ubuntu:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/
games:/home/ubuntu/bin/repo

Lennart Moltrecht

unread,
Jan 5, 2009, 6:47:06 AM1/5/09
to android-porting
Sorry for the post above, got it fixed now, had to add only "~/bin" to
my PATH. But now my Python makes problems :-\

ubuntu@ubuntu:~$ repo init -u git://android.git.kernel.org/platform/manifest.git
-b cupcake
Traceback (most recent call last):
File "/home/ubuntu/bin/repo", line 590, in <module>
main(sys.argv[1:])
File "/home/ubuntu/bin/repo", line 557, in main
_Init(args)
File "/home/ubuntu/bin/repo", line 176, in _Init
_CheckGitVersion()
File "/home/ubuntu/bin/repo", line 205, in _CheckGitVersion
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)
File "/usr/lib/python2.5/subprocess.py", line 594, in __init__
errread, errwrite)
File "/usr/lib/python2.5/subprocess.py", line 1147, in
_execute_child
raise child_exception
OSError: [Errno 2] No such file or directory

Why?

On Jan 5, 11:35 am, Lennart Moltrecht <moi...@googlemail.com> wrote:
> Ok sorry for asking again, but somehow it doesn't want to work. I
> downloaded curl and repo, and I think I also added it to the PATH
> variable, but still the terminal can't find the repo:
>
> This should do it, right? Or is the ~ symbol wrong when I add it to
> PATH?
>
> ubuntu@ubuntu:~$ sudo apt-get install curl
> Reading package lists... Done
> Building dependency tree
> Reading state information... Done
> The following NEW packages will be installed:
>   curl
> 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
> Need to get 197kB of archives.
> After this operation, 311kB of additional disk space will be used.
> Get:1http://archive.ubuntu.comhardy/main curl 7.18.0-1ubuntu2
> [197kB]
> Fetched 197kB in 0s (246kB/s)
> Selecting previously deselected package curl.
> (Reading database ... 98223 files and directories currently
> installed.)
> Unpacking curl (from .../curl_7.18.0-1ubuntu2_i386.deb) ...
> Setting up curl (7.18.0-1ubuntu2) ...
> ubuntu@ubuntu:~$ curlhttp://android.git.kernel.org/repo>~/bin/repo

gowtham gowda

unread,
Jan 6, 2009, 4:21:01 PM1/6/09
to android-porting
I am trying to compile android for a via mini itx board. I wanted to
know how to add the drivers for network card and the display driver
for the via pc. The via website has linux drivers for all the
hardware, but i dont know how to add it to the android build. How do i
do it?

Thanks,

Gowtham
> $ repo init -u git://android.git.kernel.org/platform/manifest.git -b
> cupcake

Midhun

unread,
Jan 8, 2009, 7:10:42 AM1/8/09
to android-porting
Hi,



I have built Android for eee PC using the instructions at the start of
this thread.


I have converted the installer.img to a .vdi file using:


# vboxmanage convertdd installer.img eeepc_disk.vdi



I am now running this image on Virtualbox 2.1.0 on WinXP. These are my
steps and observations:



1. When I start the VM, it hangs on Grub Loading stage 2..

2. I press F12 to enter the menu and it shows the following:



0: sys_loader

1: recovery

2: std_boot



3. Option "2" is selected by default. But it doesnot work. Neither
does option "1". The errors are as follows:



Option "1":



Booting `recovery`

cmdline (hd0,1)/cmdline

Error 15: File not found



Option "2":



Booting `std_boot`

cmdline (hd0,2)/cmdline

Error 22: No such partition



Where can I change the default to 0 ? (I tried looking for "menu.lst"
file. But couldnt find it)



4. I then run the "/system/bin/installer -p /dev/block/sda2" for my
partition. It gives an error that the total requested size is greater
than the disk size (My image size is 387 MB and it is looking for arnd
1.5GB space). Do I need to pad my image ?



Best Regards,

Midhun.

gowtham gowda

unread,
Jan 8, 2009, 8:01:18 AM1/8/09
to android-porting
For some reason, android on virtualbox never worked for me. I got the
same errors u r getting. So i made a live usb and that works fine.

Gowtham

rukiman

unread,
Jan 8, 2009, 8:23:13 PM1/8/09
to android-porting
I have got as far as booting Android in VMware thanks to Chen Yang's
post above. I replaced mydroid/vendor/asus/
eee_701/ kernel with that of Stargatto's posted above. However booting
up Android with VMware keeps giving me the below error over and over.

SurfaceFlinger[XXXX]: segfault at 38 ip XXXXXXXX sp XXXXXXXX error 4
in libc.so[80100000+49000]

Perphaps my kernel is not ok? How do I build a kernel with VESAFB and
network drivers and where do I specify vga=788? I do not know much
about building kernels so if someone could provide a guide that would
be great.

Chris Hackett

unread,
Jan 8, 2009, 10:48:27 PM1/8/09
to android-porting
I don't know if this applies to your vbox, but I just installed
android on my EeePC, and I didn't hit any options. It just
automatically started installing.

On Jan 8, 4:10 am, Midhun <agnimid...@gmail.com> wrote:
> Hi,
>
> I have built Android foreeePC using the instructions at the start of

Chen Yang

unread,
Jan 9, 2009, 3:28:01 AM1/9/09
to android...@googlegroups.com
Some additions to build the kernel for VMWare/VirtualBox:

Hope it helps:
$cd mydroid
$cp vendor/asus/eee_701/kernel.config kernel/.config
$cd kernel
$make menuconfig

Select the device drivers:

For network card:
network device support ->
Ethernet (10 or 100Mbit) --->
[*] EISA, VLB, PCI and on board controllers
<*> AMD PCnet32 PCI support

For VESAFB:
Graphics support --->
<*> Support for frame buffer devices --->
[*] VESA VGA graphics support
Console display driver support --->
<*> Framebuffer Console support
[*] Select compiled-in fonts
[*] VGA 8x8 font
[*] VGA 8x16 font

In order to build correctly with 2.6.27, you may apply the patch from here:
http://review.source.android.com/6751

For command line option of vga=788, several approaches:
1. append the option when the system boots, when it shows the menu,
you can press 'e' to edit the default entry(2). then 'd' to delete the
first option line: "cmdline ... ", then 'e' the 0 entry, which is the
line of " kernel --use-cmd ...",
remove the "--use-cmd-line" and append the option
"androidboot.hardware=eee_701 vga=788" at end of that line
then choose boot. It will enter the vesafb mode correctly. But you
may need to edit it every time when boot.

2. modify the cmdline in /dev/block/sda3, you can mount it after you
have successfully boot. to append "vga=788" to cmdline file:
#mkdir /data/boot
#mount -t ext2 /dev/block/sda3 /data/boot
#echo " vga=788" >/data/boot/cmdline
#umount /data/boot
then reboot the vm

3. modify the cmdline creation step in the build, i think you can get
the in bootable/diskinstaller/config.mk, then you may need to rebuild
the instaler.img and reinstall it to your vm.

Hope it helps!
--
Chen

gowtham gowda

unread,
Jan 9, 2009, 11:21:22 PM1/9/09
to android-porting
After "make menuconfig"
should we just save .config file or should we run "make" to compile a
new kernel.

Thanks,

Gowtham

Chen Yang

unread,
Jan 9, 2009, 11:44:12 PM1/9/09
to android...@googlegroups.com
Sorry, I forgot to put the required information to that step:

After that, you should save the .config
$make bzImage
Then copy the kernel to vendor/asus/eee_701
$cp arch/x86/boot/bzImage ../vendor/asus/eee_701/kernel

Then you can start build the installer_img again. After that use your
installer.img to install in vmware/virtualbox again.

Hope it helps!
--
Chen


gowtham gowda

unread,
Jan 9, 2009, 11:53:39 PM1/9/09
to android-porting
Thanks for the reply,

one more info, how do we add modules to compile the kernel when we
select the <M> option in make menuconfig.

Thanks,
gowthsm

On Jan 9, 11:44 pm, "Chen Yang" <sunsety...@gmail.com> wrote:
> Sorry, I forgot to put the required information to that step:
>
> After that, you should save the .config
> $make bzImage
> Then copy the kernel to vendor/asus/eee_701
> $cp arch/x86/boot/bzImage ../vendor/asus/eee_701/kernel
>
> Then you can start build the installer_img again. After that use your
> installer.img to install in vmware/virtualbox again.
>
> Hope it helps!
> --
>  Chen
>

Chen Yang

unread,
Jan 10, 2009, 12:20:11 AM1/10/09
to android...@googlegroups.com
For modules, you may need to put under
vendor/asus/eee_701/modules directory.
You can add the insmod in init.rc
or in the