2009年1月22日木曜日

x86 Android on VMWare

1. Android Master Branch の取得
repo init & sync で Android の master branch をダウンロードする。

2. EeePC701 project の取得
local manifest を編集、repo syncして、ASUS Eee PC 701 用の project を
ダウンロードする。
$ cat ./.repo/local_manifest.xml
<manifest>
<project name="platform/vendor/asus/eee_701" path="vendor/asus/eee_701"/>
</manifest>
3. x86 kernel の Build
(1) VESA FB、PCNET32をサポートした kernel をコンパイルする。
./vendor/asus/eee_701/kernel/kernel.config を元にして
$ cp ./vendor/asus/eee_701/kernel.confg kernel/.config
$ cd ./kernel; make menuconfig
$ make bzImage
(2) build した kernel を ./vendor/asus/eee_701 にある precompiled
kernel と置き換える。
$ cp ./kernel/arch/x86/boot/bzImage ./vendor/asus/eee_701/kernel
(3) kernel の起動オプションに vga=788 を加えるために BoardConfig.mk を
編集する。
$ vi ./vendor/asus/eee_701/BoardConfig.mk
...
BOARD_KERNEL_CMDLINE := vga=788 console=tty0 console=ttyS1,115200n8 console=tty0 androidboot.hardware=eee_701
...

4. x86 Android の Build
(1) x86 ターゲットの Android の installer を build する。
$ TARGET_ARCH=x86 TARGET_PRODUCT=eee_701 DISABLE_DEXPREOPT=true make installer_img
(2) build 結果の確認
$ ls  ./out/target/product/eee_701/
boot.img grub/ kernel root/ system.img
clean_steps.mk installer/ obj/ symbols/ userdata.img
data/ installer.img ramdisk.img system/

5. VMWare への install
(1) installer disk imageの作成
installer.vmdk ファイルを作成する。
Extent description のサイズ値は「installer.img のサイズ/512」とする。
# Disk DescriptorFile
version=1
CID=b01deebc
parentCID=ffffffff
createType="monolithicFlat"
# Extent description
RW 799902 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"
QEMUに付属のqemu-imgコマンドが利用できればより簡単に作成可能。
$ qemu-img convert installer.img -O vmdk installer.vmdk
(2) インストール先の仮想ディスクの作成
インストール先となる仮想ディスク(2GB程度)のvmdkを作成する。QEMUに付属のqemu-imgコマンドが利用できれば下記の通りで作成可能。
$ qemu-img create -f vmdk android.vmdk 2G
(3) VMWare 上での IDE ディスクの設定
IDE primary master にandroid.vmdkを,
IDE primary slave に installer.vmdk を設定

(4) installer disk での起動
BIOS 設定で IDE primary slave から VM を起動するとインストールが始まる。
"Successfully configured 6 images." と出てインストールは終了。

(5) Android の起動
VM を再起動して IDE primary master から Android を起動。

References
  • "Howto build Android full source for X86 Architecture like EeePC(ASUS)" http://groups.google.com/group/android-porting/msg/fe85782f1bc3ad2f?hl=en
  • http://d.hatena.ne.jp/androidzaurus/20081230/1230610811

x86android