Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16204
  • 博文数量: 4
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 50
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-10 13:57
文章分类
文章存档

2011年(1)

2009年(3)

我的朋友
最近访客

分类: 嵌入式

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

struct mtd_partition smdk_default_nand_part[] = {
        [0] = {
                .name = "bootloader",
                .offset = 0x00000000,
                .size = 0x00060000,
        },
        [1] = {
                .name = "kernel",
                .offset = 0x00060000,
                .size = 0x00200000,
        },
        [2] = {
                .name = "root",
                .offset = 0x00260000,
                .size = 0x00500000,
/* 这个大小一定要和制作jffs2文件系统时-e选项指定的大小一样,否则会出现 */
/* jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xxxxxxxx错误 */
        },
};

u-boot下设置传递给内核的命令行参数:

setenv bootargs root=/dev/mtdblock2 rootfstype=jffs2 init=/sbin/init console=ttySAC0,115200

注意:
在向内核传递命令行参数的时候必须要指定文件系统的类型rootfstype,否则内核会提示找不到文件系统错误。

阅读(1921) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~