分类: 嵌入式
2009-08-06 23:22:53
制作JFFS2根文件系统需要用到MTD工具,其下载地址是:
MTD工具的编译安装步骤如下:
解压MTD源码:
tar zxvf mtd-utils-1.0.0.tar.gz cd mtd-utils-1.0.0 make |
编译通过之后会生成mkfs.jffs2工具,这个工具就是用来制作jffs2文件系统映象的。把mkfs.jffs2拷贝到/root/目录下:
cp mkfs.jffs2 /usr/sbin |
使用mkfs.jffs2工具生成生成jffs2文件系统的命令:
#mkfs.jffs2 -r rootfs -o filesystem.jffs2 -e 0x4000 -p -l -n --pad=0x500000
mkfs.jffs选项说明:
-r 指定内含根文件系统的目录
-o 指定文件系统映象的输出文件名称
-p 表示在映像的结尾用0x0补全到block
-l 存储格式为小端格式
-n 每个擦除的block中不添加clreanmarker
-e 擦除block的大小(Samsung K9F1208U0B 块大小为16K,这个很重要)
--pad 要创建jffs2文件系统的大小
配置内核支持jffs2文件系统:
File systems ---> Miscellaneous filesystems ---> <*>JournallingFlash File System v2 (JFFS2) support [*]JFFS2write-bufferingsupport [*]AdvancedcompressionoptionsforJFFS2 [*]JFFS2ZLIBcompressionsupport [*]JFFS2RTIMEcompressionsuppor [*] JFFS2 RUBIN compression support JFFS2 default compression mode (priority) ---> (X) size (EXPERIMENTAL) #选择JFFS2文件系统的压缩格式“size” |
修改nand flash的分区表
vi /arch/arm/plat-s3c24xx/common-smdk.c |
|
u-boot下设置传递给内核的命令行参数:
setenv bootargs root=/dev/mtdblock2 rootfstype=jffs2 init=/sbin/init console=ttySAC0,115200 |