物联网平台提供固件升级服务。设置设备端支持OTA服务后,您可以在控制台上传待升级的固件,将固件升级消息推送给设备,设备在线升级。本文将为您讲解如何升级固件。

前提条件

使用固件升级功能前,请确保:
  • 设备端支持OTA升级服务。
  • 已开通固件升级服务。如果未开通,登录物联网平台的控制台,选择扩展服务,单击固件升级下的使用服务

操作步骤

  1. 登录物联网平台的控制台。
  2. 选择我的服务 > 固件升级 > 新增固件,将固件信息上传至云端。


    添加固件页面需设置如下参数:
    参数 描述
    固件名称 设置固件名称。不能包含特殊字符,仅支持中文、英文字母、数字和下划线,长度限制4~32。
    固件版本号 输入固件版本号。仅支持英文字母、数字、点、中划线和下划线,长度限制1~64。的固件文件大小不能超过10M。
    签名算法 仅支持MD5和SHA256。
    上传固件 上传固件文件。文件大小不能超过10M,仅支持bin,tar,gz,zip类型的文件。
    说明
    新增固件最多支持上传100个固件。
  3. (可选)若您使用AliOS Things接入平台,可以使用安全升级功能。

    单击我的服务 > 固件升级 > 安全升级,将对应AliOS Things待升级产品安全升级按钮置为。复制公钥用于设备端签名,具体请参考AliOS Things技术文档

    安全升级是保证固件完整性、机密性的一种方式,建议打开。使用安全升级功能,需设备端配合对固件、固件的签名进行验证。

  4. 在固件列表选中固件,单击验证固件。目的是为了在少量设备上进行测试,验证固件可用后再进行批量升级。
    参数 描述
    升级方式
    • 整包:将整个升级包推送至设备。
    • 差分:物联网平台将提取升级包与前一个版本的差异,仅将差异部分推送至设备。差分升级可有效减少升级对设备资源的占用。
      说明
      • 仅AliOS Things设备mk3060,esp8266两个型号支持差分升级功能。
      • 差分目标固件大小不能小于20K。
    设备所在区域 该设备所在地域。
    设备所属产品 选中待升级设备所属的产品。
    DeviceName 选中待升级的设备。
    选择整包升级时 固件版本号:产品自动上报当前的固件版本号。

    固件版本号设置完成后,单击确定,开始验证固件。

    选择差分升级时
    • 待升级版本号:产品自动上报当前固件版本号。此处需选中待升级的固件版本。
    • 差分的固件名称:待升级的最新固件。
    • 切片大小规格:切片将固件进行切片传输,支持不切片、2M、64K、32K四种规格。

    参数设置完成,单击确定,平台开始制作差分固件。

    差分固件制作完成后,单击升级,进行差分升级操作。

    说明
    • 设备升级通知:
      • MQTT接入的设备,在线时可以立即接收到升级通知;不在线的设备下次接入时,系统会再次推送升级通知。
      • 其他接入方式(如CoAP或者HTTPS)的设备都是短连接,在线时可以立即收到升级通知;不在线时,无法收到通知。
    • 固件上传至云端后,必须使用少量设备验证固件是否可用。固件可用,才允许在大量设备上进行升级。
    • 可以反复发起验证固件。
    • 只要您进行了固件验证操作,固件状态都会从“未验证”变为“已验证”。与设备的实际升级结果无关。
    • 可以单击对应固件的升级详情查看固件验证结果,即设备是否升级成功。
  5. 固件验证可用后,可单击对应固件的批量升级,设置参数,向大批设备定向推送升级通知。
    说明
    批量升级前,请确保该固件已验证可用。
    参数 描述
    升级方式
    • 整包升级:将升级包整包推送到设备端进行升级。需设置待升级的固件版本号。
    • 差分升级:将升级包与某一待升级固件间的差异提取出来,仅将差异部分推送至设备端进行升级。需设置待升级的固件版本号、差分的固件名称还有切片大小。
    区域 选择设备服务器所在地域。
    设备所属产品 选中待升级设备所属的产品。
    升级策略
    • 静态升级:仅升级满足指定条件的当前设备。
    • 动态升级:满足指定条件的设备都将收到升级通知。动态升级将持续维护需升级的设备范围,包括当前已经上报版本号的设备和新激活的设备。
    升级范围
    • 全部设备:该产品下全部的设备。
    • 定向升级:选择定向升级后,仅升级被选中的设备。
    • 区域升级:升级实际地理位置在该区域的设备。
    说明

    批量升级任务冲突,同一产品下,创建批量升级时,如果选择的待升级版本号,已经处于另一个固件的批量升级过程中,则会提示升级任务冲突。

    示例:同一产品下,某一个设备固件版本号为A,用户在控制台创建了两个固件,版本号分别为B和C。用户在控制台创建了固件B的批量升级,升级策略为从版本A到版本B。此时,如果用户想创建固件C的批量升级,升级策略为从版本A到版本C,则云端会触发升级任务冲突。

  6. 您可以单击该固件的升级详情查看升级状态。
    • 待升级:已选中的待升级设备。
    • 升级中:设备收到升级通知并上传升级进度。
    • 升级成功:本次升级成功的设备。
    • 升级失败:本次升级失败的设备及简要的升级失败原因。以下原因可能造成设备升级失败:
      • 待升级的设备中有些设备还未结束上一次的升级动作。这部分设备升级失败。等设备完成升级动作后,可尝试再次升级。
      • 设备在实际升级过程中出现如下载失败、校验失败、解压失败等错误。此时可以尝试再次升级。