UBI, UBIFS って何さ

組込 Linux の世界から 10年近く離れていたので、もう完全に浦島太郎です。U-Boot をいじりながら、UBIFS とか勉強してます。
この辺の説明が参考になりました。

以下、生半可な理解です。
UBIFS というのは、raw Flash の eraseblock インターフェイス(MTD?)上に実装されるファイルシステムで、JFFS2 に代わるファイルシステムだそうです。

  • MTD サブシステム: raw Flash へのアクセスインターフェイスを提供します。
  • UBI サブシステム:、MTD の特質(同じ eraseblock を何度も消去すると、いずれは読み書きできなくなる)を隠蔽する論理レイヤです。UBI ボリュームのインターフェイスを提供します。
  • UBIFS: UBI ボリューム上に置かれるファイルシステムです。

U-Boot の UBI 関連コマンドですが、

  • ubi part: MTD の任意のパーティションを UBI カレントパーティションに設定します。
  • ubi info: UBI カレントパーティション上の UBI ボリューム情報を表示します。l (エル)オプションを付けると、各ボリュームの詳細を表示します。
  • ubifsmount: 指定する UBI ボリューム上の UBIFS をマウントします。
  • ubifsls: マウントした UBIFS 上のファイルリストを表示します。

明日は、Linux 上の mkfs.ubifs とか ubinize を勉強しようと思ってます。DTS, DTB というのも勉強しなくては。
ちなみに、今日ハマっていた問題は、とある UBI イメージを MTD パーティションに書き込んだのに、ubi part できないというものでした。U-Boot のバージョンを上げたら解決しました。古いバージョンは、VID header offset の 2048 に対応できていなかったみたいです。推測ですが。