Unsorted Block Images - UBI Katmanı

UBI üzerinde işlem yapabilmek için, kontrol arayüzü olan /dev/ubi_ctrl dosyası sistemde yer almalıdır.

Bu özel dosyanın sabit bir major:minor numarası bulunmaz ve dinamik major:minor allokasyonu kullandığından, öntanımlı major:minor değerlerin sistemde halihazırda kullanımda olması durumuna karşı, farklı değerler de oluşabilir.

Sistemde udev veya devtmpfs gibi, /dev dizini altındaki aygıt dosyalarını otomatik oluşturan bir araç kullanmıyorsanız, /dev/ubi_ctrl dosyasını elle oluşturmanız gerekecektir.

Doğru major:minor numaralarını, /sys/class/misc/ubi_ctrl/dev dosyasından öğrendikten sonra (Örnek: 10 ve 63) aşağıdaki gibi oluşturabilirsiniz:

mknod /dev/ubi_ctrl c 10 63

UBI Attach İşlemi

UBIFS dosya sistemini kullanabilmek için sistemde öncelikle UBI volume'lerin oluşturulması gereklidir.

UBI desteği kernel içerisinde mevcut ise, kernel açılış parametresiyle UBI attachment aşağıdaki şekilde ayarlanabilir:

ubi.mtd=rootfs
veya
ubi.mtd=3

Yukarıdaki örnekte, daha önceden bölümlendirilmiş ve bölüm etiketi olarak "rootfs" verilmiş olan /dev/mtd3 bölümü, bir UBI aygıtı olarak sisteme eklenmektedir.

Flash üzerindeki bölümlendirme etiketleri kullanılabileceği gibi, doğrudan MTD bölüm numarası da kullanılabilmektedir.

UBI desteği modül olarak derlenmiş ise, ubi modülüne yüklenirken yukarıdaki gibi parametreler geçilmelidir.

UBI Attach ve UBI Detach işlemleri, mtd-utils paketinden çıkan ubiattach ve ubidetach uygulamaları kullanılarak da yapılabilir.

/dev/mtd3 bölümünü attach etmek için:

ubiattach /dev/ubi_ctrl -m 3

/dev/mtd3 için mevcut attachment'ı sonlandırmak için:

ubidetach /dev/ubi_ctrl -m 3

Not: UBI komutlarında kontrol aygıtı ismi verilmediğinde öntanımlı olarak /dev/ubi_ctrl varsayılır.

Soru: Root dosya sistemi olarak UBIFS kullanıldığında attachment işlemi nasıl yapılabilir?

UBI Attach işlemi tamamlandığında udev veya devtmpfs gibi /dev dizini altındaki aygıt dosyalarını yöneten bir mekanizma kullanıyorsanız otomatik olarak sırasıyla /dev/ubi0, /dev/ubi1 şeklinde attach edilen aygıtlara ilişkin dosyalar oluşacaktır.

Bu şekilde bir sistem kullanmıyorsanız bu dosyaları mknod uygulamasıyla elle oluşturmanız gerekecektir. Bu şekilde elle oluşturma durumu sözkonusu ise, gereken major:minor numaralarını /sys/class/ubi/ubi0/dev dosyasından öğrenebilirsiniz (Örnek: 253 ve 0) Sonrasında aşağıdaki komuta benzer şekilde ilgili aygıt dosyasını oluşturabilirsiniz:

mknod /dev/ubi0 c 253 0

Volume Yönetimi

UBI sisteminde attach edilmiş olan MTD aygıtları üzerinde, UBI katmanında mantıksal volume birimleri oluşturulmalıdır.

Örnek olarak 600 MB boyutundaki /dev/mtd3 ubiattach ile sisteme /dev/ubi0 şeklinde eklenmiş olsun. Bu UBI aygıtı üzerinde çok sayıda UBI volume birimi oluşturmamız mümkündür. Bu işlem için ubimkvol uygulaması kullanılacaktır.

Örnek olarak bu alan üzerinde 100 MB, 200 MB ve 300 MB boyutlarında 3 adet volume birimi oluşturalım:

ubimkvol /dev/ubi0 -N test0 -s 100MiB
ubimkvol /dev/ubi0 -N test1 -s 200MiB
ubimkvol /dev/ubi0 -N test2 -m
  • -N parametresi ile birimlere etiket atanmaktadır
  • Üçüncü komutta -m parametresi ile kalan maksimum alan ayrılmıştır.

Mevcut bir UBI volume birimini silmek içinse ubirmvol uygulaması kullanılır.

Etiketi test2 olan volume birimini kaldırmak için:

ubirmvol /dev/ubi0 -N test2

Etiket yerine volume birim numaraları da kullanılabilir:

ubirmvol /dev/ubi0 -n 2

results matching ""

    No results matching ""