要使linux正常運行,還必須有一個根檔案系統,其中包含linux啟動後所執行的指令碼以及最基本的一些程式。由於linux核心mount 位於flash上的檔案系統時,是以自己定義的mtd 分區來進行,而VIVI是以其自身的part分區表來燒寫檔案系統鏡像,因此必須保證兩者的定義是一致的,否則有可能造成系統無法正常啟動。
VIVI 的分區表通過partshow 可以查看到
vivi>partshowmtdpartinfo.(5partitions)name offset size flag------------------------------------------------vivi :0x00000000 0x00020000 0 128kparam :0x00020000 0x00010000 0 64kkernel :0x00030000 0x001c0000 0 1M+768kroot :0x00200000 0x00400000 0 4Musr :0x00600000 0x03a00000 0 58M
linux 對nand flash 的mtd 分區的定義在linux/drivers/mtd/nand/smdk2410.c 中。
static struct mtd_partition partition_info64k[]={{name:"S3C2410 flash partition:loader", offset:0,size: 0x00020000},{name:"S3C2410 flash partition:param", offset:0x00020000,size: 0x00010000},{name:"S3C2410 flash partition:kernel", offset:0x00030000,size: 0x001c0000},{name:"S3C2410 flash partition:root", offset:2*SZ_1M,size: 4*SZ_1M},{name:"S3C2410 flash partition:usr", offset:6*SZ_1M,size: 0x03a00000},};
一定要注意保持這兩張表的一致性。如果使用者要對根檔案系統做出修改的話,按照以下步驟進行:
1.將光碟片中的根檔案系統包 root_china.tar.gz 和二進位工具 mkcramfs 拷貝到linux 系統下。
2.執行命令tar –zxvf root_china.tar.gz,將在目前的目錄中建立一個root_china目錄。就是linux 啟動時候要用到的根檔案系統。
3.按需要對root_china 目錄下的檔案進行修改。
4.退出到root_china 的上一級目錄,使用命令:
*./mkcramfs root_china root_china.cramfs*
建立新的根檔案系統的cramfs 鏡像。
5.使用VIVI將該新的鏡像燒寫到flash 中。