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

投稿

7月, 2009の投稿を表示しています

Android x86 をビルドする (パッチを当てる)

ビルドは通ったものの起動しないので、いろいろと原因を調べていたら ここ のパッチで片付く問題が多いようなので、面倒くさがらずに当てることにしました。 まず、パッチを当てるコマンドの使い方です。 $ patch -p1 < patchfile オプションは、patch ファイルに書かれているファイルのパスに対して 何個のスラッシュ(/)を外してファイルを探すかというオプションですが、今回ディレクトリ構成はオリジナルのままなので、すべて -p1 で事足ります。 eee_701 のバグ修正. $ cd vendor/asus/eee_701 $ patch -p1 < 0001-1.-added-scripts-to-build-install-image.patch $ cd ../../.. preload-class で起動時にフリーズする問題とマウスを認識しない問題の対策. $ cd frameworks/base $ patch -p1 < 0001-1.-fixed-crash-caused-by-wrong-preload-class.patch $ patch -p1 < eventhub.patch $ cd ../.. alarmコンパイルエラーの修正. これでalarmをenableにできる! $ cd kernel $ patch -p1 < alarm.patch $ cd .. $ cd external/e2fsprogs $ patch -p1 < e2fsprogs.patch $ cd ../.. 以上のパッチを当てて再度ビルド→USBフラッシュ作成すると 無事、起動しました~!

Android x86 をビルドする(カーネル編)

カーネルのビルドですが、特筆すべきことはありませんね。 ITProの記事 、そのままです。 $ cd kernel $ make i386_defconfig ※x86系のデフォルトに設定 $ make menuconfig ※設定編集メニューを起動 以下は必要最小限と思われるものだけです。 ネットワーク関連は省略。 Framebuffer Console は必要に応じてEnable/Disableしてください。 General setup ---> [*] Enable the Anonymous Shared Memory Subsystem Power Management Option ---> [*] Wake lock Device Drivers ---> [*] Misc Devices ---> [ ] Android pmem allocator ※drivers/misc/pmem.cでコンパイルエラーが出るのでチェックを外す Graphics support ---> Support for frame buffer device ---> [*] VESA VGA graphics support Console display driver support ---> <*> Framebuffer Console support ※デバッグ用に起動時のログを表示させる. <*> Real Time Clock ---> [ ] Android alarm driver ※drivers/rtc/alarm.cでコンパイルエラーが出るのでチェックを外す さて、カーネルのビルドも通り、USBフラッシュメモリに焼いて起動させてみましたが・・・ 案の定、途中でフリーズします。 まず最初に怒られるのは、mountdが無いこと。 これは init.rc で mountd を使っているところを vold に置き換えることで解決. 次に、dalvikvm の起動でリセットが掛かり、延々と ZygoteIni

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: オペランド

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 になる.

Androidをビルドする(環境設定編)

Androidのソースコードをビルドをしてみます。 手順は、とりあえず下記に従います。 http://source.android.com/download まずは、環境設定です。 私はUbuntu 9.04を使用しますので、Ubuntu Linux (32-bit x86)の設定をします。 まずは、必要なパッケージの確認ですね。 ・Git 1.5.4以降 : これはリーナスさんが作られた構成管理ツールですね。 ・GNU Privacy Guard : これは、いわゆるPGP、暗号化ツールですね。repoが使います。 ・JDK 5.0, update 5以降:言わずと知れた JavaのSDK. JDK 6は互換性に問題ありですって。 ・flex:The Fast Lexical Analyzer. 高速構文解析器生成プログラム. ・bison:YACC 互換なパーサジェネレータ. ・gperf:完全ハッシュ関数の生成プログラム. ・libsdl-dev:Simple DirectMedia Layer のライブラリ一式ってことですかね. 何に使っているのでしょうか? ・libesd0-dev:Enlightened Sound Daemon - Development files. サウンドですか. ・libwxgtk2.6-dev (optional):wxWidgets Cross-platform C++ GUI toolkit. GL関連? ・build-essential:ライブラリのヘッダファイルとか. 開発に必要なものが一式はいっているようです. ・zip:ご存知、圧縮ツールです. ・curl:HTTP経由で直接ファイルを落とすツール. repoを落とすのに使います. ・libncurses5-dev:画面制御ライブラリ. ・zlib1g-dec:圧縮ライブラリ.開発キット. これらのパッケージをインストールするには、下記のコマンドを実行します。 $ sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g

UbuntuでCtrlとCapsLockを入れ替える

UbuntuでのCtrlキーとCapcLockキーの入れ替え方法です。 1. メニューの【システム】→【設定】→【キーボード】を選択する  キーボードの設定ダイアログが表示されます。 2.【レイアウト】タブを選択し、【レイアウトのオプション】ボタンを押す  キーボード・レイアウトの付書んダイアログが表示されます。 3.リストの中から【Ctrlキーの位置】を開いて【Swap Ctrl and CapsLock】をチェック 以上 Step1までは分かっても、Step2でつまづく方がいらっしゃるようです。

MBRの修復

UbuntuとかAndroidとかをいじってるときに、 間違えてMBRを書き換えてしまって、GRUBのErrorで止まって Windowsが起動できなくなってしまった場合、 一番簡単に復帰できると思われる方法を書き残しておきます。 1. Ubuntu 9.04 をCDブート  Ubuntuとかいじってる人なら必ず持っていますよね?  持ってない方は、  「週刊アスキー別冊 さくさくUbuntu! 新バージョン9.04 CD-ROM付き 」  なんかを買って来てください。 2. ターミナルを起動し、下記のコマンドを実行  # sudo dd if=/usr/lib/syslinux/mbr.bin of=/dev/XXX  XXXは、Windowsのブートドライブを指定します。 以上。 簡単でしょ?