`
dss16694
  • 浏览: 147325 次
社区版块
存档分类
最新评论

重新打包ubi镜像

 
阅读更多

从网上了解到ubi image不能像其他格式的文件系统image那样作为loop设备mount起来,所以需要找其它方法。具体做法就是安装nandsim模块来模拟一个nand flash,然后将ubi image写到mtd设备上,再将mtd设备attach起来,最后就可一mount ubi设备了。

 

 2002  sudo modprobe ubi

(需要安装ubi模块,不然ubiattach会报错)

 2003  sudo modprobe nandsim first_id_byte=0x20 second_id_byte=0xaa third_id_byte=0x00 fourth_id_byte=0x15

(安装nandsim来模拟nand设备,执行后可以看到/dev/mtd0。传入的四个id在执行“read ID”命令时返回)

 2005  cat /proc/mtd

mtd设备信息)

 2008  sudo ubiformat -y /dev/mtd0 -s 512 -f ubi.img

(格式化mtd,并写入ubi image

 2009  sudo ubiattach -m 0

(将/dev/mtd0 attachubi设备。detach则用-d 0,表示detach /dev/ubi0

 2010  ls /dev/ubi0*

 2012  sudo mount -t ubifs /dev/ubi0_0 ubi

(将ubi设备0的第一个分区mountubi目录)

 

 2025  sudo mkfs.ubifs -r ubi -m 2048 -e 129024 -c 863 -o fs.img

(由ubi目录制作文件系统image-m为最小io大小,-e为逻辑擦除块leb大小,-c为最大leb个数)

 2027  sudo ubinize -o fs.img.ubinized -m 2048 -p 128KiB -s 512 -O 512 ubi.ini

(制作待烧录的ubi image-m为最小io大小,-p为物理擦除块peb大小,-s为用作ubi头的page大小,-OVID头的偏移量)

 

ubi.ini内容:

[ubifs]

mode=ubi

image=fs.img

vol_id=0

vol_type=dynamic

vol_alignment=1

vol_name=rootfs

vol_flags=autoresize

 

有关ubi可以参考:

http://www.linux-mtd.infradead.org/doc/ubi.html

 

UBI头:

每一个PEB开始处存由两个64byte的的头,分为EC头和VID头。EC头存放PEB的擦除次数。VID头存放所属volume,以及映射时对应的LEB号码。EC头位于0偏移量处,VID位置取决于是否由sub-page:如果没有,则位于第二个page处;如果由,则位于第二个sub-page处。由于PEB包含两个头,所以LEBPEB小。

 

最小io单元:

NOR flash的大小为1byteNAND的对应page大小,比如512或者2k等等。

分享到:
评论

相关推荐

    挂载 ubi 镜像及反向制作.doc

    挂载 ubi 镜像及反向制作.doc 挂载 ubi 镜像及反向制作.doc 挂载 ubi 镜像及反向制作.doc

    挂载ubi镜像及反向制作

    如何正确的在 PC 上挂载 ubi 镜像文件及反向重新制作镜像

    ubi和 yaffs imgae 镜像制作工具

    `mkyaffsimgae`工具则是用来创建YAFFS格式的镜像文件,它可以将文件和目录结构打包成一个单一的二进制文件,方便烧录到Flash中。与mkubimage类似,mkyaffsimgae也需要开发者提供一些关于目标Flash设备的参数,以便...

    ubi文件系统生成用工具。

    它会将输入的文件系统镜像(例如,通过 `mkfs.ubifs` 创建的镜像)压缩,并将其分割成适合 UBI 写入的块。`ubinize` 支持多种压缩算法,如 lzo 和 zlib,这些在描述中提到的源码文件可能就是用来实现压缩功能的。 4...

    ubi文件系统故障排查

    - **重新烧录 UBI/UBIFS 影像**:如果驱动没有问题,可能是由于 UBI/UBIFS 影像未正确烧录导致的问题。尝试先擦除闪存,然后重新挂载而不需要写入任何影像,检查是否还有错误发生。 - **ECC 计算算法问题**:确认...

    UBI文件系统使用总结

    2. **写入镜像**: 将制作好的 UBI 镜像写入虚拟的 NAND Flash。 示例命令: `# dd if=ubi.img of=/dev/mtd0 bs=2048` ##### 加载文件系统 加载 UBI 文件系统并关联 MTD 设备: - `# modprobe ubi` - `# ./...

    UBI&UBIFS 的使用注意和说明.pdf

    ⚫ UBI (Unsorted Block Images/无序块镜像) ➢ Runs on top of MTD(MTD(Memory Technology Device)是flash在Linux系统的一种 软件架构); ➢ A sub system that provides consecutive logical eraseblocks (逻辑...

    ubi根文件系统制作

    4. **制作ubi映像**:使用ubiutils工具集中的`ubinize`命令将文件系统镜像转换为适合ubi的格式。例如:`ubinize -o rootfs.ubi -m mtd_params.txt -p 1024K rootfs.ext4`,这里`mtd_params.txt`是关于NAND Flash参数...

    UBI文件系统分析

    ### UBI文件系统分析 #### 一、挂载UBIFS的代码分析 ##### 1. ubi_attach_mtd_dev函数解析 UBIFS (Unsorted Block Image File System) 是一种为闪存存储器优化的文件系统,它适用于各种嵌入式系统。在分析UBIFS的...

    电鱼派ubi文件系统工具

    它将用户提供的文件系统镜像转换成适合ubi使用的格式。mkfs.ubifs支持多种选项,比如设置日志大小、挂载点、压缩算法等,以适应不同的应用场景。 3. **ubinize**:ubinize工具负责将创建好的ubifs文件系统映像转换...

    UBI文件系统移植总结

    ### UBI文件系统移植总结与关键技术解析 #### 一、UBIFS概览 UBIFS(Unsorted Block Images File System)是一种专为闪存设计的文件系统,由IBM、诺基亚的工程师Thomas Gleixner、Artem Bityutskiy等在2006年发起...

    UBI design

    ### UBI设计详解 #### 一、文档概述与引言 **Unsorted Block Images (UBI)** 是一种针对闪存设备的数据存储格式,主要用于管理 NAND Flash。它由 Thomas Gleixner、Frank Haverkamp 和 Artem Bityutskiy 共同设计...

    squash文件系统打包和解包

    squash 文件系统在linux系统内编译成功了, 能生成打包和解包工具, 分享文件系统的属性

    汽车车险UBI分析报告.pptx

    【汽车保险UBI简介和发展进程】 汽车保险UBI(Usage-Based Insurance)是一种创新的保险模式,它基于车主的驾驶行为和车辆使用数据来提供个性化的保险产品。这种模式通过实时监控车辆的里程、油耗,结合驾驶行为...

    乘用车UBI市场研究报告.pptx

    【标题】:“乘用车UBI市场研究报告.pptx” 【描述】:“乘用车UBI市场研究报告.pptx” 【标签】:“管理信息化 PPT 文档资料” 【正文】: 本报告聚焦于乘用车使用的UBI(Usage-Based Insurance)市场,这是一...

    UBI 文件系统使用指南1

    通过内核配置和正确的镜像制作流程,可以有效地利用UBI的优势,提高系统稳定性和存储效率。对于技术支持工程师来说,理解和掌握UBI的使用方法是至关重要的,特别是在处理基于闪存的嵌入式系统时。

    ubi文件系统生成用工具

    `ubinize`会根据输入的参数,比如LEB大小、PEB(Physical Eraseblock)大小以及预留的空间等,来调整和打包文件系统映像。这个过程也涉及到对输入文件的压缩,以适应闪存的特性,减少坏块的影响。 在实际操作中,...

    ubi-user.h

    ubi-user.h

Global site tag (gtag.js) - Google Analytics