fastbootでnandを焼けばADP1もcupcakeになるわけですが、いくつか問題もあるようですし、nandを焼かずに違うシステムを起動できるか試してみます。
microSDにfdiskでpatritionつくって、system.imgとuserdata.imgをddしてみましたが、どうもmountに失敗します。
これはあっさりあきらめて、ext3でmountできるようにしてみます。
MYDROID/kernel/arch/arm/configs/msm_defconfig
にCONFIG_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.rc
とMYDROID/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を使うか。