Google OS実験室 ~Moonlight 明日香~

GoogleのAndroidで遊び始めて, すでに6年以上が経った. Androidは思った以上の発展を遂げている. この技術を使って, 新しいことにチャレンジだ!!

AndroidをVMPlayerにインストールする

Android-x86を試そうとおもったら, テスト用PCがUSBブートに対応していなかったので, 今回はVMPlayerで試してみました.

VMPlayer 3.0にLive CDイメージを使ってインストールする方法をまとめておきます.

1. Live CDイメージを準備する.
"Android-x86をビルドする"を参照して, Live CDイメージを作成する.

もし, ビルドするのが面倒な方は, 以下のURLのStableReleaseから"Android-x86 1.6 live & installation iso image"をダウンロードしてください.
http://www.android-x86.org/download

2. 仮想マシンを作成する.
(1) VMPlayer 3.0を起動し, 「新規仮想マシンの作成(N)」を選択する.
(2) 「インストーラディスクイメージファイル(M)(iso):」を選択し, (1)で準備したAndroid-x86のLive CDイメージを指定する.
(3) 「ゲストOSの選択」で, "Linux"を選択し, バージョンは"他のLinux 2.6.xカーネル"を選択する.
android3-01

(4) 「仮想マシンの名前」の情報を設定する. 仮想マシン名は"Android 1.6"とした.
Android3-02

(5) 「ディクス容量の指定」はデフォルトのままでOK. メモリ等を設定したい場合は, 「ハードウェアをカスタマズ(C)」で設定する.
Android3-03

3. インストールする. [1]
(1) Andorid-x86のインストーラを起動する.
各種設定を完了するとインストーラが起動するので, 「Installation」を選択する.

Android3-04

(2) パーティションを作成する.
「Create/Modify partitions」を選択する.
Android3-05

しかし, ここでエラーが....
どうも, ディスクが見えないようだ.

Android3-06

いろいろと調べてみると, Androidはide0:0に仮想ドライブを作っておかないとインストールは出来ないようです. (デフォルトはscsi0:0)
そこで, 仮想マシンのディレクトリ内の"Andorid 1.6.vmx"ファイルの以下の部分を修正する.

scsi0:0.present = "TRUE"
scsi0:0.fileName = "Android 1.6.vmdk"
   ↓ 修正
ide0:0.present = "TRUE"
ide0:0.fileName = "Android 1.6.vmdk"

VMPlayer 3.0を立ち上げ, 「仮想マシンを開く(O)」から"Android 1.6.vmx"を選択して, 再度インストーラを起動する.
(2-1) 「Create/Modify partitions」を選択する.
(2-2) パーティションを作成する.
[NEW]を選択する.

Android3-07

[Primary]を選択する.
Android3-08

[Bootable]を選択し, Bootable flagを設定する.
Android3-09

最後に[Write]すると, パーティションの作成は完了.

(3) Andorid-x86をインストールする.
「sda1  Linux   VMware Virtual I」を選択する.

Android3-11

「ext3」でフォーマットする.

Android3-12

「Boot loader GRUB」をインストールすると, Androidがインストールされる.
Android3-13

4. Andorid-x86を起動してみる.
Android-x86を起動すると, このような起動画面が表示される.
Android3-15

やっと, Androidが動くようになったので, これからいろいろと試してみよ~う. 

--------
参考URL:
 [1] 
Installation (Android-x86 - Porting Android to x86)

Android-x86をビルドする

Android本家からソースをダウンロードしてAndroidをビルドしてみようと思ったのですが, まずは, Androidをx86パソコンで動作させるために活動されているAndroid-x86 Projectの成果を活用させていただくことにしました.

Android-x86のビルドに関しては, 多くの方が情報を公開されていますが, 一応手順をまとめておきます.

1. ビルド環境を構築する.
[1]
1.1 必要なパッケージをインストールする.
 - Git 1.5.4以上, GNU Privacy Guard
 - JDK 6.0 (Android本家ではSunのJDK5.0.xとなってますが, Ubuntu 9.10ではjun-java5-*パッケージがないので...)
 - flex, bison, gperf, libsdl-dev, libesd0-dev, libwxgtk2.6-dev, build-essential, zip, curl
 - valgrind


$ sudo apt-get update
$ sudo apt-get -y install git-core gnupg sun-java6-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind

1.2 Repoをインストールする.
ホームディレクトリの~/binにrepoをインストールし, PATHを通す.

$ cd ~
$ mkdir bin
$ curl
http://android.git.kernel.org/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
$ export PATH=$PATH:~/bin


2. ソースコードを取得する. [2][3]
Android-x86のGetSourceからソースコードをダウンロードする. (今回ダウンロードしたのは, android-x86 1.6 2010-01-25版)

$ mkdir Android-x86
$ cd Android-x86
$ repo init -u git://git.android-x86.org/platform/manifest.git -b donut-x86
$ repo sync

SourceForge.net: android-x86 - Developからも同様のソースコードをダウンロードできる.

$ repo init -u git://android-x86.git.sf.net/gitroot/android-x86/manifest.git -b donut-x86

SourceForge.netの方がダウンロード時間が短いようだ!!

3. ビルドする.
make一発で終わりかと思ったら, ビルドエラーが....

                           :
external/opencore/pvmi/pvmf/include/pvmf_event_handling.h:339: undefined reference to `vtable for PVMFAsyncEvent'
external/opencore/pvmi/pvmf/include/pvmf_event_handling.h:339: undefined reference to `vtable for PVMFAsyncEvent'
external/opencore/pvmi/pvmf/include/pvmf_event_handling.h:339: undefined reference to `vtable for PVMFAsyncEvent'
out/target/product/eeepc/obj/STATIC_LIBRARIES/libpvjitterbuffernode_intermediates/libpvjitterbuffernode.a(pvmf_jitter_buffer_node.o): In function `PVMFCmdResp':
external/opencore/pvmi/pvmf/include/pvmf_event_handling.h:140: undefined reference to `vtable for PVMFCmdResp'
collect2: ld returned 1 exit status
make: *** [out/target/product/eeepc/obj/SHARED_LIBRARIES/libopencore_net_support_intermediates/LINKED/libopencore_net_support.so] エラー 1

3.1 パッチをあてる.
Android-x86のDownloadからpatch(opencore build break fix for donut and eclair)をAndroid-x86ディレクトリにダウンロードし, opencoreにpatchをあてる.

$ cd external/opencore
$ patch -p1 < ../../open_core_build_break.diff

3.2 イメージファイルを作成する.
makeすると, Live USBイメージファイル(eeepc_usb.img)がout/target/product/eeepcに作られる.

$ cd ../../
$ make usb_img TARGET_PRODUCT=eeepc

注) Live CD-ROMイメージを作る場合は, "usb_img"を"iso_img"とする.

4. USBイメージを書き込む.
512Mバイト以上のUSBメモリーを準備し, eeepc_usb.imgを書き込む.

$ sudo dd if=out/target/product/eeepc/eeepc_usb.img of=/dev/sdX

注) /dev/sdXのXはUSBメモリのデバイスに設定する.

書き込みが完了すると, Live USBイメージの作成は終わり!!


-----
参照URL:
 [1] Get source (Android Open Source Project)
 [2] Get Source (Android-x86 - Porting Android to x86)
 [3] SourceForge.net: android-x86 - Develop
 [4] 「Android」をx86パソコンで動かしてみよう

livedoor プロフィール
アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

記事検索



  • ライブドアブログ