微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > 72 ubifs如何打包解包

72 ubifs如何打包解包

时间:10-02 整理:3721RD 点击:
如题,以前的yaffs可以通过mkyaffs2image 和unyaffs来解决
ubifs怎么打包解包呢〉?

NAND跟EMMC不一样的解法的吧

emmc 是ext4,ubifs专指nand

解包:
用nandsim模拟NAND
把UBI文件系统attach到nandsim模拟出来的mtd设备上
最后mount到系统目录里
压包:
mkfs.ubifs生成UBI文件系统
生成对应的配置文件
ubinize生成img文件

压包能否说详细点?

也想知道呢

已经搞定,按ubifs编译出整个代码,然后去看log,android log最后一段就是ubifs 压包过程

大侠,能教下我吗

大侠,能教下我吗

mkfs_ubifs -F -r out/target/product/xxxx/system -o out/target/product/xxxx/ubifs.android.img -m 2048 -e 126976 -c 1929 -v
ubinize -o out/target/product/xxxx/system.img -m 2048 -p 131072 -o 2048 -v out/target/product/xxxx/ubi_android.ini
其中xxxx是项目名,那些具体数值要根据自己的分区及flash来定,可以看new出来的log

大侠,如何解包UBIFS格式的system.img文件呢
按下列方法无法成功
用file命令查看文件格式:
    system.img: HIT archive data
解压缩步骤如下:
查看system.img文件长度,这里举例文件大小为190MB,所以使用虚拟NAND容量为256MB,以下命令载入nandsim:
    modprobe nandsim first_id_byte=0xec second_id_byte=0xd5 third_id_byte=0x51 fourth_id_byte=0xa6
dmesg可以看到系统模拟出一个2048MiB的NAND flash。
复制system.img数据到虚拟nand:
    dd if=system.img of=/dev/mtd0 bs=4096
载入ubi文件系统:
    modprobe ubi
把mtd设备attach到ubi系统中:
    ubiattach -m 0
如果系统提示以下错误信息:
ubiattach: error!: cannot attach mtd0
           error 22 (Invalid argument)
使用dmesg可以发现类似错误:
UBI error: validate_ec_hdr: bad VID header offset 4096, expected 1024
UBI error: validate_ec_hdr: bad EC header
那么使用offset参数载入:
    ubiattach -m 0 -O 4096
正确调用的话,系统返回信息:
    UBI device number 0, total 8192 LEBs (2080374784 bytes, 1.9 GiB), available 0 LEBs (0 bytes), LEB size 253952 bytes (248.0 KiB)
最后用mount命令载入文件系统:
    mount -t ubifs /dev/ubi0_0 /mnt/system/

成功载入的关键是选择正确的nandsim类型

nandsim 类型如何选择?望大侠不吝赐教

这里的4个字节取值,可以参考NAND Flash Table。按照需要更改。

就是这取值不知怎么整,我的nandflash是MT29F64G08CBABA,在ubuntu 12.04下一直搞不定,还望大侠指点迷津

顶一下…………

有人会吧,急急急

大侠,能说下解包过程吗?

有人会解包吗?

大侠,能说下解包过程吗?

怎么没人回答啊

高手在哪里啊,高手在哪里?高手在一流研发的论坛里

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top