2011年12月24日土曜日

pandaboardでICS(ビルド後のちょい変更とSDカード書き換え)

前回まででいちおうandroidkernelu-bootとx-loaderのビルドが完了しました。
今回はSDカードへの書き換えを行っていくわけなんですが、まあ別に大した罠はないのでテキトーに書いておきます。

まずはビルドしたファイル郡を使いやすいように一箇所に集めます
$ cd ~/work
(bootディレクトリを作成し、boot領域に置くファイルを集めます) 
$ mkdir boot
$ cp x-loader/MLO boot/
$ cp u-boot/u-boot.bin boot/
$ cp kernel/omap/arch/arm/boot/uImage boot/uImage
(rootfsディレクトリを作成し、rootfs領域に置くファイルを集めます)
$ mkdir rootfs
$ cp -r android/out/target/product/panda/root/* rootfs/
$ cp -r android/out/target/product/panda/system rootfs/
$ cp -r android/out/target/product/panda/data/ rootfs/

しかし!このままでは正常にブートできないので、
最低限、無事に起動させるのに必要な修正を加えます。

rootfs/init.rcの不要な記述である94~100行目を下記のようにコメントアウト
#on fs
# mount mtd partitions
    # Mount /system rw first to give the filesystem a chance to save a checkpoint
    #mount yaffs2 mtd@system /system
    #mount yaffs2 mtd@system /system ro remount
    #mount yaffs2 mtd@userdata /data nosuid nodev
    #mount yaffs2 mtd@cache /cache nosuid nodev

また、Serialコンソールにてrootアクセスで書き換え可能なようにするためには、
rootfs/init.rcの104行目(参考のため102行目から掲載)を下記に修正
on post-fs
    # once everything is setup, no need to modify /
    mount rootfs rootfs / rw remount
rootfs/init.rcの348行目と349行目を下記のようにコメントアウト(参考のため344行目から掲載)
service console /system/bin/sh
    class core
    console
    disabled
    #user shell
    #group log

もうひとついらない箇所
rootfs/init.omap4pandaboard.rcの23~25行目をコメントアウト(参考のため22行目から掲載)
on fs
    #mount ext4 /dev/block/platform/omap/omap_hsmmc.0/by-name/system /system wait ro
    #mount ext4 /dev/block/platform/omap/omap_hsmmc.0/by-name/userdata /data wait noatime nosuid nodev
    #mount ext4 /dev/block/platform/omap/omap_hsmmc.0/byname/cache /cache wait noatime nosuid nodev

おまけで
SDカードの3番目のパーティションを/sdcardとしてマウント可能にするには
rootfs/system/etc/vold.fstabファイルを新規作成し、下記1行を追記
dev_mount sdcard /mnt/sdcard 3 /devices/platform/omap/omap_hsmmc.0/mmc_host/mmc0

SDカードの書き換えに関しては、以前紹介したpandaboard androidと一緒です。

(もしandroidが書き込み済みのものを用いるなら、いったん削除しておきましょう)
$ sudo rm -rf /media/boot/*
$ sudo rm -rf /media/Angstrom/*
(その後書き換え)
$ sudo cp boot/* /media/boot/
$ sudo cp -r rootfs/* /media/Angstrom/
$ sudo chmod -R 777 /media/Angstrom/*

ちなみに、ブートオプションはu-bootにて設定済みですので、以前のようにu-bootを途中で止めてブートオプションを打ち込むといった手順は必要ありません。
電源を入れればICSが起動します。




とりあえず以上です。

0 件のコメント:

コメントを投稿