cupcakeをx86で起動する
★20100820
○x86用のAndroidを試し、W03用に変更する。(android.imgを作成し、LinuxLoaderから起動する)
androidのバージョンは1.5(cupcake)
※まずはVM上で起動させてみる
→リポジトリを初期化しソースを取得する。
$ mkdir cupcake
$ cd cupcake
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake
$ repo sync
→EeePC701用のリポジトリ設定ファイルlocal_manifest.xmlを作成する。
googleがx86向けの環境をEeePCと定義しているだけなので問題ない。
$ vi ./.repo/local_manifest.xml
##以下の内容を入力して保存する##
→再度リポジトリの同期を行い,EeePC701用のソースを取得する。
$ repo sync
→電源管理インタフェースが無いと,入力イベントを受け付けなくなるというバグがあるので修正する。
$ vi frameworks/base/services/java/com/android/server/PowerManagerService.java Enterキー
##344行目付近,PowerManagerServiceクラスのコンストラクタ内##
// assume nothing is on yet
mUserState = mPowerState = 0;
##上記を以下のように変更する##
// assume nothing is on yet
mUserState = mPowerState = SCREEN_BRIGHT;
→ビルド開始
$ TARGET_ARCH=x86 TARGET_PRODUCT=eee_701 DISABLE_DEXPREOPT=true make installer_img
■以下のエラー発生
build/target/board/Android.mk:35: *** Please rename "vendor/asus/eee_701/Android.mk" to "vendor/asus/eee_701/AndroidBoard.mk". 中止.
→修正する
$ mv vendor/asus/eee_701/Android.mk vendor/asus/eee_701/AndroidBoard.mk
→ビルド再開
■以下のエラー発生
make: *** [out/target/product/eee_701/installer/ramdisk-installer.img] エラー 1
→http://d.hatena.ne.jp/re_shikajiro/20090825/1251184028情報より以下の修正が必要
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
external/e2fsprogs/Android.mk:
--- a/Android.mk
+++ b/Android.mk
@@ -1,3 +1,3 @@
ifneq ($(TARGET_SIMULATOR),true)
-# include $(call all-subdir-makefiles)
+ include $(call all-subdir-makefiles)
endif
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
$ vim external/e2fsprogs/Android.mk
→ビルド再開
■以下のエラー発生
make: *** `out/target/product/eee_701/system/etc/permissions/com.google.android.maps.xml' に必要なターゲット `vendor/google/frameworks/maps/com.google.android.maps.xml' を make するルールがありません. 中止.
→http://code.google.com/p/patch-hosting-for-android-x86-support/wiki/noruletomaketarget情報により以下の修正が必要
vendor/asus/eee_701/eee_701.mk, change 'generic_with_google.mk' to 'generic.mk' in the line
$ vi vendor/asus/eee_701/eee_701.mk
→修正後ビルド再開
■以下のエラー発生
make: *** ファイル `out/target/common/obj/JAVA_LIBRARIES/core-tests_intermediates/javalib.jar' を削除します
→javaのバージョンが1.6のため1.5に設定し直す。
$ sudo update-alternatives --config java
→修正後ビルド再開
→エラーが消えなかったので、cleanを実行
$ make clean
→ビルド再開
→同エラー
→http://www.mailinglistarchive.com/html/android-porting@googlegroups.com/2010-06/msg00202.html情報より
You can make the build continue if you remove all files in
libcore/dom/src/test/resources and libcore/xml/src/test/resources.
$ cd dalvik/libcore/dom/src/test/resouces
$ rm -rf *
$ cd dalvik/libcore/xml/src/test/resources
$ rm -rf *
→ビルド再開
→同エラー
→http://d.hatena.ne.jp/dai5891/20100612/情報より
Delete duplicated files. Closes: #71
* libcore/support/src/test/resources/hyts_Foo.c 1 -
* libcore/xml/src/test/resources/hc_staff.xml 60 ------------------------------------------------------------
* libcore/xml/src/test/resources/staff.dtd 17 -----------------
* libcore/xml/src/test/resources/staff.xml 57 ---------------------------------------------------------
* libcore/xml/src/test/resources/staff2.dtd 24 ------------------------
* libcore/xml/src/test/resources/staff2.xml 13 -------------
* libcore/xml/src/test/resources/staffNS.dtd 45 ---------------------------------------------
* libcore/xml/src/test/resources/staffNS.xml 59 -----------------------------------------------------------
* libcore/xml/src/test/resources/xhtml1-strict.dtd 65 -----------------------------------------------------------------
$ cd dalvik/libcore/support/src/test/resources
$ rm -rf hyts_Foo.c
→やっと進んだ(javaのバージョンは1.5のまま)
→やっと終了!
■以下のエラーが発生した場合の対応
make: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt] エラー 1
$ sudo apt-get install zlib1g-dev
→カーネルをビルドしようとしたらカーネルのソースコードがない
→カーネルソースはデフォルトで取得できないようになっている(manifestが削除されている)
→local_manifest.xmlを使用して必要なコードを追加できる。
→http://at-aka.blogspot.com/search/label/repo
→local_manifest.xmlに以下を追記