# 失败原因分析

常见问题排查

1. 压力测试 100 次以上,偶现 OTA 失败导致测试报告失败该怎么办?

原则上产品验收要求:测试类型为压力测试,要求 ota 次数为 100 次,警告次数比例不大于 10%,失败次数为 0。如果有偶现失败的 ota,判断是网络原因导致的也是允许的。所以需要判断偶现的失败是否为网络偶现波动导致,初步判断方式为:查看分析模组上报给云端的日志,具体方法见查看 log 分析。若提示的 错误码 是网络相关,即可判断是网络问题。

2. OTA 用例结果状态为“跳过”,测试报告失败。

部分小米自研的模组,特定版本不支持降级到低版本,所以提示 “当前设备模组版本不支持降级到此 OTA 版本,本次 OTA 跳过!”。遇到这种情况可以通过”固件刷包“任务,将当前固件版本更新到支持降级的版本(备注:执行完“固件刷包”后,设备可能会离线,需要重新配网绑定)。特殊不支持降级的版本如下:

screenshot

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 字段。

    screenshot

  • 查看模组日志

    screenshot

3. 路由器兼容问题

研发阶段建议找市面上比较主流路由器厂家和主流型号测试。

4. 检查问题

  • 检查路由器下面所连接的设备,一般建议链接不超过 20 个设备

  • OTA 服务器(网址测速)(针对国内地区)

测速网址:http://speedtest.ksc-test.com/download/index.html?host=cdn.cnbj0.fds.api.mi-img.com (opens new window)

screenshot

5. 查看 log 分析

  • 所有设备采用统一的 error code 和 error msg,查看 log 有两种方式:
  1. 查看云端平台日志

    点击某次 OTA“查看详情”,找到“设备在此时间段上行的 OTA 相关消息内容如下”关键字,下面的内容显示为 OTA 过程设备上报给云端平台的日志, 可以看到 ota_state 内容为对应的失败错误码和错误简述。

    screenshot

  2. 查看模组日志

    screenshot

    错误码和说明如下:

    screenshot

其他问题

  • 若以上都排除,请加上以上排除材料和 模组 Log 提交工单解决。
上次更新: 9/2/2024, 8:24:00 PM