版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

目录
outlinetrue

现象描述

为解决日本雷能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
name20240830_upgrade_fail_log.zip
height250


解决方案

不更改升级包里面的升级脚本,在升级盒子里的程序加入对目标设备擦除分区重新挂载的命令,即可解决。

...

点击【选择文件】---【导入】---【启用】---【保存】


方案实现

升级盒子程序要解决两种情况,并且升级盒子运行的扩展模块要有版本号的变更,用于确认升级盒子的程序升级成功。

目标程序正常

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没在运行,执行看门狗,防止系统重启

...