AndroidをEeePC901で動かす!
ITProを参考に試してみました。
動作環境は、
- EeePC901
- USBメモリから起動
必要なものは
- 開発環境の準備
$> 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 g++ 以下の特別パッケージがインストールされます: libaa1-dev libartsc0-dev libasound2-dev libaudio-dev libaudiofile-dev libcaca-dev libcucul-dev libdigest-sha1-perl libdirectfb-dev libdirectfb-extra liberror-perl libfreetype6-dev libgl1-mesa-dev libglib2.0-dev libglu1-mesa-dev libglu1-xorg-dev libice-dev libjpeg62-dev libpng12-dev libpthread-stubs0 libpthread-stubs0-dev libsdl1.2-dev libslang2-dev libsm-dev libsysfs-dev libwxbase2.6-0 libwxbase2.6-dev libwxgtk2.6-0 libx11-dev libxau-dev libxcb-xlib0-dev libxcb1-dev libxdmcp-dev libxext-dev libxi-dev libxt-dev m4 mesa-common-dev wx2.6-headers x11proto-core-dev x11proto-input-dev x11proto-kb-dev x11proto-xext-dev xtrans-dev 提案パッケージ: bison-doc git-doc git-arch git-cvs git-svn git-email git-daemon-run git-gui gitk gitweb libasound2-doc libglib2.0-doc wx-common wx2.6-doc xlibmesa-gl-dev libgl-dev xlibmesa-glu-dev libglu-dev libc6-dbg kcachegrind alleyoop 推奨パッケージ: ca-certificate 以下のパッケージが新たにインストールされます: bison curl flex git-core gperf libaa1-dev libartsc0-dev libasound2-dev libaudio-dev libaudiofile-dev libcaca-dev libcucul-dev libdigest-sha1-perl libdirectfb-dev libdirectfb-extra liberror-perl libesd0-dev libfreetype6-dev libgl1-mesa-dev libglib2.0-dev libglu1-mesa-dev libglu1-xorg-dev libice-dev libjpeg62-dev libpng12-dev libpthread-stubs0 libpthread-stubs0-dev libsdl1.2-dev libslang2-dev libsm-dev libsysfs-dev libwxbase2.6-0 libwxbase2.6-dev libwxgtk2.6-0 libwxgtk2.6-dev libx11-dev libxau-dev libxcb-xlib0-dev libxcb1-dev libxdmcp-dev libxext-dev libxi-dev libxt-dev m4 mesa-common-dev valgrind wx2.6-headers x11proto-core-dev x11proto-input-dev x11proto-kb-dev x11proto-xext-dev xtrans-dev アップグレード: 0 個、新規インストール: 52 個、削除: 0 個、保留: 0 個。 39.4MB のアーカイブを取得する必要があります。 この操作後に追加で 114MB のディスク容量が消費されます。 : :
- Android専用のプロジェクト管理ツール(repo)のインストール
$> cd ~ $> mkdir bin $> cd bin $> wget http://android.git.kernel.org/repo $> chmod a+x ~/bin/repo
- Javaの設定とか
$> export JAVA_HOME=/usr/lib/jvm/java-6-sun $> export PATH=$PATH:~/bin
- Androidの取得
$> cd ~ $> mkdir cupcake $> cd cupcake $> repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake gpg: 鍵輪「/home/kario/.repoconfig/gnupg/secring.gpg」ができました gpg: 鍵輪「/home/kario/.repoconfig/gnupg/pubring.gpg」ができました gpg: /home/kario/.repoconfig/gnupg/trustdb.gpg: 信用データベースができました gpg: 鍵920F5C65: 公開鍵“Repo Maintainer <repo@android.kernel.org>”を読み込みました gpg: 処理数の合計: 1 gpg: 読込み: 1 Getting repo ... from git://android.git.kernel.org/tools/repo.git warning: no common commits remote: Counting objects: 365, done. remote: Compressing objects: 100% (213/213), done. remote: Total 365 (delta 203), reused 263 (delta 138) Receiving objects: 100% (365/365), 169.83 KiB | 105 KiB/s, done. Resolving deltas: 100% (203/203), done. From git://android.git.kernel.org/tools/repo * [new branch] master -> origin/master * [new branch] stable -> origin/stable * [new tag] v1.6.3 -> v1.6.3 From git://android.git.kernel.org/tools/repo * [new tag] v1.0 -> v1.0 * [new tag] v1.0.1 -> v1.0.1 * [new tag] v1.0.2 -> v1.0.2 * [new tag] v1.0.3 -> v1.0.3 * [new tag] v1.0.4 -> v1.0.4 * [new tag] v1.0.5 -> v1.0.5 * [new tag] v1.0.6 -> v1.0.6 * [new tag] v1.0.7 -> v1.0.7 * [new tag] v1.0.8 -> v1.0.8 * [new tag] v1.0.9 -> v1.0.9 * [new tag] v1.1 -> v1.1 * [new tag] v1.2 -> v1.2 * [new tag] v1.3 -> v1.3 * [new tag] v1.3.1 -> v1.3.1 * [new tag] v1.3.2 -> v1.3.2 * [new tag] v1.4 -> v1.4 * [new tag] v1.4.1 -> v1.4.1 * [new tag] v1.4.2 -> v1.4.2 * [new tag] v1.4.3 -> v1.4.3 * [new tag] v1.4.4 -> v1.4.4 * [new tag] v1.5 -> v1.5 * [new tag] v1.5.1 -> v1.5.1 * [new tag] v1.6 -> v1.6 * [new tag] v1.6.1 -> v1.6.1 * [new tag] v1.6.2 -> v1.6.2 Getting manifest ... from git://android.git.kernel.org/platform/manifest.git warning: no common commits remote: Counting objects: 70, done. remote: Compressing objects: 100% (27/27), done. remote: Total 70 (delta 26), reused 58 (delta 20) Unpacking objects: 100% (70/70), done. From git://android.git.kernel.org/platform/manifest * [new branch] cdma-import -> origin/cdma-import * [new branch] cupcake -> origin/cupcake * [new branch] donut -> origin/donut * [new branch] master -> origin/master * [new branch] release-1.0 -> origin/release-1.0 From git://android.git.kernel.org/platform/manifest * [new tag] android-1.0 -> android-1.0 Branch default set up to track remote branch refs/remotes/origin/cupcake. Switched to a new branch "default" Your Name [xxxx xxxxx]: xxxx xxxx<span style="color:#FF0000;"> <- 自分の名前</span> Your Email [xxxx@xxxxx.(none)]: xxxxx@example.com<span style="color:#FF0000;"> <- メールアドレス</span> Testing colorized output (for 'repo diff', 'repo status'): black red green yellow blue magenta cyan white bold dim ul reverse Enable color display in this user account (y/n)? y repo initialized in /home/kario $> repo sync<span style="color:#0000FF;"> <- すごーく時間がかかります。。。(30分程度)</span>
- EeePC901用のレポジトリ設定ファイルを記述
$> vi .repo/local_manifest.xml<span style="color:#0000FF;"> <- "701"ってなってるけど、x86系はこれでいいらしい</span> <manifest> <project name="platform/vendor/asus/eee_701" path="vendor/asus/eee_701"/> </manifest> $> repo sync
- バグ修正
$> vi frameworks/base/services/java/com/android/server/PowerManagerService.java 350: // assume nothing is on yet 351: mUserState = mPowerState = <span style="color:#FF0000;">SCREEN_BRIGHT</span>;
- ビルド
$> 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 $> TARGET_ARCH=x86 TARGET_PRODUCT=eee_701 DISABLE_DEXPREOPT=true make installer_img : target Java: core (out/target/common/obj/JAVA_LIBRARIES/core_intermediates/classes) Unrecognized option : 9999999 make: *** [out/target/common/obj/JAVA_LIBRARIES/core_intermediates/classes-full-debug.jar] エラー 41 JAVAの環境が変?? [http://groups.google.com/group/android-platform/browse_thread/thread/3660c2ac60a305b0/89e1a0517e66eee4?lnk=raot:title=ココ]を参考にして解決! Javaが複数バージョン混在してて、グダってたみたい。。。 $> javac -verison Eclipse Java Compiler v_774_R33x, 3.3.1, Copyright IBM Corp 2000, 2007. All rights reserved. $> which javac /usr/bin/javac $> ls -l /usr/bin/javac lrwxrwxrwx 1 root root 23 2008-10-06 12:27 /usr/bin/javac -> /etc/alternatives/javac $> ls -l /etc/alternatives/javac lrwxrwxrwx 1 root root 31 2009-03-19 17:05 /etc/alternatives/javac -> /usr/lib/jvm/java-gcj/bin/javac $> sudo update-alternatives --config javac `javac' を提供する 5 個の alternatives があります。 選択肢 alternative ----------------------------------------------- 1 /usr/bin/gcj-wrapper-4.2 2 /usr/bin/ecj 3 /usr/bin/gcj-wrapper-4.3 *+ 4 /usr/lib/jvm/java-gcj/bin/javac 5 /usr/lib/jvm/java-6-sun/bin/javac デフォルト[*] のままにするには Enter、さもなければ選択肢の番号のキーを押してください: <span style="color:#FF0000;">5</span> <- Sunのヤツを使うように変更 $> javac -version javac 1.6.0_10 $> cd ~/cupcake/ $> TARGET_ARCH=x86 TARGET_PRODUCT=eee_701 DISABLE_DEXPREOPT=true make installer_img : Java.Lang.NullPointerException : make: *** [out/target/common/docs/offline-sdk-timestamp]
なぜ。。。
今日はとりあえずココまで。。。