2011年10月19日水曜日

UBIFS使ってみた その2

続き。
実際に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 件のコメント:

コメントを投稿