TI中文支持网
TI专业的中文技术问题搜集分享网站

请教一下DM368远程升级的问题

在远程升级文件系统的时候碰到一个比较头疼的问题,希望高人解答一下:

硬件配置:DM368,IPNC3.0,内存128M(48M给ARM使用),flash32M;

升级环境:通过网页升级。大概升级原理:通过web将待升级的文件系统缓存到设备,然后执行/tmp/flash_eraseal清除flash,再执行/tmp/nandwrite,最后执行命令   /mnt/nand/shutdown -r now

碰到问题:(假定有两个版本,版本A和版本B)

1)版本A升级到版本A;或者版本B升级到版本B都没有问题;

2)版本A升级到版本B,升级“失败”;

3)版本B升级到版本A,升级“失败”;

PS:失败之所以打引号,是因为,版本还是升级成功了,只是系统没有重启,看到的版本号还是原来的版本;

失败现象:假定A版本大小小于B版本

1)A升级到B(小到大)

在升级的最后,也就是执行shutdown后,提示:

[  130.530000] SQUASHFS error: Unknown inode type 15 in squashfs_iget!
INIT: Switching[  130.550000] SQUASHFS error: zlib_fs returned unexpected result 0xfffffffd
[  130.560000] SQUASHFS error: Unable to read cache block [ec7a8b:40]
[  130.560000] SQUASHFS error: Unable to read inode [ebbb80:1baa]
2)B升级到A(大到小)

[  339.460000] SQUASHFS error: zlib_fs returned unexpected result 0xfffffffd
INIT: Switching[  339.470000] SQUASHFS error: Unable to read cache block [ec1798:1177]
 to runlevel: 6
[  339.480000] SQUASHFS error: Unable to read inode [ec1798:1177]

Shujie Liu:

⊙﹏⊙b汗,没有人知道吗?

我猜想是squashfs的问题……

两份同样的代码,只是编译时间不一样,它们生成的*.squashfs大小一样,但Inode table size 和Directory table size不一样。

这样的两份文件系统都不能交替升级……

de wang:

回复 Shujie Liu:

扯哦,你都擦过flash了,应该没什么问题的。 要注意 flash_eraseall /dev/mtdX,擦出的是字符设备,不要搞成/dev/mtdblockX这样的块设备去了;nand write一样。看看我这个是cramfs的

flash_eraseall /dev/mtd2 && nandwrite -q -p /dev/mtd2 /mnt/nand_mtdblock5/uImage && flash_eraseall /dev/mtd3 && nandwrite -q -p /dev/mtd3 /mnt/nand_mtdblock5/cramfs

先在shell中使用交互式命令实验,成功后可把这些步骤编程为全自动化的。

赞(0)
未经允许不得转载:TI中文支持网 » 请教一下DM368远程升级的问题
分享到: 更多 (0)