UBIFS

转:http://www.armadeus.com/wiki/index.php?title=UBIFS

 

This is a preliminary page dealing with the installation of UBIFS on the APF boards. UBIFS will replace JFFS2 file system on NAND (and NOR as well) based boards because JFFS2 induces a big overhead when parsing, reading and writing large devices, see UBIFS scalability.

 

Contents

 [hide]

 

Introduction

UBIFS website

Host Setup

  • add uuid-dev packages (should be already installed as required to build the HEAD of Armadeus repository):
$ sudo apt-get install uuid-dev

APF build config

Buildroot

$ make menuconfig

APF51:

Target filesystem options  --->

    [*] ubifs root filesystem

    (0x1f800) UBI logical erase block size

    (0x800) UBI minimum I/O size

    (2047) Maximum LEB count

          ubifs runtime compression (lzo)  --->

          Compression method (no compression)  --->

    [*]   UBI image

    (0x20000) UBI physical erase block size

    (512)   UBI sub-page size

APF27:

Target filesystem options  --->

    [*] ubifs root filesystem

    (0x20000) UBI physical erase block size

    (0x1f800) UBI logical erase block size

    (0x800) UBI minimum I/O size

    (512) UBI sub-page size

    (2047) Maximum LEB count

$ make

Linux

$ make linux-menuconfig

File systems  --->

    [*] Miscellaneous filesystems  --->

        <*>   UBIFS file system support   and disable debugging !!



Device Drivers  --->

    <*> Memory Technology Device (MTD) support  --->

        UBI - Unsorted block images  --->

            <*> Enable UBI

            (4096) UBI wear-leveling threshold  and disable debugging !!

$ make linux

  • reflash your kernel

U-Boot envt variables

BIOS> setenv bootcmd run ubifsboot

BIOS> setenv download_rootfs tftpboot \${loadaddr} \${serverpath}\${board_name}-rootfs.arm.ubi

Additional informations

A new file 'ubinize.cfg' defining the ubi volumes is located in buildroot/target/ubifs/. This file contains the different UBI volumes of the UBI image:

 [ubifs]

 mode=ubi

 vol_id=0

 vol_type=dynamic

 vol_name=rootfs

 vol_alignment=1

 vol_flags=autoresize

This file is processed by the ubinize utility after mkfs.ubifs.

U-Boot access to UBIFS partitions

U-Boot can read files from the rootfs / UBIFS partition using the commands: uni, ubifsmount, ubifsls, ubifsload. Here is an example applicable to the apf27, apf28 and apf51 boards:

 

BIOS> ubi part rootfs

UBI: attaching mtd1 to ubi0

UBI: physical eraseblock size:   131072 bytes (128 KiB)

UBI: logical eraseblock size:    129024 bytes

UBI: smallest flash I/O unit:    2048

UBI: sub-page size:              512

UBI: VID header offset:          512 (aligned 512)

UBI: data offset:                2048

UBI: attached mtd1 to ubi0

UBI: MTD device name:            "mtd=7"

UBI: MTD device size:            500 MiB

UBI: number of good PEBs:        3988

UBI: number of bad PEBs:         12

UBI: max. allowed volumes:       128

UBI: wear-leveling threshold:    4096

UBI: number of internal volumes: 1

UBI: number of user volumes:     1

UBI: available PEBs:             0

UBI: total number of reserved PEBs: 3988

UBI: number of PEBs reserved for bad PEB handling: 39

UBI: max/mean erase counter: 2/0



BIOS> ubifsmount ubi0:rootfs

UBIFS: mounted UBI device 0, volume 0, name "rootfs"

UBIFS: mounted read-only

UBIFS: file system size:   504483840 bytes (492660 KiB, 481 MiB, 3910 LEBs)

UBIFS: journal size:       9033728 bytes (8822 KiB, 8 MiB, 71 LEBs)

UBIFS: media format:       w4/r0 (latest is w4/r0)

UBIFS: default compressor: LZO

UBIFS: reserved for root:  0 bytes (0 KiB)



BIOS> ubifsls /boot

	  2604048  Thu Oct 03 08:38:56 2013  apf51-linux.bin



BIOS> ubifsload 90000000 /boot/apf51-linux.bin

Loading file '/boot/apf51-linux.bin' to addr 0x90000000 with size 2604048 (0x0027bc10)...

Done



Acces to UBIFS files from U-Boot can used to do an update of your system after deployement on site through some U-Boot scripts..

你可能感兴趣的:(BI)