目录 | ||
---|---|---|
|
现象描述
为解决日本雷能ALARM2告警问题,进行了软件修复,需要给基站上的FSU进行软件升级,在升级过程中遇到了升级失败情况,现象为:FSU升级失败后,整流器RUN灯常亮,FSU无法访问。尝试几次都失败。先升级了一次AC/DC再次执行升级FSU还是失败。
升级方式
升级盒子运行给目标FSU升级的程序,存放的升级包为:upgrade_cloneFile_v1.8.1_202309061749.tar.pack,当按下升级盒子的升级按键时,传送升级包到目标FSU,并下发重启指令。目标FSU重启后检测到升级包的存在,会进行解压替换文件。
原因分析
通过远程查看问题设备,发现缺少了一个appbak的分区
- 正常分区
- 异常分区
分区缺失原因
设备FLASH存在坏块,该分区挂载失败
分区缺失影响
程序升级完毕,在首次运行正常后会将程序所在的/app文件夹打包到/appbak下,分区缺失会导致压缩包存放到根目录,根目录空间放不下备份包,会导致程序打包失败,系统重启,如此循环5次达到系统异常的恢复机制:删除/app,从备份包解压文件到/app,但是前面空间不够,打包失败,只能备份一小部分文件,进而导致程序完全运行不起来,恢复机制失败。
...
View file | ||||
---|---|---|---|---|
|
解决方案
不更改升级包里面的升级脚本,在升级盒子里的程序加入对目标设备擦除分区重新挂载的命令,即可解决。
...
点击【选择文件】---【导入】---【启用】---【保存】
方案实现
升级盒子程序要解决两种情况,并且升级盒子运行的扩展模块要有版本号的变更,用于确认升级盒子的程序升级成功。
目标程序正常
GatewayServer正常运行,则检查是否存在/appbak分区
...
代码块 |
---|
umount /appbak; flash_eraseall /dev/mtd10; ubidetach -m 10; ubiformat /dev/mtd10; ubiattach /dev/ubi_ctrl -m 10 -d 10; ubimkvol /dev/ubi10 -s 38MiB -N appbak; mount -t ubifs ubi10_0 /appbak; |
目标程序异常
GatewayServer没在运行,执行看门狗,防止系统重启
...