物联网平台提供固件升级与管理服务。首先确保设备端支持OTA服务,然后在控制台上传新的固件,并将固件升级消息推送给设备,设备即可在线升级。本文介绍如何在物联网平台控制台,新增固件、验证固件和向设备批量推送固件。

前提条件

使用固件升级功能前,请确保设备端支持OTA升级服务。

背景信息

固件升级相关限制说明如下:

  • 一个阿里云账号下最多可有500个固件。
  • 固件文件大小不能超过1,000 MB,且仅支持bin、tar、gz、tar.gz、zip、gzip类型的文件。
  • 升级批次限制说明。

    升级批次:物联网平台将已发起的各个升级任务展示为不同的升级批次。您可以在固件详情页的批次管理页签下,查看该固件的升级批次。

    • 使用一个固件,可同时发起多个批次升级。
    • 一个设备同时只能在一个正在进行的升级批次中(设备处于待升级或正在升级状态)。
    • 使用同一个固件,只能对同一个待升级版本发起一个动态升级批次。
    • 使用不同固件,可对同一个待升级版本发起多个动态升级批次。但是,如果一个设备同时满足多个动态升级策略时,仅执行最新发起的升级策略。
  • 仅支持通过MQTT协议接入物联网平台的设备使用固件升级功能。
  • 设备在线时可以立即接收到升级通知;不在线的设备下次上线时,系统会再次推送升级通知。

操作步骤

  1. 登录物联网平台控制台
  2. 在左侧导航栏,选择监控运维 > 固件升级
    说明 为提供更好的服务,物联网平台改版了原固件升级,新增了产品版本统计功能。首次进入改版后的固件升级页面时,您需要手动将之前上传的固件与产品进行关联。固件与产品一一对应,一个固件只能关联一个产品。详情请参见控制台指引。
  3. (可选)若您的设备搭载了AliOS Things芯片,可以开启安全升级功能。

    安全升级是保证固件完整性、机密性的一种方式,建议打开。使用安全升级功能,设备端需配合对固件和固件的签名进行验证。具体请参见AliOS Things技术文档

    1. 固件升级页,单击安全升级
    2. 在对话框中,将待升级产品对应的安全升级按钮设置为
      当安全升级功能为时,可单击对应的复制按钮,复制公钥,用于设备端签名。
  4. 固件升级页,单击新增固件
  5. 添加固件对话框中,输入固件信息,上传固件文件。

    固件升级
    参数 描述
    固件类型
    • 整包:您上传的固件文件是完整的固件文件,将推送整包固件给设备进行升级。
    • 差分:您上传的固件文件仅包含新版本固件与之前版本的差异部分,仅推送差异部分至设备进行升级。您需自行生成差分升级包。

      差分升级可有效减少升级对设备资源的占用,和减少下发固件的流量消耗。

      如果设备使用AliOS-Things芯片,差分升级包的生成方法,可参见OTA差分工具使用指南

    固件名称 设置固件名称。仅支持中文、英文字母、数字和下划线(_),且不能以下划线(_)开头。长度限制为4~32字符。
    固件版本号 设置该固件的版本号。仅支持英文字母、数字、点号、连字符(-)和下划线(_)。长度限制为1~64字符。

    固件类型选择为整包时,需设置的参数。

    待升级版本号 选择待升级的固件版本号。下拉选项框中,将展示当前产品下所有设备的固件版本号,选择一个或者多个待升级的固件版本。

    固件类型选择为差分时,需设置的参数。

    升级后版本号 设置升级后的固件版本号。

    固件类型选择为差分时,需设置的参数。

    所属产品 选择固件所属产品。
    签名算法 仅支持MD5和SHA256。
    上传固件 上传固件文件。文件大小不能超过1,000 MB,仅支持bin、tar、gz、tar.gz、zip、gzip类型的文件。
  6. 在固件列表中,单击固件对应的验证固件按钮,然后在一个或多个设备上进行固件测试。
    说明 固件上传至物联网平台后,必须使用少量设备对固件进行验证。确认测试设备升级成功后,才能批量升级。
    参数 描述
    待升级版本号 下拉选项框中,展示当前产品下所有设备的固件版本号,选择一个或者多个待升级的固件版本。

    选择待升级版本号后,使用这些固件版本的设备将展示在待验证设备列表中。

    待验证设备 选择用于此次测试的设备。
    设备升级超时时间 设置单个设备的升级超时时间,即多长时间之后,升级未完成则为超时。从设备第一次上报升级进度开始计算时间。可选值范围:1~1440分钟。
  7. 固件验证通过后,单击批量升级按钮,设置参数,批量向设备推送升级通知。

    固件升级
    参数 描述
    待升级版本号 下拉选项框中,展示当前产品下所有设备的当前固件版本号,从中选择待升级的固件版本。

    整包升级时,需设置该参数。

    升级策略
    • 静态升级:仅升级满足指定条件,且已激活的设备。
    • 动态升级:动态升级将持续维护需升级的设备,包括当前已经上报固件版本号的设备和新激活的设备。
      说明 一个固件下只能有一个动态升级批次。如果固件下已有一个动态升级批次,将不能创建新的动态升级,需先取消原有动态升级批次。
    升级范围
    • 全部设备:升级该产品下的全部设备。
    • 定向升级:选择为定向升级后,下方出现设备范围选项框。单击选项框,在右侧弹出的对话框中,选择要升级的设备。仅升级被选中的设备。
      说明 定向升级的待升级版本为多选。默认选中您之前已输入的待升级版本号。
    • 区域升级:升级实际地理位置在指定区域的设备。选择为区域升级后,下方出现指定区域的省份和城市选项框。
    • 灰度升级:即局部升级。升级策略选择为静态升级时出现的可选项。

      选择为灰度升级后,下方出现灰度范围输入框,需针对已选择的设备,设置灰度百分比。物联网平台根据设置的灰度百分进行计算,计算结果向下取整。灰度升级的设备至少为1个。

    升级时间 指定设备固件升级的时间。
    • 立即升级:立即进行固件升级。
    • 定时升级:需设定升级时间。定时时间范围是5分钟~7天。
      说明 仅当升级策略为静态升级时,支持定时升级。
    固件推送速率 设置每分钟向多少个设备推送固件下载URL。取值范围:10~1000。
    升级失败重试间隔 如果升级失败,在什么时候进行重试升级。可选:
    • 不重试
    • 立即重试
    • 10分钟后重试
    • 30分钟后重试
    • 1小时候重试
    • 24小时候重试
    升级重试上限次数 选择升级失败后,最多可重试几次。可选:
    • 1次
    • 2次
    • 5次
    设备升级超时时间 设置单个设备的升级超时时间,即多长时间之后,升级未完成则为超时。从设备第一次上报升级进度开始计算时间。可选值范围:1~1440分钟。

执行结果

批量升级提交后,单击该固件的查看,然后在批次管理页签下,查看升级状态。
  • 待升级:已设置设备固件升级,但固件升级未开始。两种待升级状态:待升级(设备离线)和待升级(排队中)。
  • 升级中:设备收到升级通知,并已上传升级进度。
  • 升级成功:本次升级成功的设备。
  • 升级失败:本次升级失败的设备及升级失败原因简述。

    以下原因可能造成设备升级失败:

    • 若设备未结束上一次升级动作,又推送新的升级,会升级失败。可以等设备完成上一次升级动作后,再次尝试。
    • 设备在实际升级过程中,出现如下载失败、校验失败、解压失败等错误,可以尝试再次升级。