Sirius

2010年10月18日(月) 10:40

展開したファームウエアをまとめる。

NPAD のファームウェアを展開、修正したあとでまとめて FWDN で書き込めるようにします。この内容の利用は自己責任でお願いします。pad が文鎮になっても責任は取れません。
前回展開したものを利用します。

必要なもの
 mkyaffs2image
 mkbootimg
 tccpack
 ※ mkbootimg はページサイズを 4096 に修正。
 ※ mkyaffs2image はチャンクサイズを 4096 にスペアサイズを 128 に修正。また、ecc はサポートなしにする。

1、boot.img 用の ramdisk の作成
 修正済みの ramdisk ツリーのトップに移動して、
 $ find . -print0 | cpio -o0 -H newc | gzip -9 > ../boot.img-ramdisk-new.gz

2、boot.img の作成
 ベースアドレスやコマンドラインのパラメータはもともとの boot.img と同じものを指定します。特にベースアドレスの指定を間違えると起動しなくなります。
 boot.img のパラメータを表示するプログラムのソースをここにおきます。コンパイルには bootimg.h が必要です。
 ベースアドレスは、カーネルアドレスの下位4桁は 0 にします。
 $ mkbootimg --kernel boot.img-kernel --ramdisk boot.img-ramdisk-new.gz --cmdline 'console=ttySAC0 androidboot.hardware=tcc92xx' --base 0x40000000 -o boot-new.img

3、recovery.img の作成
 rycovery.img は作り直す必要はないと思いますが、boot.img と同様にすることで作成できます。

4、system.img の作成
 yaffs2 の mkyaffs2image を使って作成します。mkyaffs2image で ecc を有効にすると FWDN で書き込んだときに CRC エラーになります。三日くらい悩みました。普通に make したら ecc が有効になってました。
 system に展開したとして、
 $ mkyaffs2image -f system system-new.img

5、tcc8900_mtd.img の作成
 作成したものを使って一つにまとめます。
 $ tccpack boot-new.img system-new.img recovery.img tcc8900_mtd-new.img

これで出来上がった tcc8900_mtd-new.img のみを FWDN で書き込めば OK です。
失敗しても、元の tcc8900_mtd.img を書き込めば大丈夫です。

written by sirius [Android] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

Comments

TrackBacks

Sirius

MySketch 2.7.2 written by 夕雨