ubuntu 在 R40e 上 還有 Debian 在 Sempron 2600 上

2010年10月13日 星期三

mkbootfs -- cpio

android 的 kernel rootfs 是 ramdisk.
製作的 tools是 mkbootfs:

android 的 system/core/cpio 是 mkbootfs 的 source code。

mkbootfs 跟 cpio 很像,但是..好像不需要給 file list,只要給 folder,他就會把folder 所有的內容 archive 起來 (以 cpio 的格式)。

在 build/core/Makefile 中,有 invoke mkbootfs
$(hide) $(MKBOOTFS) $(TARGET_ROOT_OUT) | $(MINIGZIP) > $@ 其中 TARGET_ROOT_OUT 就是先建好的 root folder 。

mkbootfs archive 完後,再交給 gzip 壓縮。

簡單的說,要做出 ramdisk.img,就是.. mkbootfs root | minigzip > ramdisk.img 然後給u-boot 用要.. mkimage -A arm -O linux -T ramdisk -C none -a 0x90308000 -n "Android Root Filesystem" -d ramdisk.img ./uramdisk.img
要解刊 ramdisk 的話..
mv ramdisk.img ramdisk.img.gz gunzip ramdisk.img.gz mkdir worktmp; cd worktmp cpio -i -F ../ramdisk.img
如果是已經用 mkimage 處理過的 uramdisk.img,就要先把 ramdisk.img.gz 抓出來:
$dd if=uramdisk.img of=ramdisk.img.gz bs=1 skip=64 ..據說 mkimage 用 開頭的 64 byte 塞u-boot 資訊。

這樣dd出 ramdisk.img.gz 後,就可以用

ref: http://qustion1234.blogspot.com/2009/09/how-to-extract-ramdisk-content-from.html

沒有留言:

標籤

網誌存檔