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 に対応できていなかったみたいです。推測ですが。