2011年6月26日日曜日

[TEST] NTT docomo Galaxy S2 SC-02C kernel ビルドの続き

前回作成したzImageは、自分でSC-02Cからadb pullで抽出したファイルをベースにした
initramfsを含んでいますが、そもそもzImageがちゃんと作成されているのかどうか
チェックしてみました。チェック方法としては、

1.既存の手法をつかってinitramfsをExtractできるか?
2.version magicはinitramfsにある*.koとマッチするか?

といったところをチェックしてみました。まずinitramfsのExtractですが、TwitterをzImage
で検索してたときに見つけた@chromarockさんのgithubからinitrampickerを落として使わせて
もらいました。
https://github.com/chromabox/initrampicker
このツールはlzo圧縮されている対象にも有効なのでお勧めです。自分はgrepとか
ddとかの従来の方法で抜いてましたが、initrampickerのほうが圧倒的に楽なのでw。

で、そうなんです、GT-I9100のソースはそのままビルドするとlzoなんですね。
さておき適当なディレクトリにgit cloneしてビルドします。
mkdir initrampicker
cd initrampicker
git clone https://github.com/chromabox/initrampicker.git
make
できたら実行
$ ./initrampicker ../zImage ./initramfs.cpio
initram picker 1.00.00
check zimage file...
zimage LZO compressed.
zImage size 7249932, offset 6248
decompress file...
lzop: tempdec00.lzo: warning: ignoring trailing garbage in lzop file
lzop -d  tempdec00.lzo
 returncode 512
decompress success.
check cpio image file...
pickup cpio file...
found end marker file...
pickup cpio success.
うまくinitramfs.cpioがextractできたようです。さて展開できるかやってみます。
展開用のdirectoryをつくってそこに展開です。
mkdir test_cpio
cd test_cpio
cpio -ivmd --no-absolute-filenames < ../initramfs.cpio
..
.
initramfsの内容は問題ありませんでした。次はversion magicの確認です。modinfoコマンドで
ビルドされたモジュールをどれでもいいので確認してみます。
$ modinfo ./j4fs.ko
filename:       ./j4fs.ko
depends:       
vermagic:       2.6.35.7 SMP preempt mod_unload modversions ARMv7
ちなみにinitramfsに配置してある、SC-02Cから抜き出したオリジナルは
$ modinfo j4fs.ko
filename:       j4fs.ko
depends:       
vermagic:       2.6.35.7-SC02COMKF2-CL257138 SMP preempt mod_unload modversions ARMv7
なるほど、ビルドしたものにはLOCALVERSIONが無いですね。これでも大丈夫なような気もするけど
一応このあたりをあわせこんで見ましょう。kernelのツリーのトップに戻って
make menuconfig
  --> General setup
     --> Local version
の部分に
-SC02COMKF2-CL257138
を指定してみます。それから、CONFIG_LOCALVERSION_AUTOはいらないかもね。exitでsaveして抜けて。makeしてから、もう一度modinfoしてみると。
$ modinfo ./j4fs.ko
filename:       ./j4fs.ko
depends:       
vermagic:       2.6.35.7-SC02COMKF2-CL257138 SMP preempt mod_unload modversions ARMv7
今度はOKなようです。zImageも更新されています。さて、焼いてみるかなぁ。。

0 コメント:

コメントを投稿