http://blog.csdn.net/stevenliyong/archive/2009/07/14/4346591.aspx
Android Donut 系統燒寫到開發板,脫離NFS啓動
1. Android 系統分區結構
partition | size | fs |
-----------+----------+--------+---------------------------------
mtdblk0p1 | 8MiB | none | bootloader
mtdcblk0p2 | 16MiB | vfat | recovery system (kernel/initrd)
mtdblk0p3 | 1024MiB | << extended >>
mtdblk0p5 | 8MiB | vfat | normal kernel, splash, sound
mtdblk0p6 | 64MiB |squashfs| rootfs
mtdblk0p7 | 256MiB | ext3 | android cache
mtdblk0p8 | 256MiB | ext3 | android data
-----------+----------+--------+---------------------------------
zImage Kernel /dev/mtdblk0p2 (FAT); recovery kernel
/dev/mtdblk0p5 (FAT); android kernel
rootfs.sqfs rootfs /dev/mtdblk0p2 (FAT, initrd.img); recovery
/dev/mtdblk0p6 (SquashFS); android rootfs
data /dev/mtdblk0p8 (ext3) android data
2. 燒寫 recovery kernel/rootfs
bootload啓動後先燒寫bootload 和 recovery system(kernel/rootfs) 到mtdblk0p1 ~ mtdblk0p2 分區
3. 進入recovery linux 系統,燒寫 andorid 系統
3.1 添加擴展分區mtdblk0p3 和邏輯分區mtdblk0p5 ~ mtdblk0p8
# fdisk /dev/mtdblk0
<這裏添加android分區>
mtdblk0p3 | 1024MiB | << extended >>
mtdblk0p5 | 8MiB | vfat | normal kernel, splash, sound
mtdblk0p6 | 64MiB |squashfs| rootfs
mtdblk0p7 | 256MiB | ext3 | application cache
mtdblk0p8 | 256MiB | ext3 | application data
3.2 格式化android data / cache 分區
# mkfs.ext3 /dev/mtdblk0p7
# tune2fs -i0 -c0 /dev/mtdblk0p7
# mkfs.ext3 /dev/mtdblk0p8
# tune2fs -i0 -c0 /dev/mtdblk0p8
3.3 燒寫 android kernel 和 rootfs
bootload啓動後,燒寫android system(kernel/rootfs) 到mtdblk0p5 ~ mtdblk0p6 分區
4.最後設置bootload 從normal模式啓動andorid
Android donut 成功不依賴於NFS啓動啦!
PS:
製作android rootfs的時候,需要在
先手動mkdir cache 和 data
rootfs/init.rc中需在
# mount mtd partitions 下方添加將ext3 分區掛在到 /cache 和 /data目錄
mount ext3 /dev/block/mtdblk0p7 /cache
mount ext3 /dev/block/mtdblk0p8 /data
另外當前我的做法是 直接將android donut 下編譯出來的system 目錄直接拷貝到rootfs,一併壓縮成sqfs 格式。將system單獨做成一個分區,然後啓動的時候mount 可能是更好的選擇.
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/stevenliyong/archive/2009/07/14/4346591.aspx