工具/软件:Linux
大家好、
我的客户正在将 AM3352与 SDK7.0配合使用、但遇到了 UBIFS 问题。 但是、对于 SDK 6.0、没有问题。
我尝试在 GPEVM 上复制这一内容、并看到了它。 重现步骤如下所示:
1.按照 UBIFS 用户指南,根据 GPEVM 上使用的 NAND 闪存制作 ubi.img。
2.制作 SDK7.0引导 SD 卡。 将 ubi.img 复制到 SD 卡以将闪存复制到 NAND。
3.将 GPEVM 设置为从 SD 卡引导。 然后在 uboot 阶段、将 ubi.img 刷写到 NAND FS 布局。
4.将 GPEVM 引导至内核级,然后使用“ubiattach”来装载 ubi.img
测试结果表明、在 SDK 7.0中、它在以下提示下失败。
root@AM335x-EVM:~# ubiattach /dev/ubi_ctrl -m 9.
[60.372124] UBI:将 mtd9连接到 ubi0
[60.376715] UBI 错误:VALIDATE_EC_HDR:错误的 VID 标头偏移2048、预期为512
[60.384604] UBI 错误:VALIDATE_EC_HDR:错误的 EC 标头
[60.389951]擦除计数器标头转储:
[60.393928]魔术0x55424923
[60.397884]版本1
[60.401029] EC 0
[60.404163] vid_hdr_offset 2048
[60.407568] data_offset 4096
[60.410998]图像序列25281982
[60.414770] HDR_CRC 0x51f8cb19
[60.418729]擦除计数器头六转储:
[60.423017] CPU:0 PID:1622 Comm:ubiattach 被污染:G O 3.12.10-ti2013.12.01 #1
[60.431853]回溯:
[60.434473][ ](dump_backtrace+0x0/0x10c)从[ ](show_stack+0x18/0x1c)
[60.443401] R6:dd4d7800 R5:00000000 R4:00000000 R3:00000000
[60.449414][ ](show_stack+0x0/0x1c)、来自[ ](dump_stack+0x20/0x28)
[60.457897][ ](dump_stack+0x0/0x28)从[ ](VALIDATE_EC_HDR+0x128/0x184)
[60.467028][ ](VALIDATE_EC_HDR+0x0/0x184)从[ ](ubi_IO_READ_EC_HDR+0x164/0x238)
[60.476974][ ](ubi_io_read_EC_HDR+0x0/0x238)从[ ](ubi_attach+0x148/0x149c)
[60.486565][ ](ubi_attach+0x0/0x149c)从[ ](ubi_attach_mtd_dev+0x5d0/bbc4)
[60.496146][ ](ubi_attach_mtd_dev+0x0/bc4)、来自[ ](ctrl_cdev_ioctl+0xd4/0x190)
[60.506005][ ](ctrl_cdev_ioctl+0x0/0x190)从[ ](do_vfs_ioctl+0x84/0x578)
[60.515299] r7:00000000 R6:40186f40 R5:00000003 R4:00005452
[60.521313][ ](do_vfs_ioctl+0x0/0x578)从[ ](sys_ioctl+0x74/0x84)
[60.529970][ ](sys_ioctl+0x0/0x84)从[ ](RET_FAST_SYSCALL+0x0/0x30)
[60.538809] UBI 错误:Ubi_IO_READ_EC_HDR:PEB 0验证失败
[60.547722] UBI 错误:ubi-attach_MTD_dev:无法连接 mtd9、错误-22
ubibattach:错误!:无法连接 mtd9
错误22 (无效参数)
但是、在 SDK 6.0中、它可以成功而不会出现任何问题。
root@AM335x-EVM:~# ubiattach /dev/ubi_ctrl -m 7.
[60.047454] UBI:将 mtd7连接到 ubi0
[60.051605] UBI:物理内存块大小:131072字节(128 KiB)
[60.058166] UBI:逻辑段块大小:126976字节
[60.063812] UBI:最小的闪存 I/O 单元:2048
[60.068756] UBI:VID 标头偏移:2048 (对齐2048)
[60.075012] UBI:数据偏移:4096
[61.295532] UBI:最大 序列号:0
[61.332672] UBI:卷0 ("rootfs")从1958年调整为1965年的 LEB
[61.343078] UBI:将 mtd7连接到 ubi0
[61.346984] UBI:MTD 器件名称:"文件系统"
[61.352783] UBI:MTD 器件大小:248 MIB
[61.358001] UBI:良好 PEB 数量:1988年
[61.362915] UBI:错误 PEB 数:0
[61.36753] UBI:损坏的 PEB 数量:0
[61.372192] UBI:最大 允许的卷:128
[61.377014] UBI:磨损矫正阈值:4096
[61.381927] UBI:内部卷数:1.
[61.386596] UBI:用户卷数:1.
[61.391235] UBI:可用 PEB:0
[61.395874] UBI:保留 PEB 总数:1988年
[61.401062] UBI:为不良 PEB 处理保留的 PEB 数:19.
[61.407440] UBI:最大/平均擦除计数器:1/0
[61.411895] UBI:图像序列号:25281982
[61.417114] UBI:启动后台线程"ubI_bgt0d"、PID 1685
ubi 器件编号0、总共1988 LEB (252428288字节、240.7 MIB)、可用0 LEB (0字节)、LEB 大小126976字节(124.0 KiB)
有关 SDK 6.0和 SDK 7.0的完整日志、请参阅随附的文件。
我在 e2e 上搜索了此问题。 并找到类似问题及解决方法: 
但是、如果使用"ubiformat /dev/mtd9 "、我们可以成功安装 UBIFS、但文件系统会被格式化。 存储在 UBIFS 中的文件将丢失、这是我们不希望看到的。
此问题是否有任何解决方案? 客户不希望 UBIFS 中的数据丢失。
e2e.ti.com/.../2625.GPEVM_5F00_SDK6.0_5F00_UBIFS_5F00_success.txt
e2e.ti.com/.../4705.GPEVM_5F00_SDK7.0_5F00_-UBIFS_5F00_Fail.txt