# OTA升级相关问题
#### 软/固件升级是升级什么？
软件升级指升级设备的系统软件和应用软件，固件升级指升级设备硬件的底层"驱动程序"。
升级方式均为将软/固件包上传到物联网平台上，或者关联用户OBS上的对象，设备从物联网平台或用户OBS获取软/固件包实现远程升级。
#### 平台支持从第三方服务器下载软/固件包吗？
不支持。目前只支持将软/固件包直接上传至物联网平台或者关联用户OBS上的对象，上传的位置为控制台的"设备 \> 软固件升级 \> 软件列表"和"设备 \> 软固件升级 \> 固件列表"。
#### 目标版本可以比当前版本低吗？
可以。物联网平台会判断目标版本和当前版本是否一致，如果一致，任务详情显示"The current version is the same as the target version"，物联网平台不会发起升级任务；如果不一致，物联网平台则会启动升级任务。
#### 软/固件包及其版本号如何获取？
软件升级包及其版本号需向设备厂家获取，固件升级包及其版本号需向模组厂家获取。
#### 常见的软/固件升级错误有哪些？
在软/固件升级时，可以在"执行详情"的任务列表中查看错误描述，常见错误描述如下：
表1软固件升级错误描述 
| 失败原因                                                           | 原因解释                | 处理建议                         |
|:---|:---|:---|
| Device Abnormal is not online                             | 设备未在线          | 请检查设备侧是否在线。                |
| Task Conflict                                             | 任务冲突            | 请检查当前设备是否有软件升级、固件升级正在进行。         |
| Waiting for the device online timeout                    | 等待设备上线超时            | 请检查设备侧是否上线。               |
| Waiting for report cellId timeout                         | 等待上报cellId超时    | 请通过模组日志检查设备侧是否上报的小区ID。     |
| Waiting for report device firmware version timeout             | 等待上报设备固件版本超时        | 请通过模组日志检查设备侧是否上报了固件版本号。      |
| Wait for the device to report upgrade result timeout           | 等待设备上报升级结果超时  | 请通过模组日志检查设备侧是否上报了升级结果。           |
| Updating timeout and query device version for check timeout | 等待升级结果超时，且等待设备版本信息超时 | 请通过模组日志检查设备侧是否上报升级结果及上报设备版本信息。 |
| Waiting for device downloaded package timeout                  | 等待设备下载固件包超时       | 请通过模组日志检查设备侧是否下载固件包。          |
| Integrity check failure for new downloaded package         | 下载的固件包完整性校验失败    | 请通过模组日志检查设备下载的固件包是否完整。           |
| Unsupported package type                                        | 固件包类型不支持            | 请通过模组日志检查设备状态和厂商提供的固件包是否正确。      |
| Not enough storage for the new firmware package            | 下载的固件包存储空间不足     | 请检查设备存储。                    |
| Out of memory during downloading process                 | 下载过程中内存不足       | 请检查设备内存。                      |
| Connection lost during downloading process              | 下载过程中连接断开      | 请检查设备连接状态。                  |
| Invalid URI                                               | URI不可用         | 检查设备侧的固件包下载地址是否正确。            |
| Firmware update failed                                         | 固件更新失败              | 请通过模组日志检查设备侧。               |
   
#### 在设备接入服务上传固件包时需要填写的支持设备源版本是什么？
图1OTA升级-上传固件样例   
![](https://support.huaweicloud.com/iothub_faq/figure/zh-cn_image_0000001986132617.png "点击放大")
源版本就是设备当前版本是源版本中的一个，才允许升级。设备的当前版本号可以在控制台的"设备 \> 所有设备 \> 查看"中获取。
#### 在软/固件升级任务中，业务处理是否会中断？
会中断。模组/芯片升级过程中无法处理业务（数据上报、属性修改等）。
#### 升级任务有重试策略，当群组中有部分设备升级失败后，是如何重试的？
当整个任务失败后，只重试失败的子任务，已升级成功的设备不会再重试。
软件升级可以配置重试时间和重试次数，固件升级只能配置重试次数。
#### 平台给设备发送软/固件包的时候，是否支持断点续传功能？
支持。设备需要记录传送中断时软/固件包的分片位置，以便于传送恢复后请求续传未传送的软/固件包分片。但是如果传送恢复后设备发现升级包的校验码改变了，说明这是一个新的升级包，设备要清空之前的分片重新下载。
#### 在创建软固件升级任务，选择多个升级包时，创建失败？
选择的升级包支持的源版本有重复，或者选择的升级包数量超过限制。创建升级任务时，可以选择多个升级包（最多10个），选择的升级包必须满足支持的源版本没有重复。如果某个升级包没有指定支持源版本，则默认该升级包支持所有源版本设备升级。
#### 任务详情中，全部重试会重试哪些设备？
全部重试功能，会重试批量任务中处于失败，失败待重试和停止状态的设备。
#### 升级过程中，设备下载升级包失败？
请确认升级包链接是否超时，升级链接超时时长请参考[平台下发升级通知](https://support.huaweicloud.com/api-iothub/iot_06_v5_3030.html)中。
#### 升级过程中，上报了升级结果后，下载升级包失败？
平台下发升级包后，设备下载完升级包升级然后上报结果给平台。如果上报了升级结果，平台就认为升级完成。再次下载升级包就会失败。
#### 查看升级任务详情显示设备升级超时失败？
软固件升级分为多个阶段，不同的阶段有不同的超时时间，在超时时间内设备没有上报对应的响应，则设备升级就会超时失败，具体超时时间请参考[固件升级](https://support.huaweicloud.com/usermanual-iothub/iot_01_002.html)。
