2440 linux 系统启动时总打印Partially written block X detected信息的解决方法
2019-09-17 09:15:03
ThanksView
  • 访问次数: 229
  • 注册日期: 2019-03-19
  • 最后登录: 2024-07-05

使用yaffs文件系统一段时间后,串口输出大量 "Partially written block X detected" ! 

主要原因在于yaffs2文件系统在关闭之前,要将dirty 数据写入nand flash。

否则下一次开机yaffs2 scan 的时候,就会发现这些block 是Partially written 部分写入的,所以就会提示。

这种提示是yaff2文件系统常见的错误!如下图所示: 

Partially written block 611 detected 

Partially written block 611 detected 

Partially written block 611 detected 

Partially written block 611 detected 

Partially written block 611 detected 

Partially written block 611 detected 

Partially written block 611 detected 

解决办法:

 1、方法一(也是最重要的办法) 

每次关机前要使用 poweroff 命令关机! 

使用 poweroff 命令关机,系统会自动调用sync 进行处理。让yaffs2文件系统 将dirty 的数据写入到nand flash 里面。但这个错误是可以积累的,所以随着不能正常sync而关机,会导致这些yaffs2的警告累积性地增加。

 [root@MINI2440 /]# poweroffsave exit: isCheckpointed 1The system is going down NOW! 

Sending SIGTERM to all processesSending SIGKILL to all processesRequesting system poweroff 

s3c-sdi s3c2440-sdi: powered down. 

System halted. 

2、方法二 

修改 yaffs_fs.c 中 yaffs_auto_checkpoint的值改成 2。 

3、方法三 

修改 fs/yaffs2/yaffs_guts.cstatic int yaffs_ScanBackwards(yaffs_Device * dev)函数中(大概6668行左右) 

static intyaffs_ScanBackwards(yaffs_Device *dev) 

{ ... } 

else 

{ T( YAFFS_TRACE_SCAN

 (TSTR("Partially written block %d detected" TENDSTR), blk));

 }

 }

 ...} 

报错是由于 YAFFS_TRACE_ALWAYS造成的,只要把它改成 YAFFS_TRACE_SCAN 就OK了。

ThanksView 最后编辑, 2019-09-17 09:22:04

三维半岛官网: http://www.thanksview.com

进入首页