openwrtへのJFFS2 FSマウント

openwrtへのJFFS2 FSマウント

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

問題の原因はクリアマーカーです。

インストール中、ブロックの先頭に透明マーカーが設定されます。

ただし、ブロックに書き込むと、oobデータはブロックの末尾に追加されます。

したがって、クリアマーカーが含まれていないため、誤ったCRCデータ報告が発生します。

Fast WAは起動時に各フラッシュブロックにClearmarkerを1回書き、Clearmarkerを書き込むことです。

ここに追加すると、すべてがうまく機能します。

おすすめ記事