スキップしてメイン コンテンツに移動

Android x86 をビルドする(フレームワーク編)

以下は、2009/7/22 0:39 に最新 cupcake ブランチのソースコードを取得して作業を行いました.
最新のツリーでは、カーネルがmenifest.xmlから外されているようですので、下記のようにlocal_manifest.xmlにプロジェクトを追加しました。

.reop/local_manifest.xml

<manifest>
<project name="kernel/common" path="kernel" revision="refs/heads/android-2.6.27" />
<project name="platform/vendor/asus/eee_701" path="vendor/asus/eee_701" />
</manifest>


ビルド開始
$ TARGET_ARCH=x86 TARGET_PRODUCT=eee_701 DISABLE_DEXPREOPT=true make installer_img

・・・

エラー1個目
build/target/board/Android.mk:35: *** Please rename "vendor/asus/eee_701/Android.mk" to "vendor/asus/eee_701/AndroidBoard.mk". 中止.

対策
ファイル名を変更する

$ cd vendor/asus/eee_701
$ mv Android.mk AndroidBoard.mk

参考
http://groups.google.com/group/android-porting/browse_thread/thread/f00cc3e0c7a3b1e1


エラー2個目
Copy: out/target/product/eee_701/obj/lib/libdiskconfig.so -> out/target/product/eee_701/installer/root/system/lib/libdiskconfig.so
Copy: ->
dirname: オペランドがありません
詳しくは 'dirname --help' を実行してください。
mkdir: オペランドがありません
詳しくは 'mkdir --help' を実行してください。
cp: オペランドがありません
詳しくは 'cp --help' を実行してください。
Copy: ->
・・・

対策
コメントアウトを外す。

$ vi external/e2fsprogs/Android.mk
- # include $(call all-subdir-makefiles)
+ include $(call all-subdir-makefiles)


参考
http://groups.google.com/group/android-porting/browse_thread/thread/fbce5c2a5dfab0eb


エラー3個目
make: *** 'out/target/product/eee_701/system/etc/permissions/com.google.android.maps.xml' に必要なターゲット 'vendor/google/frameworks/maps/com.google.android.maps.xml を make するルールがありません. 中止.

対策
.mkファイル内のファイル名を修正する。

$ vi vendor/asus/eee_701/eee_701.mk
-$(call inherit-product, $(SRC_TARGET_DIR)/product/generic_with_google.mk)
+$(call inherit-product, $(SRC_TARGET_DIR)/product/generic.mk)

参考
http://groups.google.com/group/android-porting/browse_thread/thread/bef9b4972321d398

以上で、とりあえずビルドは通りました。
でも、まだパッチを当てていません。
パッチを当てるのは、また今後にして、その前にカーネルをビルドします。

コメント

このブログの人気の投稿

iPhoneアプリを作る上でのモヤモヤを解消したい

フレームワークなんか使わなくてもガリガリコード書いちゃえばいいんだけど、なんか損してるんじゃないかと気になるのですよ。 でもフレームワークが自動的に色々やってくれてるのはありがたいのだけれど、何をやっているのか気になってモヤモヤしてしまう、というジレンマがあったりなかったり。 という訳でまずは、Xcode で Empty Application と Single View Application (Storyboard付き)で何か違うのかを調べてみた。 単純にコードの差分を比較すると以下の違いがあることがわかる。 追加されているファイル: ViewController.h ViewController.m MainStoryboard.storyboard ViewControllerはUIViewControllerからの派生で、viewDidLoadとdidReceiveMemeoryWarningだけがオーバーライドされただけのひな形。 MainStoryboard.storyboardは、ViewControllerとFirstResponder, Exit ViewControllerにはUIVIewが1つだけ配置されている。 ここまでは、ひな形が追加されているというだけなので、特にモヤモヤはなし。 次に差分のあるファイル:  app-info.plist  AppDelegate.m app.xocdeproj/project.pbxproj app.xocdeproj/project.xcworkspace/xcuserdata/cozy.xcuserdatad/UserInterfaceState.xcuserstate app.xocdeproj/xcuserdata/cozy.xcuserdatad/xcschemes/test.xcscheme  app.xocdeproj/xcuserdata/cozy.xcuserdatad/xcschemes/xcschememanagement.plist とりあえず、app.xcodeproj中身については脇に置いておこう。 app-info.plistは、以下の2行が追加されている。     <key>UIMainStoryboardFi

repo init の使い方覚書

Androidのソースコード管理ツール repo についての覚書. 使用例 repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake -u URL "URL"にはマニフェストファイルのリポジトリのURLを指定する. 通常は git://android.git.kernel.org/platform/manifest.git を指定する. -b REVISION マニフェストファイルのブランチまたはリビジョンを指定する. どんなブランチやリビジョンがあるかは、 http://android.git.kernel.org/platform/manifest.git を参照. 省略すると"master"になる. 一度作成したrepoクライアントのマニフェストファイルのブランチは repo init -b で変更できる. ただし、変わるのはマニフェストファイルのブランチのみ. ソースコードに反映させるには, repo sync が必要. -m NAME.xml 初期化時にrepoクライアントに作成されるマニフェストファイルのファイル名. 省略すると default.xml になる.

Ubuntu で emacs の Ctrl + Space で Mark set できない問題

Ubuntu 9.04 のデフォルト環境で emacs を使っているとき、 Ctrl + Space でマークをセットしようとすると SCIM(IME) が 立ち上がってマークができません。 Ctrl + @でもマークを設定できるバインディングになっているみたいですが 長年、Ctrl + Space を使ってきたので、SCIMを起動させなくする方法を調べました。 1.[System] -> [Preferences] -> [SCIM Input Method Setup]を起動。 2.左のリストから、[FrontEnd : Global Setup] を選択。 3.[Hotkeys] の [Trigger] の [...] ボタンを押して、Select the trigger keys を起動。 4."Control + space" を選択して、[Delete] ボタンを押す。 5."Control + space" が消えたら、[OK] 6.更に SCIM Input Method Setup も [OK] で閉じる。(ダイアログが出ても[OK]でOK) これで、スッキリしました。