2008-12-28

Android Dev Phone 1 その7

Ubuntu 8.10で試したら、あっさりmakeできてます。libaudioまわりのヘッダ修正なども不要。gitが更新されたのか、OS Xだけmakeできないのかは不明。

fastbootでnandを焼けばADP1もcupcakeになるわけですが、いくつか問題もあるようですし、nandを焼かずに違うシステムを起動できるか試してみます。

microSDにfdiskでpatritionつくって、system.imgとuserdata.imgをddしてみましたが、どうもmountに失敗します。


これはあっさりあきらめて、ext3でmountできるようにしてみます。

MYDROID/kernel/arch/arm/configs/msm_defconfigCONFIG_EXT3_FS=yを追加。

make ARCH=arm CROSS_COMPILE=MYDROID/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi- msm_defconfig
make ARCH=arm CROSS_COMPILE=MYDROID/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-


MYDROID/kernel/arch/arm/boot/zImageができます。


MYDROID/buildspec.mk
TARGET_PRODUCT:=htc_dream
TARGET_PREBUILT_KERNEL:=MYDROID/kernel/arch/arm/boot/zImage

ってしとけば、gitでとってきたkernel(vendor/htc/dream/kernel)のかわりにそれが使われます
(vendor/htc/dream/README.txtにはTARGET_PREBUILD_KERNELって書いてあるので注意)。


ADP1をカメラボタン押しながら起動して、バックボタン押してFASTBOOTモードにしてから、
MYDROID/out/target/product/dream
fastboot boot boot.img

とすれば自前ビルドkernelとramdiskで起動します。


MYDROID/system/core/rootdir/init.rcMYDROID/vendor/htc/dream/init.trout.rcを組み合わせたinit.rcが起動時にスクリプトとして実行されるので、ここでsdcardをext3でmountできればいいわけですが。

/system, /data mountしようとしたときにはsdcardがまだ居ない状態。system/core/initいじって、sleepコマンドとか追加して待たせてみたものの、どうにもsdcardをmountできず... ADP1以外のportだとsdcardからext3でmountできてるんですけども(omapzoomとか)。

/system mountできないとadb shellすると /system/bin/sh がないとか怒られます。

mount yaffs2 loop@/data/system.img /system

とかでもできるはずですが、これだとnandの容量がきびしいんですよね。/cacheを使うか。