4

squashfs を使用する buildroot でルート ファイルシステムを作成しました。それは正常に動作し、/home および /etc ディレクトリを保持する overlayfs を作成したいと思います。

この目的のために、いくつかのファイルを含む単純な jffs2 ファイルシステムを作成したいと考えました。

jlumme@simppa:~/projects/jffs2_home$ ls -la
total 20
drwxrwxr-x 4 jlumme jlumme 4096 Apr 21 16:21 .
drwxrwxr-x 6 jlumme jlumme 4096 Apr 21 16:21 ..
drwxrwxr-x 2 jlumme jlumme 4096 Apr 21 13:45 default
drwxrwxr-x 2 jlumme jlumme 4096 Apr 21 13:45 ftp
-rw-rw-r-- 1 jlumme jlumme   24 Apr 21 15:34 test.txt

私が使用しているフラッシュ チップは SST25VF064C であるため、消去ブロック サイズは 64 KB であると思われるため、そのフォルダーからファイル システム イメージを作成します。

mkfs.jffs2 -r jffs2_home/ -e 64 -o home.jffs2
$ ls -la
-rw-r--r--  1 jlumme jlumme   496 Apr 21 15:42 home.jffs2

(驚いたことに、-e 32 または -e 4 を設定しても、結果のバイナリ イメージはまったく変化しませんか???)。それにもかかわらず、先に進み、ホームを含む mtdblock を 64KB に揃えました。フラッシュ レイアウトは次のようになります。

uboot/<0x00000000 0x40000>
kernel/<0x00040000 0x3D9000>
dtb/<0x00419000 0x10000>
rootfs/<0x00429000 0x1F7000>
home/<0x00620000 0x1E0000>

私のボードでは、mtdblock4 を問題なくマウントでき、ファイルの内容を正しく読み取ることができます。ただし、ファイルを変更して保存しようとすると、次のようにvi不平を言います。

[   77.030000] jffs2: Node totlen on flash (0xffffffff) != totlen from node ref (0x00000044)

ここで、ファイルシステムをアンマウントして再マウントすると、すぐに苦情が発生し始めます。

# mount -t jffs2 /dev/mtdblock4 /home/
[   99.740000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x001d4070: 0xff0a instead
[   99.760000] jffs2: Empty flash at 0x001d4074 ends at 0x001d412c
[   99.770000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x001d412c: 0xffff instead
[   99.790000] jffs2: Empty flash at 0x001d4130 ends at 0x001d4194
[   99.790000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x001d4194: 0xff0a instead

私のファイルシステムはすでに壊れていると思います...そして、その理由を本当に理解していません..これでどこが間違っているのでしょうか? すべての提案をありがとう..

4

1 に答える 1

0

これは私が問題を解決するためにしたことです。

  1. http://www.linux-mtd.infradead.org/ から新しい MTD ドライバーを更新
    - SST25V064C チップ用の新しいコードがありました
  2. JFFS2 用に予約された領域が 0xFF に初期化されていることを確認
  3. (おそらくオプション) jffs2 ファイルシステムの作成をより正確に指定:

    mkfs.jffs2 -e 64 -l -p -s 4096 -r jffs2_home/ -o home.jffs2
    

これらの変更により、ファイル システムは期待どおりに読み書きできるようになりました。

于 2013-04-27T07:21:32.327 に答える