続き。
実際にUBIFSを使う方法です。
まずは環境。
kernelがUBIやUBIFSに対応していないとお話にならないので、kernelのmake menuconfigで内容の確認です。
↓ の2つが有効になってれば大丈夫だと思います。
---------------------------------------------------------
Device Drivers --->
Memory Technology Device (MTD) support --->
UBI – Unsorted block images --->
<*> Enable UBI
File systems --->
Miscellaneous filesystems --->
<*> UBIFS file system support
---------------------------------------------------------
それから、image作成したり、formatしたりと操作するために、mtd-utilsに内包されている、ubi-utilsが必要になります。
ソースをmtd-utilsのrepositoryからdownloadして、Host用とTarget用の二種類makeして作成してください。
出来上がったものをHostとTargetのPathが通ってるところにコピーしてください。
UBIの使い方。
UBIを介してMTDにアクセスする為には、ubiattachでubiのdeviceを作成 and MTDと関連付けをしてあげる必要があります。
例えば、/dev/mtd1に対してattachする場合は、
# ubiattach /dev/ubi_ctrl –m 1
を実行すると、/dev/ubi0が作成されます。
/dev/ubixのxは、defaultだとattach順になりますが、-d optionを使用すると任意の番号になります。
UBIはvolumeというpartitionみたいなものをdevice毎に持ってます。
/dev/ubi0の中に複数のファイルシステムを作り、管理することが可能です。
例えば”testfs”という名前のvolumeを作成するにはubimkvolを使って、
# ubimkvol /dev/ubi0 –N testfs –m
と実行すると、/dev/ubi0_0が作成されます。
mountする際は、/dev/ubi0_0を指定しても大丈夫ですが、volume名を指定してもmountできます。
# mount –t ubifs ubi0:testfs /mnt
こんな感じです。
volumeを消したい時はubirmvol、MTDとの関連付けを外したい時はubidetachを使用します。
ただUBIを使いたいだけだったらこれだけでも十分だとは思いますが、やっぱり組込で開発していると、予め作成したimageファイルを書き込むのが一般的だと思います。
imageの作成方法や書き込み方はUBIFSの作成の仕方と一緒に書こうと思っていますが、なんだか文章が長くなってしまったので、続きは後ほどその3に書きます。
・・・お昼休み終わっちゃってるし (;・∀・)
0 件のコメント:
コメントを投稿