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
(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

#> 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.

--~--~---------~--~----~------------~-------~--~----~
unsubscribe: android-porting+unsubscr...@googlegroups.com
website: http://groups.google.com/group/android-porting
-~----------~----~----~----~------~----~------~--~---

Reply via email to