7754|3

68

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请教高手 jffs2_get_inode_nodes(): Data CRC failed on node...问题 [复制链接]

/bin/mount -n -t jffs2 /dev/mtdblock/3 -o rw,noatime /app
jffs2: Erase block size too small (16KiB). Using virtual blocks size (32KiB) instead
Empty flash at 0x02407104 ends at 0x02407200
set hw ether and ip of eth0
eth0: Setting MAC address to 00:01:12:23:34:0a
eth0: Link now 10-HalfDuplex
BusyBox v1.1.3 (2007.11.22-17:59+0000) multi-call bina
Please press Enter to activate this console.
jffs2_get_inode_nodes(): Data CRC failed on node at 0x02e9cf90: Read 0x2339ffd0, calculated 0x61118f0d
jffs2_get_inode_nodes(): Data CRC failed on node at 0x024069a4: Read 0x4dd2e9b2, calculated 0xaf24be73


Starting pid 675, console /dev/console: '/bin/sh'

==========================================================
问题描述:
上面是我at91rm9200 CPU板子上的Linux (kernel 2.6.12)启动信息,文件系统为cramfs格式,主要用busybox 1.1.3'组装'而成,
内核和uboot烧录在一个nor flash上,文件系统烧录在64M nand flash的第二块,我对其的分区信息为
Creating 3 MTD partitions on "NAND 64MiB 3,3V 8-bit":
0x00000000-0x00100000 : "AT91 NAND partition 1, freePlace"
0x00100000-0x01100000 : "AT91 NAND partition 2, filesystem"
0x01100000-0x04000000 : "AT91 NAND partition 3, application"

我把文件系统的/app挂载为可读写,就是把nand flash的第三块以jffs2的格式mount在/app
/bin/mount -n -t jffs2 /dev/mtdblock/3 -o rw,noatime /app

问题是:
平时对/app的读\写\执行\都很正常,nand flash 的0x01100000-0x04000000 这块区域也足够大,经过一系列在/app下的操作后,下次重启板子时经常出现上面的打印警告,如果删除/app下所有文件,警告会消失,请问怎么处理这样的问题

参考http://armlinux.simtec.co.uk/faq.html网站
What does the message "Erase block size too small (16KiB). Using virtual blocks size (32KiB)" mean?
What does the message "Empty flash at 0x00003ffc ends at 0x00004000" mean?
这两个问题很好理解,但下面打印的错误就......
jffs2_get_inode_nodes(): Data CRC failed on node at 0x02e9cf90: Read 0x2339ffd0, calculated 0x61118f0d
jffs2_get_inode_nodes(): Data CRC failed on node at 0x024069a4: Read 0x4dd2e9b2, calculated 0xaf24be73

别人说打印如上错误时,挂载的区域读写不正常,但是我的却是读写正常,就是启动有警告!
求解!
     谢谢

最新回复

我来Re下吧,因为也遇到了这个问题。 这个应该是直接断电之类导致的没有完成文件系统同步的问题。这里有个解释. Frédéric Janot wrote: > > Hi, > > I have a board with samsung K9F5608UOC nand flash and mpc5200 ppc processor. JFFS2 on NAND flash uses a page buffer. It is flushed to the flash when it is full, or when you do fsync, sync or umount. > when I reboot the board or when I remove the power "violently" Some data may remain in the page buffer and is never written to the Flash. > jffs2_get_inode_nodes(): Data CRC failed on node at 0x00cc0f90: Read > 0x6e17981a,  calculated 0x4614a389 Well obviously a node was partly written to flash and the end of the node remained in the cache and was never written. This means you lost some data. > /And I get one more message each time I reboot the board. But the > filesystem doesn't seem corrupted. It is a warning only. The remainder of the file system will probably still work. Only the last operation(s) before reboot are lost. > If I umount / before rebooting, I don't have one more error message at > the next reboot. This is correct procedure if you don't want to lose any data. > Do you have any idea about where the problem could come from ? There is no problem. This is standard JFFS2 processing. Nodes with wrong CRCs (partly written for instance) are ignored and not taken in account when building the FS tree and files. Estelle   详情 回复 发表于 2009-12-9 15:26
点赞 关注

回复
举报

70

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
接分先!
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
咋样了?
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

4
 
我来Re下吧,因为也遇到了这个问题。
这个应该是直接断电之类导致的没有完成文件系统同步的问题。这里有个解释.



Frédéric Janot wrote:

>

> Hi,

>

> I have a board with samsung K9F5608UOC nand flash and mpc5200 ppc processor.



JFFS2 on NAND flash uses a page buffer. It is flushed to the flash when

it is full, or when you do fsync, sync or umount.



> when I reboot the board or when I remove the power "violently"



Some data may remain in the page buffer and is never written

to the Flash.



> jffs2_get_inode_nodes(): Data CRC failed on node at 0x00cc0f90: Read

> 0x6e17981a,  calculated 0x4614a389



Well obviously a node was partly written to flash and the end of the

node remained in the cache and was never written. This means you

lost some data.



> /And I get one more message each time I reboot the board. But the

> filesystem doesn't seem corrupted.



It is a warning only. The remainder of the file system will probably

still work. Only the last operation(s) before reboot are lost.



> If I umount / before rebooting, I don't have one more error message at

> the next reboot.



This is correct procedure if you don't want to lose any data.



> Do you have any idea about where the problem could come from ?



There is no problem. This is standard JFFS2 processing. Nodes with

wrong CRCs (partly written for instance) are ignored and not taken

in account when building the FS tree and files.



Estelle

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
有奖直播:当AI遇见仿真,会有什么样的电子行业革新之路?
第2场直播:融合热仿真与热测试提升产品可靠性
直播时间:04月17日 14:00 - 15:00

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 5

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表