我正在尝试使用 128[MB] NAND 闪存(4 位 ECC)在 openwrt 环境中将 1[MB] 闪存安装为 JFFS2 FS。
我正在使用以下序列 -
flash_eraseall -j dev/mtd6
mount -t jffs2 -o noatime /dev/mtdblock6 /NAME_OF_MOUNT
运行此序列后,似乎安装已完成,我可以访问、读取和写入
到安装区域。
当我重新启动系统时,问题开始出现,在启动过程中出现以下消息:
jffs2: mtd->read(0x800 bytes from 0x60000) returned ECC error
jffs2: notice: (667) read_dnode: wrong data CRC in data node at 0x00060000: read 0xf7a2ee2c, calculated 0x2f2a8b04
我也尝试使用 mkfs.jffs2 创建 nvm.jffs2 文件并将其刻录到请求的分区 - 但问题仍然存在。
我会感激任何想法或想法。
提前谢谢大家!
答案1
该问题是由clearmarker 引起的。
在安装过程中,透明标记被设置在块的开头。
但是写入block时,oob数据被添加到了block的末尾
因此没有包含clearmarker,因此导致了错误的CRC数据报告。
快速WA是在启动时将clearmarker写入每个闪存块一次,然后clearmarker
将添加到其中,一切都会正常工作。