jffs2的问题

skyoflyn   2009-5-21 11:19 楼主
大家好!
我在用jffs2文件系统时出现如下问题:
问题1:
mounting jffs2 filesystem ......
Empty flash at 0x00060488 ends at 0x000604b0
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x000604b0: 0x6c76 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x000604b4: 0x755f instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x000604b8: 0x6372 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x000604bc: 0x632e instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x000604c0: 0xff66 instead

。。。。。。
在网上搜索了很多关于此问题的帖子,有的说解决了,主要是参数设置的不对,但没有具体的解决办法,我的参数设置没有问题,但就是解决不了问题,请大家指点一下:
说一下我的详细操作步骤:

(1)在PC上编译(非交叉编译)了mtd工具,生成mkfs.jffs2等命令,在PC上制作jffs2镜像文件
./mkfs.jffs2 -d temp -e 0x10000 -q -n  -U -l --pad=0x80000 -o jffs2.img   
即:blocksize为128k,总大小为512k,小字节序
有的说要设置-s参数,于是把命令改为

./mkfs.jffs2 -d temp -e 0x20000 -q -n  -s 0x10 -U -l --pad=0x80000 -o jffs2.img   
设置-s 为16字节(不知道这里设置对不对,datasheet上关于page size的地方只有下面这句话
  Page size: 8 words or 16 bytes)
也将-s参数改为128字节,32字节等均没有起作用,仍然打印上面的警告

(2)将生成的镜像在redboot下烧到mtd3分区
(3) mount jffs2
mkdir cfg
mount -t jffs2 /dev/mtdblock3   /cfg


问题2:
第一次写flash的时候(mount的分区),会打印下面的警告:
Node totlen on flash (0xffffffff) != totlen from node ref (0x00000044)
但不知道怎么解决,请各位高手指点,谢谢!!


回复评论 (4)

我以前也搞了很久,最后还真的是参数不对。
jfss2的工具的版本也很重要。
点赞  2009-5-22 09:38
引用: 引用 1 楼 keard 的回复:
我以前也搞了很久,最后还真的是参数不对。
jfss2的工具的版本也很重要。

能说具体一点吗,我的参数反复改了很多次,都不起作用,我的是nor flash,datasheet上的参数显示
page size=16byte,erase block=128k,这个是没有问题的,系统是小端的,所以镜像加了-l参数,jffs2分区大小为0x80000,这些都没有问题,但就是不起作用
JFFS2 version 2.2
mkfs.jffs2工具是重新编译的mtd/util生成的,在网上找了很多,大多都没有解决,解决的说是参数问题,我试了很多次了,问题还是没有解决
点赞  2009-5-22 10:02
你是用什么烧写的 ?
点赞  2009-6-8 18:39
以前碰到过一种情况是jffs2那块flash没有擦干净导致mount不成功. 不知道LZ是不是这种情况.
点赞  2009-6-9 15:38
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复