Pages

2012年2月19日日曜日

zImageをboot.imgへ

SC-03Dのboot.imgは
/dev/block/mmcblk0p8にあります。これを端末からバックアップ
dd if=/dev/block/mmcblk0p8 of=/sdcard/external_sd/dd/boot.img bs=4096

このboot.imgをLinux環境へ
bootディレクトリ作成
その中にboot.img mkbootfs mkbootimg split_bootimg.plを一緒に入れます。

まずはboot.imgの展開
bootディレクトリに移動して
./split_bootimg.pl boot.img
これで
boot.img-kernel boot.img-ramdisk.gzができます。
このboot.img-kernelがzImage boot.img-ramdisk.gzがinitramfsな感じ。

boot.img-ramdisk.gzを展開
mkdir ramdisk
cd ramdisk
zcat -dc ../boot.img-ramdisk.gz | cpio -i

これで展開できました。
bootディレクトリに出来上がったzImageを持ってきます。
それと
カーネルディレクトリ/obj/KERNEL_OBJ/drivers/net/wireless/bcm4330/dhd.ko
を展開したramdiskの
lib/modulesにコピーで上書き
ramdiskをもう一度圧縮
./mkbootfs ./ramdisk | gzip > new-boot.img-ramdisk.gz

new-boot.img-ramdisk.gzと新しく作ったzImageをboot.imgにする
./mkbootimg --kernel zImage --ramdisk new-boot.img-ramdisk.gz --cmdline "loglevel=4 usb_id_pin_rework=true" -o myboot.img --base 0x40400000 --pagesize 2048

echo -n -e \\x80 > onebyte.bin
dd if=onebyte.bin of=myboot.img conv=notrunc ibs=1 obs=1 seek=22
rm onebyte.bin
chmod u+x myboot.img

myboot.imgの完成です。

お疲れ様でした。


0 件のコメント:

コメントを投稿