web-dev-qa-db-ja.com

生成されたUBIバイナリを使用したNANDのプログラミング

私たちのシステムは、最初の起動時にNANDで作成されるUBIパーティションを生成します。システムはそこでファイルを読み書きできます。 NANDの「ギャング」プログラマーに使用できるバイナリファイルを作成しようとしています。これにより、そのパーティションをいくつかのファイルで事前にプログラムできます。

フォルダ/ファイア構造を作成し、次の2つのコマンドを使用します。

mkfs.ubifs -r ./files -m 2048 -e 126976 -c 2047 -o ubifs.img 
ubinize -o ubi.img -m 2048 -p 128KiB -s 2048 ubinize.cfg

ubinize.cfg: 
[files] 
mode=ubi 
vol_id=0 
vol_type=dynamic 
vol_name=fs 
vol_flags=autoresize 
image=ubifs.img

Ubootを使用してファイルをテストするには、正しいオフセットでubi.imgをプログラムし、システムを起動します。システムは、有効なファイルを含む新しいUBIFSパーティションを見つけます!わーい!

問題:パーティション内の何かを変更し、新しいファイルにも触れて再起動すると、パーティションのマウントに失敗し、大量のeccエラーが発生します。

http://i.imgur.com/qoTr4ag.png

$ log | grep UBI
05:00:59 PM  [    INFO] [        kernel] UBIFS: background thread "ubifs_bgt1_0" started, PID 306
05:00:59 PM  [ WARNING] [        kernel] UBI warning: ubi_io_read: error -74 (ECC error) while reading 126976 bytes from PEB 3:4096,
05:00:59 PM  [ WARNING] [        kernel] UBI warning: ubi_io_read: error -74 (ECC error) while reading 126976 bytes from PEB 3:4096,
05:01:00 PM  [ WARNING] [        kernel] UBI warning: ubi_io_read: error -74 (ECC error) while reading 126976 bytes from PEB 3:4096,
05:01:00 PM  [   ERROR] [        kernel] UBI error: ubi_io_read: error -74 (ECC error) while reading 126976 bytes from PEB 3:4096,
05:01:00 PM  [   ERROR] [        kernel] UBIFS error (pid 304): ubifs_scan: bad node
05:01:00 PM  [ WARNING] [        kernel] UBI warning: ubi_io_read: error -74 (ECC error) while reading 126976 bytes from PEB 3:4096,
05:01:00 PM  [ WARNING] [        kernel] UBI warning: ubi_io_read: error -74 (ECC error) while reading 126976 bytes from PEB 3:4096,
05:01:01 PM  [ WARNING] [        kernel] UBI warning: ubi_io_read: error -74 (ECC error) while reading 126976 bytes from PEB 3:4096,
05:01:01 PM  [   ERROR] [        kernel] UBI error: ubi_io_read: error -74 (ECC error) while reading 126976 bytes from PEB 3:4096,
05:01:01 PM  [ WARNING] [        kernel] UBI warning: ubi_io_read: error -74 (ECC error) while reading 126976 bytes from PEB 4:4096,
05:01:01 PM  [ WARNING] [        kernel] UBI warning: ubi_io_read: error -74 (ECC error) while reading 126976 bytes from PEB 4:4096,
05:01:01 PM  [ WARNING] [        kernel] UBI warning: ubi_io_read: error -74 (ECC error) while reading 126976 bytes from PEB 4:4096,
05:01:02 PM  [   ERROR] [        kernel] UBI error: ubi_io_read: error -74 (ECC error) while reading 126976 bytes from PEB 4:4096,
05:00:00 PM  [   ERROR] [        kernel] UBIFS error (pid 304): ubifs_recover_master_node: failed to recover master node
05:00:00 PM  [   ERROR] [        kernel] UBIFS error (pid 304): ubifs_recover_master_node: dumping first master node
05:00:00 PM  [    INFO] [        kernel] UBIFS: background thread "ubifs_bgt1_0" stops

Ubiイメージの作成を台無しにしたアイデアはありますか?

1
screenshot345

RTFM! -Fパラメーターは、上記のエラーを修正しました。

http://www.linux-mtd.infradead.org/faq/ubifs.html#L_free_space_fixup

さらに、ubi_readerツールは、mkfsおよびubinizeに入るさまざまなパラメーターを理解するのに非常に役立ちました。

https://github.com/jrspruitt/ubi_reader

0
screenshot345