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

6,788 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 init.eee_701.sh
It seems that you may need to comment the line in init.eee_701.sh:
setprop net.dns1 4.2.2.2

For VESAFB, it seems you may need to make built-in, it may doesn't
work with modules.
For network card, it's ok to be modules.
Hope it helps.
--
Chen

gowtham gowda

unread,
Jan 10, 2009, 12:23:06 AM1/10/09
to android-porting
i am getting this error when i try
#/mydroid/kernel$ make bzimage
scripts/kconfig/conf -s arch/x86/Kconfig
make: *** No rule to make target `bzimage'. Stop.

how do i get past this.

Thanks once again.

Gowtham


On Jan 10, 12:20 am, "Chen Yang" <sunsety...@gmail.com> wrote:
> 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 init.eee_701.sh
> It seems that you may need to comment the line in init.eee_701.sh:
> setprop net.dns1 4.2.2.2
>
> For VESAFB, it seems you may need to make built-in, it may doesn't
> work with modules.
> For network card, it's ok to be modules.
> Hope it helps.
> --
>  Chen
>

Chen Yang

unread,
Jan 10, 2009, 12:31:59 AM1/10/09
to android...@googlegroups.com
how about:
$make bzImage

--
Chen

gowtham gowda

unread,
Jan 10, 2009, 12:35:02 AM1/10/09
to android-porting
works,

thank you very much.

Gowtham

On Jan 10, 12:31 am, "Chen Yang" <sunsety...@gmail.com> wrote:
> how about:
> $make bzImage
>
> --
>  Chen
>

Chen Yang

unread,
Jan 10, 2009, 12:37:24 AM1/10/09
to android...@googlegroups.com
I remembered that pmem may be one issue with x86. So with the kernel.config,
you need to disable it, otherwise, it may complain errors in compilation:
Device Drivers
[*] Misc devices --->
[] Android pmem allocator

Please de-select the pmem part.

Hope it helps!
--
Chen

Message has been deleted

Lim,GeunSik

unread,
Jan 10, 2009, 8:11:10 AM1/10/09
to android-porting
Hi, all


How to use x86 android platform on virtualbox
===============================================
Last modified by Lim,GeunSik on 8-Jan,2009

Current Work status is not finished.
But, I opened and shared to combine with developers for this tasks
all over the world.

Why I like virtualbonx in Linux distribution like Fedora 9?

This is Major characteristics per Virtualization Software.
--------------------------------------------------------------------------------
Software Linux WinXP Opensource
Free Quick Install
--------------------------------------------------------------------------------
M$ Virtual PC X O
X O O
VMwareServer O O
X O O
VMwareWorkstation O O
X X O
Parallels O O
X X O
QEMU O O
O O O
Virtualbox O O
O O O
XEN O X
O O X
KVM O X
O O X
--------------------------------------------------------------------------------


● 1. Development environments
* OS: Feodra 9 ( Linux 2.6.27-9 )
* GCC: gcc(gcc 4.3.0) and gcc34 (gcc 3.4) <- I recommend gcc 3.4
compat-compiler to build x86 android fullsource.
* Glibc: glibc 2.6 (NPTL Thread Model)
* PC: Samsung MagicStation DB-P70 Model
* CPU : Interl Core2 Quad CPU Q9300 (2.50Ghz) , bogomips is
4,987.50 , cache size 3,072kb
* MEM: Samsung DDR2 2G
* Reference: Midhun & Chen Yang's posting at http://groups.google.com/
and http://source.android.com
* Additional information: When i finished this task finally, I
will upload final howto using WYSWYG and figures
at http://www.kandroid.org.

●2. Build kernel source for VirtualBox software.
Fedora9$ cd ~/bin_x86/mydroid
Fedora9$ cp ./vendor/asus/eee_701/kernel.config kernel/.config
Fedora9$ cd kernel
Fedora9$ make menuconfig



* Network device for virtualbox s/w
network device support ->
Ethernet (10 or 100Mbit) --->
[*] EISA, VLB, PCI and on board controllers
<*> AMD PCnet32 PCI support <- We need virtual lan infra
in virtualization like vmware or virtualbox.

* To support FB on virtualbox environment.
Graphics support --->
<*> Support for frame buffer devices --->
[*] VESA VGA graphics support <- Unfortunately, Vesa VGA
support 800X600 resolution.
Console display driver support --->
<*> Framebuffer Console support
[*] Select compiled-in fonts
[*] VGA 8x8 font
[*] VGA 8x16 font

* Disable pmem allocator if your kernel is 2.6.27 base.
[*] Misc devices --->
[ ] Android pmem allocator (NEW)

If you are using 2.6.27 based x86 android full source, Disable "PMEM"
feature in "make menuconfig menu.
pmem is only needed for certain devices requiring large physically
contiguous memory on the MSM7XXX (GPU,DSP, etc). It's not currently
used by any other SoCs and its absence is not a fatal error.
-------------------------------------------------------------------------
* MSM7XXX (GPU,DSP, etc): YUV --> pmem ---> VideoLayer
* Another Chip: YUV --> mEmulation(ro.kernel.qemu=1) --> /dev/fb0(RGB)
-------------------------------------------------------------------------



Fedora9$ make bzImage
Fedora9$ ls ./arch/x86/boot/

Ref) If you want to build 2.6.27 based android kernel at
http://android.git.kernel.org webstie,
you may apply alsa related the patch at http://review.source.android.com/6751


●3. convert installer.img to installer.vmdk with virtualbox

Fedora9$ cd ~/bin_x86/mydroid/out/target/product/eee_701
Fedora9$ rpm -ivh http://download.virtualbox.org/virtualbox/2.1.0/VirtualBox-2.1.0_41146_fedora9-1.i386.rpm
Fedora9$ VBoxManage --help | grep Version
VirtualBox Command Line Management Interface Version 2.1.0
Fedora9$ VBoxManage convertfromraw -static -format VDI ./
installer.img ./installer.vdi (X)
Fedora9$ VBoxManage convertfromraw -format VDI ./
installer.img ./installer.vdi (O)

VirtualBox Command Line Management Interface Version 2.1.0
(C) 2005-2008 Sun Microsystems, Inc.
All rights reserved.
Wrong owner (0) of '/tmp/.vbox-invain-ipc'.
Converting from raw image file="installer.img" to file="./
installer.vdi"...
Creating dynamic image with size 406871040 bytes (389MB)...
Fedora9$ file ./installer.vdi
./installer.vdi: data


OR
Fedora9$ vditool DD installer.vdi *.img
Fedora9$ vditool SHRINK installer.vdi


●4. Setting of virtualbox
Open "Sun VirtualBox" software ->Click on New -> Next
- Name = it as "AsusAndrioid"
- OStype=Linux
- Version=2.6
- RAM=256MB
- Hard Disks= Slot Checked Boot Harddisk with IDE Primary Master



●5. booting android kernel in virtualbox s/w.
1) When I start the installer.vdi in virtualbox software, it hangs on
grub Loading stage 2 step.
Below is error screenshot to help understanding.

So, you have to push F12 key fastly as soon as start installer.vdi
with virtualbox.
Remember "Press F12 to select boot device" message in virtual box
window.


2) When you press F12 key and it shows the following:
0: sys_loader
1: recovery
2: std_boot (* default selection)

3) Option "0: sys_loader" is selected by default when kernel boot in
virtualbox.
* Option 0: sys_loader
0: cmdline (hd0,0)/cmdline
1: kernel --use-cmd-line (hd0,0)/kernel
2: initrd (hd0,0)/ramdisk


* Option 1: recovery
0: cmdline (hd0,2)/cmdline
1: kernel --use-cmd-line (hd0,2)/kernel
2: initrd (hd0,2)/ramdisk


* Option 2: std_boot
0: cmdline (hd0,2)/cmdline
1: kernel --use-cmd-line (hd0,2)/kernel
2: initrd (hd0,2)/ramdisk


Now, I din't find "/boot/grub/menu.lst" file for bootloader like
Feodra or Ubuntu.
Belows is process informations using top command.

#> cat /proc/version

Linux version 2.6.25-00101-gb6922fa
(dmit...@weppard.mtv.corp.google.com) (gcc version 4.0.3
(Ubuntu 4.0.3-1ubuntu5)) #1 SMP PREEMPT Wed Nov 19 11:52:46 PST 2008

#> cat /proc/partitions
major minor #blocks name
......... Above Omission ..........
8 0 397335 sda
8 1 4439 sda1
8 2 391872 sda2




● 5. Modify kernel cmd line like Linux: ***
Select No 2 "2: std_boot (* default selection)" after F12 key.

Remove "--use-cmd-line" option in Linux boot display.
Append "androidboot.hardware=eee_701 vga=788" options in Linux boot
display

Highlighted entry is 2:
GNU GRUB version 0.97 (639K lower / 261056K upper memory)

0: cmdline (hd0,2)/cmdline
1: kernel --use-cmd-line (hd0,2)/kernel
2: initrd (hd0,2)/ramdisk
.......... Omission .........
Highlighted entry is 0:



Todo: But, bootloader is not found (hd0,2) because (hd0,2) partition
is not exist.
Booting command-list

cmdline (hd0,2)/cmdline
Error 22: No such partition

Press any key to continue ...



● 6. Mount "* img" to /dev/block/sda2 device node.
Use installer command /data directory.
#> system/bin/installer -p /dev/block/sda2
It gives an error that the total requested size is greater than
the disk size as belows.
" Total requested size of partitins (1,644,167,168) is greater
than disk size (406,871,040)."
(My image size is 387 MB and it is looking for around 1.5GB
space).

#> ls /data/
userdata.img
boot.img
system.img
bootldr.bin
lost+found


OR
Fedora9#> mkdir /data/boot
Fedora9#> mount -t ext2 /dev/block/sda2 /data/boot
Fedora9#> echo " vga=788" > /data/boot/cmdline
Fedora9#> umount /data/boot



End of Line.

Lim,GeunSik

unread,
Jan 10, 2009, 8:16:24 AM1/10/09
to android-porting
Hi, everyone.

This is howto for fedora users like me.
In fact, I already posted this howto.
But, I again upload this howto because some of the peoples don't find
fedora howto.


HOWTO Build Android-X86 Full Source for Fedora users
====================================
Last Modified on 24-Dec-2008 19:10

I summarized how to build android full source for x86 architecture
like Asus Eee lattop for fedora9 user.
Fortunately, We can build android full surce both x86 and arm on
fedora 9 distribution successfully because
google is realesing android full source with common method without RPM
or DEB currently.
Don't forget that This howto is for Fedora distribution user like me.

0. My development environments
- Linux PC: Fedora 9 ( 2.6.25.6-55.fc9 i686)
. CPU: Intel(R) Core(TM)2 Duo CPU T5750 @ 2.00GHz ( Samsung
SENS R60 Laptop )
. RAM: Samsung DDR Ram
- Target: Eee PC (ASUS) and Samsung nettop NC01
- Reference:

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

Fedora9$> uname -a

Linux fedora-invain9 2.6.25.6-55.fc9.i686 #1 SMP Tue Jun 10 16:27:49
EDT 2008 i686 i686 i386 GNU/Linux

Fedora9$> gcc --version and Fedora9$> gcc34 --version

Fedora9$> gcc --version
gcc (GCC) 4.3.0 20080428 (Red Hat 4.3.0-8)
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.

Fedora9$> gcc34 --version
gcc34 (GCC) 3.4.6 20060404 (Red Hat 3.4.6-9)
Copyright (C) 2006 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".
Fedora9$> cd ~
Fedora9$> mkdir bin_x86 && cd bin_x86
Fedora9$> mkdir mydroid && cd mydroid
Fedora9$> repo init -u git://android.git.kernel.org/platform/manifest.git
-b cupcake
Fedora9$> repo sync
Fedora9$> vi ./.repo/local_manifest.xml
<manifest>
<project name="platform/vendor/asus/eee_701" path="vendor/asus/
eee_701"/>
</manifest>


Fedora9$> 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

Fedora9$> export PATH=$PATH:/usr/sbin:/sbin (to use /sbin/tune2fs
command of e2fsprogs pack )
Fedora9$> TARGET_ARCH=x86 TARGET_PRODUCT=eee_701
DISABLE_DEXPREOPT=true CC=gcc34 CXX=g++34 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 about source building

- If you want to avoid below errors on feora 9, Use gcc-34 instead of
gcc-4.3 version.

- Ref) Ubuntu 8.04LT support GCC 4.2(Recommendation) , Ubuntu 8.10
support GCC 4.3.
- If you are using GCC 4.3 currently, Modify string header related
sources like belows.



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

- In my case, I am using gcc 3.4 for compatibilty like this problem on
fedora.
#> yum install compat-gcc*

#> rpm -qa | grep compat-gcc
compat-gcc-34-3.4.6-9.i386
compat-gcc-34-c++-3.4.6-9.i386
compat-gcc-34-g77-3.4.6-9.i386

Fedora9$> vi
Fedora9$> ls -lh out/target/product/eee_701/
total 770624
drwxrwxr-x 9 invain invain 4096 2008-12-24 16:05 .
drwxrwxr-x 3 invain invain 4096 2008-12-24 15:34 ..
-rw-rw-r-- 1 invain invain 2606080 2008-12-24 15:50 boot.img
-rw-rw-r-- 1 invain invain 57 2008-12-24 16:03 clean_steps.mk
drwxrwxr-x 4 invain invain 4096 2008-12-24 15:54 data
drwxrwxr-x 2 invain invain 4096 2008-12-24 15:50 grub
drwxrwxr-x 4 invain invain 4096 2008-12-24 16:05 installer
-rw-rw-r-- 1 invain invain 406862848 2008-12-24 16:06 installer.img
-rw-rw-r-- 1 invain invain 1951340 2008-12-23 19:18 kernel
drwxrwxr-x 12 invain invain 4096 2008-12-24 16:05 obj
-rw-rw-r-- 1 invain invain 607384 2008-12-24 15:50 ramdisk.img
drwxrwxr-x 9 invain invain 4096 2008-12-24 15:50 root
drwxrwxr-x 4 invain invain 4096 2008-12-24 15:50 symbols
drwxrwxr-x 12 invain invain 4096 2008-12-24 15:53 system
-rw-rw-r-- 1 invain invain 372056064 2008-12-24 16:05 system.img
-rw-rw-r-- 1 invain invain 5156864 2008-12-24 16:04 userdata.img


Fedora9$> 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 1: ID=0x83, active,
starthead 0, startsector 2048, 8878 sectors; partition 2: ID=0x83,
starthead 0, startsector 10926, 783728 sectors




Fedora9$> file out/target/product/eee_701/installer.img
File: `./out/target/product/eee_701/installer.img'
Size: 406862848 Blocks: 793552 IO Block: 4096 일반 파일
Device: fd00h/64768d Inode: 5349917 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 778/ invain) Gid: ( 778/
invain)
Access: 2008-12-24 16:08:21.000000000 +0900
Modify: 2008-12-24 16:06:05.000000000 +0900
Change: 2008-12-24 16:06:05.000000000 +0900


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


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


Fedora9$> pushd out/target/product/eee_701/
Fedora9$> sudo mount -o loop boot.img /mnt
Fedora9#> popd

total 2519
-rw-rw-r-- 1 invain invain 77 2008-12-24 15:50 cmdline
-rw-rw-r-- 1 invain invain 1951340 2008-12-24 15:50 kernel
-rw-rw-r-- 1 invain invain 607384 2008-12-24 15:50 ramdisk

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

Fedora9$> cp /mnt/test/ramdisk /tmp/ramdisk.gz
Fedora9$> pushd /tmp
Fedora9$> gunzip ramdisk.gz
Fedora9$> cpio -iv < ramdisk
Fedora9$> popd

init.goldfish.rc
init
data
init.eee_701.rc
proc
sbin
sbin/adbd
system
init.rc
default.prop
lib
lib/modules
lib/modules/atl2.ko
lib/modules/drm.ko
lib/modules/fbcon.ko
lib/modules/cfbimgblt.ko
lib/modules/i915.ko
lib/modules/cfbcopyarea.ko
lib/modules/bitblit.ko
lib/modules/softcursor.ko
lib/modules/font.ko
lib/modules/cfbfillrect.ko
dev
sys
2958 blocks

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


4. Make USB Stick Installer
- You have to change first boot device on Bios menu with F2 or Del
key to use usb live when booting.
Fedora9$> dd if=out/target/product/eee_701/installer.img of=/dev/sdf1
/dev/sdf1 : USB memory's physical partition with "cat /proc/
partitions" command.




5. Now, Enjoy X86 Android Platform on Eee Lattop (ASUS) !

Lim,GeunSik

unread,
Jan 10, 2009, 8:22:47 AM1/10/09
to android-porting

For reference,
When I read "***@weppard.mtv.corp.google.com" email address with
"cat /proc/version" command,
I think that google company wil extend current android platform to
Digital TV or media solution.
But, this is just my think... hehe


#> cat /proc/version

Linux version 2.6.25-00101-gb6922fa
(dmitr...@weppard.mtv.corp.google.com) (gcc version 4.0.3
(Ubuntu 4.0.3-1ubuntu5)) #1 SMP PREEMPT Wed Nov 19 11:52:46 PST 2008



> * Reference: Midhun & Chen Yang's posting athttp://groups.google.com/
> and http://source.android.com
> * Additional information: When i finished this task finally, I
> will upload final howto using WYSWYG and figures
> athttp://www.kandroid.org.
> you may apply alsa related the patch athttp://review.source.android.com/6751
>
> ●3. convert installer.img to installer.vmdk with virtualbox
>
> Fedora9$ cd ~/bin_x86/mydroid/out/target/product/eee_701
> Fedora9$ rpm -ivhhttp://download.virtualbox.org/virtualbox/2.1.0/VirtualBox-2.1.0_4114...
> (dmitr...@weppard.mtv.corp.google.com) (gcc version 4.0.3

Midhun

unread,
Jan 10, 2009, 10:46:25 AM1/10/09
to android-porting
Hi All,

With the help of this thread, I could run Android partially on my
Laptop :) (A Compaq Presario with AMD Turion 64x2 and NVIDIA 6150). I
am now facing the following issues:

1. I boot Android out of my USB drive. With NVIDIA FB disabled in the
kernel, I was able to get the command prompt but the screen would keep
going blank. (I know that its a driver issue. I could access the
terminal again using Alt+F1).

2. So, now I compile the kernel with NVIDIA FB and it shows the
shimmering Android logo :). But nothing happens after that :(. I have
tried accessing the terminal by Alt+F1. After I press for the first
time, the Android shimmer goes off and there is a static image. No
sign of the command prompt yet.

I would like to access the system boot log. Is the system boot log
written anywhere on the USB drive filesystem when Android boots ? (I
tried looking for it after mounting the same drive on to Ubuntu, but
could not find it.)

Also, for an instant before the Andriod logo came up, I saw that there
was an error regarding keyboard layout. Is there a difference between
the keyboard layouts of eee PC and normal laptops ?

Any other way to debug this ?

Thanks a lot for all the help :)
Midhun.

gowtham gowda

unread,
Jan 10, 2009, 12:01:12 PM1/10/09
to android-porting
i am able to run it on my lenovo x200. Have to start adding drivers.

I ran into the blank screen issue with my mini itx via board. I need
some time to get the right driver and compile for the via chrome video
chipset. in your case u need to add the nvidia modules to the kernel
or init.rc script or disable nvidia video card in bios and use the
intel onboard video controller.

gowtham gowda

unread,
Jan 10, 2009, 10:07:48 PM1/10/09
to android-porting
i am running into a blank screen when i use the new kernel image. I
think its because of the older kernel (2.6.25) used in the eee pc
build. And the "menu makeconfig" is compiling the new 2.6.27 kernel,
so the driver modules are mismatching Do you know how to build drivers
for kernel 2.6.27?

Thanks,
Gowtham

On Jan 10, 12:37 am, "Chen Yang" <sunsety...@gmail.com> wrote:
> I remembered that pmem may be one issue with x86. So with the kernel.config,
> you need to disable it, otherwise, it may complain errors in compilation:
> Device Drivers
>    [*] Misc devices  --->
>       []   Android pmem allocator
>
> Please de-select the pmem part.
>
> Hope it helps!
> --
>  Chen
>

Chen Yang

unread,
Jan 10, 2009, 10:36:39 PM1/10/09
to android...@googlegroups.com
It looks like that you are missing the vga=788 option, you can
reference my post:
http://groups.google.com/group/android-porting/msg/b9ffcb185b758b92
to set it and to see whether it can start successfully.
Regarding building drivers, you can just issue the command:
$make modules
and then find those modules and put to the directory I have replied earlier.
Hope it helps!
--
Chen

rukiman

unread,
Jan 12, 2009, 8:22:33 PM1/12/09
to android-porting
I have successfully got Android running on a VMWare. I have a few
questions

1) The keyboard is painful. When in the shell I cannot CTRL-C to kill
logcat etc. Is there a way to fix the keyboard so it work properly?
2) How can I set up for debugging ie how exactly do I run adb?
3) Has anyone managed to forward the AT commands to a GSM modem
connected to a serial port?
Message has been deleted

Chen Yang

unread,
Jan 14, 2009, 7:54:59 AM1/14/09
to android...@googlegroups.com
I was tempted to create the installed image directly and through some
study, it seems that I have already got it.
You may be able to use it directly with kvm and qemu, and by creating
the related vmdk files or transform to virtual disks for virtualbox.
I had thought that the make-live script may help, but it has some
issues to the paritions.

Here is the steps to create the installed_img directly.
Before starting, you can add mydroid/out/host/linux-x86/bin to your
path, thus you can use those host utilities directly.

1) do a make installer_img compilation, we need some files created to
save some effort, then change the working directory to that:
$cd mydroid/out/target/product/eee_701

2) create a disk layout config file, you can reference the
disk_layout.conf under vendor/asus/eee_701/disk_layout.conf
$vim disk_layout.conf
with the content:
start here --
device {
scheme mbr

# bytes in a disk sector (== 1 LBA), must be a power of 2!
sector_size 512

# What LBA should the partitions start at?
start_lba 2048

# Autodetect disk size if == 0
num_lba 0

partitions {
sysloader {
active y
type linux
}

recovery {
active y
type linux
}

boot {
active y
type linux
}

cache {
type linux
}

system {
type linux
}

third_party {
type linux
}

data {
type linux
}
}
}
--ends here

3. prepare one mbr file for your image file,
$cp grub/grub.bin installed.img

4.prepare your boot.img:
in boot.img, it basically contains three files: ramdisk, cmdline, kernel
so you can do like this:
$mkdir bootimg
$cp -raf root rootimg
Since by default, the system.img and userdata.img are built as ext2
image, so you can modify the rootimg/init.rc, change those ext3 to
ext2 and comment those kernel modules. Then you can build the ramdisk
file by utility mkboots:
$mkbootfs rootimg | gzip -9 > bootimg/ramdisk
$echo "console=tty0 console=ttyS1,115200n8 console=tty0
androidboot.hardware=eee_701 vga=788" > bootimg/cmdline
$cp kernel bootimg/kernel
$genext2fs -b 8192 -m 0 -d bootimg boot.img

5. prepare dummy image file for cache /third party (maybe optional):
$mkdir dummy
$genext2fs -b 8192 -m 0 -N 8 -d dummy dummy.img

6. create your data.img, the default userdata.img may be too small for
dalvik-cache.
$genext2fs -b 81920 -d data -N 512 -m 0 data.img

7. create your installed image:
$editdisklbl -l d.conf -i installed.img boot=boot.img
cache=dummy.img system=system.img third_party=dummy.img data=data.img
...
I/diskutils(31943): Wrote 83886080 bytes to installed.img @ 181839872
File edit complete. Wrote 5 images.

8. accomplished and enjoy
You can run the installed.img with kvm/qemu. Also you can use the
installed.img with vmware and virtualbox.
If you want to use network with kvm/qemu, you may need to compile
the rtl8139 driver.
If you want to use ext3, please apply "tune2fs -j your.img".

Enjoy!
--
Chen

Chen Yang

unread,
Jan 14, 2009, 7:58:57 AM1/14/09
to android...@googlegroups.com
I haven't tried to add it to link against bionic.
But one simple solution is to build the static linked one.
You can configure it by choosing it with make menuconfig:
Busybox Settings --->
Build Options --->
[*] Build BusyBox as a static binary (no shared libs)
then you can build it.
Hope it helps!
--
Chen

On Wed, Jan 14, 2009 at 11:50 AM, gowtham gowda <gowt...@gmail.com> wrote:
>
> another question for the expert dhen
>
> How can we add busybox to this build?
>
> Thanks,
> Gowtham
>
> On Jan 10, 10:36 pm, "Chen Yang" <sunsety...@gmail.com> wrote:
>> It looks like that you are missing the vga=788 option, you can
>> reference my post:http://groups.google.com/group/android-porting/msg/b9ffcb185b758b92
>> to set it and to see whether it can start successfully.
>> Regarding building drivers, you can just issue the command:
>> $make modules
>> and then find those modules and put to the directory I have replied earlier.
>> Hope it helps!
>> --
>> Chen
>>
Message has been deleted

gowtham gowda

unread,
Jan 19, 2009, 6:26:10 PM1/19/09
to android-porting
Hi Yang

I need your help.

I am running into the black screen on my mini-itx via board, even when
vga=785 is set in the menu.lst in grub.

This is the dmesg output.

<6>[ 11.236784] r8169: eth0: link up
<6>[ 24.129464] warning: `app_process' uses 32-bit capabilities
(legacy support in use)
<6>[ 24.219358] SurfaceFlinger[1949]: segfault at 38 ip 80110cf9 sp
b5db200c error 4 in libc.so[80100000+49000]
<6>[ 25.595133] SurfaceFlinger[1964]: segfault at 38 ip 80110cf9 sp
b5d2200c error 4 in libc.so[80100000+49000]
<6>[ 30.978081] SurfaceFlinger[1983]: segfault at 38 ip 80110cf9 sp
9e16600c error 4 in libc.so[80100000+49000]
<6>[ 36.359386] SurfaceFlinger[2002]: segfault at 38 ip 80110cf9 sp
9e0fe00c error 4 in libc.so[80100000+49000]
<6>[ 41.748622] SurfaceFlinger[2021]: segfault at 38 ip 80110cf9 sp
9e0fe00c error 4 in libc.so[80100000+49000]
<6>[ 49.295628] SurfaceFlinger[2040]: segfault at 38 ip 80110cf9 sp
b5d1600c error 4 in libc.so[80100000+49000]
<6>[ 51.677764] SurfaceFlinger[2055]: segfault at 38 ip 80110cf9 sp
9e18200c error 4 in libc.so[80100000+49000]
<6>[ 57.058660] SurfaceFlinger[2074]: segfault at 38 ip 80110cf9 sp
b5cde00c error 4 in libc.so[80100000+49000]
<6>[ 61.437928] SurfaceFlinger[2093]: segfault at 38 ip 80110cf9 sp
9e18200c error 4 in libc.so[80100000+49000]

any ideas?

Thanks,
Gowtham

On Jan 14, 7:58 am, "Chen Yang" <sunsety...@gmail.com> wrote:
> I haven't tried to add it to link against bionic.
> But one simple solution is to build the static linked one.
> You can configure it by choosing it with make menuconfig:
>    Busybox Settings  --->
>        Build Options  --->
>            [*] Build BusyBox as a static binary (no shared libs)
> then you can build it.
> Hope it helps!
> --
>  Chen
>

Chen Yang

unread,
Jan 19, 2009, 10:52:10 PM1/19/09
to android...@googlegroups.com
Your libc.so is causing segmentation fault.
You can firstly locate the routine at 0x10cf9 of libc.so, seems to be the instruction of "repnz scas %es:(%edi),%al" in strlen, possible reason edi points to incorrect location.
 
Have you changed the source of surfaceflinger?
--
 Chen

gowtham gowda

unread,
Jan 20, 2009, 3:32:56 PM1/20/09
to android-porting
honestly, i donno what surfacefinger is. I donno what i am changing
when i am configuring the kernel. Where should i look for
surfacefliner?

Thanks for the reply

Gowtham

On Jan 19, 10:52 pm, "Chen Yang" <sunsety...@gmail.com> wrote:
> Your libc.so is causing segmentation fault.
> You can firstly locate the routine at 0x10cf9 of libc.so, seems to be the
> instruction of "repnz scas %es:(%edi),%al" in strlen, possible reason edi
> points to incorrect location.
>
> Have you changed the source of surfaceflinger?
> --
>  Chen
>
> ...
>
> read more »

poppa

unread,
Jan 21, 2009, 12:12:56 AM1/21/09
to android-porting
After following the directions, I have these error messages.

--------------------------------------------------------------------------------------------------
Target userdata fs image: out/target/product/eee_701/userdata.img
du: cannot access `out/target/product/eee_701/data': No such file or
directory
/bin/bash: line 0: [: -lt: unary operator expected
find: `out/target/product/eee_701/data': No such file or directory
out/host/linux-x86/bin/genext2fs: out/target/product/eee_701/data is
neither a file nor a directory
make: *** [out/target/product/eee_701/userdata.img] Error 1
make: *** Waiting for unfinished jobs....
--------------------------------------------------------------------------------------------------

Sombody can help me?

I am trying to install android in ASUS Eee PC 701.


On 2008년12월24일, 오전12시11분, "Lim,GeunSik" <lee...@gmail.com> wrote:
> 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.

Chen Yang

unread,
Jan 21, 2009, 12:59:03 AM1/21/09
to android...@googlegroups.com
try to build it again without the -j 2 option:
$TARGET_ARCH=x86 TARGET_PRODUCT=eee_701 DISABLE_DEXPREOPT=true make installer_img
See whether it helps or not.
--
 Chen

Chen Yang

unread,
Jan 21, 2009, 1:01:59 AM1/21/09
to android...@googlegroups.com
Oops, it looks like that your frame buffer is not work well with the kernel.
Have you compiled the vesafb or related framebuffer support in the kernel?
--
Chen

Kevin Wang

unread,
Jan 21, 2009, 1:07:19 AM1/21/09
to android...@googlegroups.com
I think this is a bug in AOSP currently, it can be built by following commands:
$TARGET_ARCH=x86 TARGET_PRODUCT=eee_701 DISABLE_DEXPREOPT=true make droid

$TARGET_ARCH=x86 TARGET_PRODUCT=eee_701 DISABLE_DEXPREOPT=true make installer_img

Thanks
Kevin

gowtham gowda

unread,
Jan 21, 2009, 8:19:24 AM1/21/09
to android-porting
i am compiling for a via unichrome, i did include the vesafb when
using the "make menuconfig", then i copied the bzImage to vendor/asus/
eee_701/kernel and used the $ TARGET_ARCH=x86 TARGET_PRODUCT=eee_701
DISABLE_DEXPREOPT=true make -j2 installer_img to build the
installer.img.

Do i need to just compile as target_product=x86? and not use the asus
files?

Thanks,

Gowtham

On Jan 21, 1:01 am, Chen Yang <sunsety...@gmail.com> wrote:
> Oops, it looks like that your frame buffer is not work well with the kernel.
> Have you compiled the vesafb or related framebuffer support in the kernel?
> --
> Chen
>
> ...
>
> read more »

Chen Yang

unread,
Jan 21, 2009, 8:53:14 AM1/21/09
to android...@googlegroups.com
Would you like to provide related dmesg info? You can just print the lines leading with vesafb.
--
 Chen

Chen Yang

unread,
Jan 21, 2009, 10:38:25 AM1/21/09
to android...@googlegroups.com
upgrade the kernel to target machine without reinstallation:
build your kernel
connect to your target with adb
$adb shell
#mkdir /data/mnt
#mount -t ext2 /dev/block/sda3 /data/mnt
#rm /data/mnt/kernel
#exit
$adb push path_to_new_kernel /data/mnt/kernel
if it finishes successfully
$adb shell umount /data/mnt
if not, you need to resize that partition using resize2fs.
--
Chen

AndyM

unread,
Jan 21, 2009, 1:43:01 PM1/21/09
to android-porting
Is there a way to capture android logs to a file? I'm talking about
the types of messages you would normally see in logcat.

I tried making /dev/log/main but I don't find any log files in there
after booting android. Does my init.rc need to be configured a
particular way to start some sorta logging?

AndyM

unread,
Jan 21, 2009, 2:46:50 PM1/21/09
to android-porting
nevermind. If your running your system off a USB stick then removing
the stick removes the logs. Instead I just went to the console (alt
+f1) and redirected the log file output to a file. (ie cat /dev/log/
main > name_of_your_file)

Stargatto

unread,
Feb 2, 2009, 5:36:07 PM2/2/09
to android-porting
> 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]
>

Sorry, I've compiled the kernel with some useless modules for the hw
of my PC. I've add a 2.7 kernel compiled as proposed by Cheng Yang,
http://www.dei.unipd.it/~rossicar/bzImage27

So, I succedeed to bring Android x86 running inside VirtualBox.
I created a fake linux installation (using a live distro inside VBox)
and
launching the make-live script on a virtual drive; so I've modified
the
kernel-options.

And so...?

I'm trying to make a real GSM call and send SMS using Android; I've
got
an USB UMTS-key (E169) which permits to do GSM voice call and send/
receive
SMS with the AT commands stated in 3GPP TS.*** standards.
If someone is interested I would start another topic on this argument!

bboy

unread,
Feb 4, 2009, 10:38:19 AM2/4/09
to android-porting
I have the same problem, and have already tried the solutions.
Using the first solution, I got the following message
make: *** No rule to make target `droid'. Stop.

and Second solution, I remove -j2 from command but got the same error
message as before.
out/host/linux-x86/bin/genext2fs: out/target/product/eee_701/data is
neither a file nor a directory
make: *** [out/target/product/eee_701/userdata.img] Error 1

Is there anyone has ideas??

thanks

cookie

unread,
Feb 4, 2009, 5:57:12 PM2/4/09
to android-porting
2 Questions:

1. Can someone upload working installer *.img file for Asus Eee PC?
2. Have anyone tried to run Android on 904HD?

Dima Zavin

unread,
Feb 4, 2009, 7:05:54 PM2/4/09
to android...@googlegroups.com
On Wed, Feb 4, 2009 at 7:38 AM, bboy <mimi02...@gmail.com> wrote:

I have the same problem, and have already tried the solutions.
Using the first solution, I got the following message
make: *** No rule to make target `droid'.  Stop.

and Second solution, I remove -j2 from command but got the same error
message as before.
out/host/linux-x86/bin/genext2fs: out/target/product/eee_701/data is
neither a file nor a directory
make: *** [out/target/product/eee_701/userdata.img] Error 1

Is there anyone has ideas??

Try make droidcore for now instead of make droid. This is not a long term solution though. I will have a real fix soon.

--Dima

 

bboy

unread,
Feb 4, 2009, 11:26:13 PM2/4/09
to android-porting
my mistake, I execute the command "make droid" in the subdirectory of
mydroid,
when I execute under the mydroid directory, "make droid" have no error
messages.
Then I execute the command "$TARGET_ARCH=x86 TARGET_PRODUCT=eee_701
DISABLE_DEXPREOPT=true make installer_img"
I got the installer.img.

I've tried installing on the eeepc 900. But failed when USB boots. And
a console like Busybox appeared.
I've tried eeepc 701 also, that's ok, It can boot in the Android OS.
But wireless, camera.... etc, didn't work.

On 2月5日, 上午8時05分, Dima Zavin <d...@android.com> wrote:

liuhy

unread,
Feb 8, 2009, 11:28:01 AM2/8/09
to android-porting
Dear Chen

I meat "no sda6" problem.

print this error
"E/diskutils(1752):Could not open '/dev/block/sda6' for read/write
(errno = 2)"

I follow you flow , reboot vm ,but the same error.
Did I miss do something ?




On 2008年12月28日, 下午4时40分, "Chen Yang" <sunsety...@gmail.com> wrote:
> 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
>
> On Sat, Dec 27, 2008 at 5:57 PM, Andriod Developer <andrd.dv...@gmail.com>wrote:
>
>
>
>
>
> > 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
> > > On Sat, Dec 27, 2008 at 2:58 AM, Andriod Developer <
> > andrd.dv...@gmail.com>wrote:
>
> > > > 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
> > > > > $ TARGET_ARCH=x86 TARGET_PRODUCT=eee_701 DISABLE_DEXPREOPT=true make
> > > > > sbin- 隐藏被引用文字 -
>
> - 显示引用的文字 -

Chen Yang

unread,
Feb 8, 2009, 11:48:48 AM2/8/09
to android...@googlegroups.com
hi, I don't know whether the modification to sda has been already
flushed to the virtual disk of VMWare. The safe way seems to issue the
command: "reboot" in the console. Meanwhile, i have no idea on whether
VMWare version matters or not. My VMWare workstation is 6.5.
I have posted the steps to build the installed image file directly here:
http://groups.google.com/group/android-porting/msg/2dedc5fe7ad58ed3
After that you can use the steps to create the vmdk to use with VMWare. :)
See whether it solves the issue.
Hope it helps.
--
Chen

刘淮涌

unread,
Feb 9, 2009, 6:24:41 AM2/9/09
to android...@googlegroups.com
Thanks for you reply.
I did input "reboot" in the console. but also failed.
My VM is 5.5, may be too old :)
Do you kown  where is "sda6" setting ? In which config file?
 
I will try you suggestion
3x

Chen Yang

unread,
Feb 9, 2009, 6:42:01 AM2/9/09
to android...@googlegroups.com
in /system/etc/disk_layout.conf
device {
...
system {
type linux
len 512M
}
...
}

--
Chen

Chen Yang

unread,
Feb 9, 2009, 7:23:19 AM2/9/09
to android...@googlegroups.com
hi I have tried on one of my old machine with VMWare 5.0, what I have
described also works for that version, so it doesn't seem to be caused
by version.
Have you created one virtual IDE primary Master hard disk with no
less than 1.8GB capacity? And specified the installer.img as the other
hard disk and choose it as the boot up device?
--
Chen

On Mon, Feb 9, 2009 at 7:24 PM, 刘淮涌 <liuhu...@gmail.com> wrote:

liuhy

unread,
Feb 9, 2009, 7:31:34 AM2/9/09
to android...@googlegroups.com
Dear Chen:
I have succeed  boot android in my vm.
I edit disk_layout.conf serverl day ago , but forget to revert it . So install it failed.
Thanks for your help.

brian...@gmail.com

unread,
Feb 11, 2009, 4:43:45 AM2/11/09
to android-porting
Hi,

I use this way to compile 2.6.25 kernel from git. I put bzImage into
vendor/asus/eee_701/kernel.
then I rebuild the whole system.
TARGET_ARCH=x86 TARGET_PRODUCT=eee_701 DISABLE_DEXPREOPT=true make -j2
installer_img

When i boot the system with my compiled kernel.
I found following error.
atl2: disagrees about version of symbol
...
i915: disagrees about version of symbol


I tried to build those driver from kernel tree. but I found i915
doesn't have modeset param at all.

something wrong with my kernel source code? If so, where can I get the
right source code?

Thanks in advance
> 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!
> --
>  ChenOn Fri, Jan 9, 2009 at 9:23 AM, rukiman <ruksh...@optushome.com.au> wrote:
>
> > 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.
>

bo wang

unread,
Feb 11, 2009, 4:59:55 AM2/11/09
to android...@googlegroups.com
hi ,

you build the img to EPC701?you install img to EPC701 or other platfrom ?
i build the img to 701 and i install to EPC900SD , will blackscreen ....
the EPC900SD motherborad  is mobile 945  and you build  kernel modules use i915.ko .

 i can't find the right driver source code too....

Best Regards,
Sam

It is loading more messages.
0 new messages