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 コメント:
コメントを投稿