0

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

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

4

1 回答 1

0

不同之处在于UBI层的开销。这记录O在网页中,或者,

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

SP是物理擦除块大小,SLUbiF将得到的。通常,它是最小页面大小乘以 2。一个代表一个EC,另一个代表一个VID;这是UBI用来管理闪存的两种结构。两者都在ubi-media.h中定义。 ECubi_ec_hdr结构,VIDubi_vid_hdr结构。EC每次擦除擦除块时都会写入或擦除计数,这负责磨损均衡注意VIDor卷 id 标头允许UBI支持多个卷并提供PEBLEB(物理到逻辑擦除块)管理。

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

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

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

于 2013-10-23T18:11:00.887 回答