UBI文件系统


UBI文件系统的使用有两种方式

1.      通过板子自带的ubi系列命令进行格式化,关联,参数指定,挂载。以下为常用的ubi系列命令Ubiattach、 ubidetach、ubimkvol、ubiformat、ubirmvol。

使用步骤如下:

Ubiformat /dev/mtd5        //格式化mtd5分区,不使用-s 指定大小,使用默认的,不然下面的attach也许用-O指定大小

ubiattach /dev/ubi_ctrl -m 5    //关联mtd5分区,此时一般会在/dev下创建一个ubix(x是数字)的文件,作为关联文件

ubimkvol /dev/ubix -s 60MiB -N name //为新创建的分区,设置大小以及标识名

mount -t ubifs -o no_chk_data_crc  ubix_0 /mnt/nand //挂载分区到指定目录

2.      通过mkfs.ubifs、ubinize工具制作镜像,直接烧录到flash

1).先制作镜像

./UBIFS_tools/mkfs.ubifs -r opt -m 2048 -e 129024 -c 487 -oapp.img

-r opt 指定镜像目录

-m 2048 最小单元

-e 129024 逻辑擦除大小,通过ubi族命令可以看到该值,比如用format,attach先看看该值

-c 487 多少个126k

[   12.510000] UBI: attaching mtd5 to ubi1

[   12.520000] UBI: physical eraseblock size:   131072 bytes (128 KiB)

[   12.520000] UBI: logical eraseblocksize:    129024 bytes

[   12.530000] UBI: smallest flash I/Ounit:    2048

[   12.530000] UBI: sub-page size:              512

[  12.540000] UBI: VID header offset:          512 (aligned 512)

    2).ubi信息写入

./UBIFS_tools/ubinize -o appfs.img-m 2048 -p 128KiB -s 512 ./UBIFS_tools/ubinize-app.cfg

ubinize-app.cfg文件内容如下;

[app]

mode=ubi

image=app.img

vol_id=0

vol_size=60MiB

vol_type=dynamic

vol_name=app

vol_flags=autoresize

3). Uboot烧写到flash

按照内核中的分区地址,以及mtd大小,将镜像烧写到指定位置,以及指定大小

nandecc hw 2;mw.b 0x81000000 0xFF0x04000000;tftp 0x81000000 appfs.img;nand erase 0x46c0000 0x4000000;nand write0x81000000 0x046C0000 0x940000

4).挂载

启动之后,执行ubiattach,以及mount即可实现挂载

ubiattach /dev/ubi_ctrl -m 5

mount -t ubifs -ono_chk_data_crc  ubi1_0 /opt

5).系统下烧写

可以使用flash_eraseall指定分区,将分区内容擦除,然后使用flashcp将制作好的镜像拷贝到指定分区。擦除与拷贝过程中,可以不卸载指定分区。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值