# 失败原因分析
常见问题排查
1. 压力测试 100 次以上,偶现 OTA 失败导致测试报告失败该怎么办?
原则上产品验收要求:测试类型为压力测试,要求 ota 次数为 100 次,警告次数比例不大于 10%,失败次数为 0。如果有偶现失败的 ota,判断是网络原因导致的也是允许的。所以需要判断偶现的失败是否为网络偶现波动导致,初步判断方式为:查看分析模组上报给云端的日志,具体方法见查看 log 分析。若提示的 错误码 是网络相关,即可判断是网络问题。
2. OTA 用例结果状态为“跳过”,测试报告失败。
部分小米自研的模组,特定版本不支持降级到低版本,所以提示 “当前设备模组版本不支持降级到此 OTA 版本,本次 OTA 跳过!”。遇到这种情况可以通过”固件刷包“任务,将当前固件版本更新到支持降级的版本(备注:执行完“固件刷包”后,设备可能会离线,需要重新配网绑定)。特殊不支持降级的版本如下:
3. 升级一直超时或者状态为“警告”的次数过多,测试报告失败。
如果是固件包太大,请邮件联系产品经理或提交工单(附上对应的任务 ID)由小米相关同事调整对应 model 的 OTA 超时时间。
如果是测试海外地区 OTA 且设备不在对应的海外地区,建议搭建 VPN 环境。
4. 模组一直能成功,MCU 升级一直失败。
检查 MCU 是否加上 CRC 校验
Wi-Fi 模组 log: [E] arch_ota: crc check failed! (arch_ota_check_crc,309) [E] ota_mcu: check crc error in mcu fw (ota_mcu_refresh,135) 云端 Dlog: {"id":9366417,"method":"event.ota_error","params":["IF Close Err"],"retry":0,"timestamp":1604368578,"tick":438370}
检查 MCU 升级流程指令流程是否有是否有回“error”导致流程中断
↑ get_down ↓ down update_fw ↑ result "ready" ↓ ok 进入 xmodem 开始下载
检查 xmodem 协议是否有问题,检查如出现下列 log 表明 MCU xmodem 协议出错
[E] mcmd: xmodem transfer end error (ota_mcu_result,218)
MCU_version 更新完成时上电发送 MCU_version,模组没有回复 OK(表示设置失败)
问题定位思路
1. 检查本地连接
2. 硬件 RF 问题
查看在模组 log 中查看 RSSI, 保证设备有不小于-70 的信号强度。查询方式有两种:
OTA 工具平台上 “查看详情”
点击某次 OTA“查看详情”,找到对应服务器给设备下发的 miIO.info RPC 命令,查看对应设备端的详情,其中有一项 rssi 字段。
查看模组日志
3. 路由器兼容问题
研发阶段建议找市面上比较主流路由器厂家和主流型号测试。
4. 检查问题
检查路由器下面所连接的设备,一般建议链接不超过 20 个设备
OTA 服务器(网址测速)(针对国内地区)
5. 查看 log 分析
- 所有设备采用统一的 error code 和 error msg,查看 log 有两种方式:
查看云端平台日志
点击某次 OTA“查看详情”,找到“设备在此时间段上行的 OTA 相关消息内容如下”关键字,下面的内容显示为 OTA 过程设备上报给云端平台的日志, 可以看到 ota_state 内容为对应的失败错误码和错误简述。
查看模组日志
错误码和说明如下:
其他问题
- 若以上都排除,请加上以上排除材料和 模组 Log 提交工单解决。