根据ubifs图像大小的大小动态创建卷

时间:2013-05-19 19:28:03

标签: ubifs

我需要根据ubifs图像(比如rootfs.ubifs)的大小创建一个新卷(它可以是静态的),我将写入该卷。目的是创建具有将“rootfs.ubifs”写入该卷并从中引导设备所需的最小可能大小的卷。

有人可以在这方面帮助我吗?

1 个答案:

答案 0 :(得分:0)

区别在于overhead of the UBI layer。这在网页中记录为O,或

  • O - 与以字节为单位存储EC和VID标头相关的开销,即O = SP - SL。

SP是物理擦除块大小,SL UbiFs 将获得的。通常,最小大小乘以2。一个用于EC,另一个用于VID;这些是 UBI 用于管理闪存的两种结构。两者都在ubi-media.h中定义。 ECubi_ec_hdr结构,VIDubi_vid_hdr结构。每次擦除擦除块时都会写入EC擦除计数,这将导致耗损均衡 note VID卷ID 标头允许 UBI 支持多个卷,并将 PEB 提供给 LEB (物理到逻辑擦除块)管理。

因此对于没有子页面的2k页 NAND 闪存,它是4k;如果支持子页面,则可以将两个标题放在同一页面中,只需要2k。如果您的Flash页面大小不同,您只需要在没有子页面的情况下乘以2,如果您有子页面,则只需添加页面开销。 NOR 闪存的开销是256字节,因为它没有 pages 的想法。

要创建 rootfs.ubifs ,您必须指定逻辑擦除块大小(至mkfs.ubifs)。 逻辑擦除块LEB)和物理擦除块PEB)之间的区别只是上面记录的开销。将{em> rootfs.ubifs 乘以PEB / LEB,以获得 UBI卷的最小可能大小。

注意:如果在实际擦除和EC写入之间擦除被中断(复位/电源循环),则所有其他擦除块的平均值用于设置 UBI 重新读取 ubi设备时的擦除计数。