固件升级
更新时间:2019-09-07 00:30:05
概述
生活物联网平台提供固件升级与管理服务。首先确保设备端支持OTA服务,然后在控制台上传新的固件,并将固件升级消息推送给设备,设备即可在线升级。本文介绍如何设置固件升级。
固件在线升级功能是联网设备所必须支持的基础服务。在设备固件出现安全漏洞、软件BUG维护、自身功能优化、以及设备性能改良等需更新固件时,在线升级功能就尤为重要。
前提条件
使用固件升级功能前,请确保设备端支持OTA升级服务,请参见设备端SDK获取。
背景信息
固件升级相关限制说明如下:
一个阿里云账号下最多可有500个固件。
固件文件大小不能超过1,000 MB,且仅支持bin、tar、gz、tar.gz、zip、gzip类型的文件。
升级批次限制说明。
- 升级批次:平台将已发起的各个升级任务展示为不同的升级批次。
- 使用一个固件,可同时发起多个批次升级。
- 一个设备同时只能在一个正在进行的升级批次中(设备处于待升级或正在升级状态)。
- 使用同一个固件,只能对同一个待升级版本发起一个动态升级批次。
- 使用不同固件,可对同一个待升级版本发起多个动态升级批次。但是,如果一个设备同时满足多个动态升级策略时,仅执行最新发起的升级策略。
- 升级批次:平台将已发起的各个升级任务展示为不同的升级批次。
设备接收固件升级通知说明。
- 通过MQTT协议接入平台的设备,在线时可以立即接收到升级通知;不在线的设备下次上线时,系统会再次推送升级通知。
- 使用其他接入协议(如CoAP或者HTTPS)的设备,在线时可以立即收到升级通知;不在线的设备,则无法收到通知。
操作步骤
- 登录生活物联网平台的控制台。
- 运营中心 **设备运维 > 固件升级**。
- (可选)若您的设备搭载了AliOS Things芯片,可以开启安全升级功能。安全升级是保证固件完整性、机密性的一种方式,建议打开。使用安全升级功能,设备端需配合对固件和固件的签名进行验证。具体请参见AliOS Things技术文档。
- 在固件升级页,单击安全升级。
- 在对话框中,将待升级产品对应的安全升级按钮设置为开。当安全升级功能为开时,可单击对应的复制按钮,复制公钥,用于设备端签名。
- 在固件升级页,单击新增固件。
- 在添加固件对话框中,输入固件信息,上传固件文件。
参数 | 描述 |
---|---|
固件类型 | - 整包:您上传的固件文件是完整的固件文件,将推送整包固件给设备进行升级。 - 差分:您需自行生成差分升级包,然后上传到平台。您上传的固件文件仅包含新版本固件与之前版本的差异部分,仅推送差异部分至设备进行升级。undefined差分升级可有效减少升级对设备资源的占用,和减少下发固件的流量消耗。 如果设备使用AliOS-Things芯片,差分升级包的生成方法,可参见OTA差分工具使用指南 |
固件名称 | 设置固件名称。仅支持中文、英文字母、数字和下划线,且不能以下划线开头。长度限制为4~32字符。 |
固件版本号 | 设置该固件的版本号。仅支持英文字母、数字、点号、连字符和下划线。长度限制为1~64字符。固件类型选择为整包时,需设置的参数。 |
待升级版本号 | 选择待升级的固件版本号。下拉选项框中,将展示当前产品下所有设备的固件版本号,选择一个或者多个待升级的固件版本。固件类型选择为差分时,需设置的参数。 |
升级后版本号 | 设置升级后的固件版本号。固件类型选择为差分时,需设置的参数。 |
所属产品 | 选择固件所属产品。 |
签名算法 | 仅支持MD5和SHA256。 |
上传固件 | 上传固件文件。文件大小不能超过1,000 MB,仅支持bin、tar、gz、tar.gz、zip、gzip类型的文件。 |
- 在固件列表中,单击固件对应的验证固件按钮,然后在一个或多个设备上进行固件测试。
说明:固件上传至平台后,必须使用少量设备对固件进行验证。确认测试设备升级成功后,才能批量升级。
参数 | 描述 |
---|---|
待升级版本号 | 下拉选项框中,展示当前产品下所有设备的固件版本号,选择一个或者多个待升级的固件版本。选择待升级版本号后,使用这些固件版本的设备将展示在待验证设备的选项中。 |
待验证设备 | 选择用于此次测试的设备。 |
设备升级超时时间 | 设置单个设备的升级超时时间,即多长时间之后,升级未完成则为超时。从设备第一次上报升级进度开始计算时间。可选值范围:1~1440分钟。 |
- 固件验证通过后,单击批量升级按钮,设置参数,批量向设备定向推送升级通知。
参数 | 描述 |
---|---|
待升级版本号 | 在下拉选项框中,展示当前产品下所有设备的当前固件版本号,选择待升级的固件版本。整包升级时,需设置该参数。 |
APP确认升级 | - 是:手机APP会提示用户有新版本可用,并询问用户是否确认升级,只有在用户确认升级的情况下才会进行设备升级。(自有APP需配合客户端的固件升级API使用) - 否:设备连云后若发现有新的固件版本就自动进行升级,无需用户干预。 |
升级策略 | - 静态升级:仅升级满足指定条件,且已激活的设备。 - 动态升级:动态升级将持续维护需升级的设备,包括当前已经上报固件版本号的设备和新激活的设备。 说明:一个固件下只能有一个动态升级批次。如果固件下已有一个动态升级批次,将不能创建新的动态升级,需先取消原有动态升级批次。 |
升级范围 | - 全部设备:升级该产品下的全部设备。 - 定向升级:选择为定向升级后,下方出现设备范围选项框。单击选项框,在右侧弹出窗口中,选择要升级的设备。仅升级被选中的设备。 说明:定向升级的待升级版本为多选。默认选中您之前已输入的待升级版本号。 - 区域升级:升级实际地理位置在指定区域的设备。选择为区域升级后,下方出现指定区域的省份和城市选项框。 - 灰度升级:即局部升级。升级策略选择为静态升级时,出现的可选项。选择为灰度升级后,下方出现灰度范围输入框,需针对已选择的设备,设置灰度百分比。平台根据设置的灰度百分进行计算,计算结果向下取整。灰度升级的设备至少为1个。 |
升级时间 | 指定设备固件升级的时间。 - 立即升级:立即进行固件升级。 - 定时升级:需设定升级时间。定时时间范围是5分钟~7天。 说明:仅当升级策略为静态升级时,支持定时升级。 |
固件推送速率 | 设置每分钟向多少个设备推送固件下载URL。取值范围:10~1000。 |
升级失败重试间隔 | 如果升级失败,在什么时候进行重试升级。可选: - 不重试 - 立即重试 - 10分钟后重试 - 30分钟后重试 - 1小时候重试 - 24小时候重试 |
升级重试上限次数 | 选择升级失败后,最多可重试几次。可选: - 1次 - 2次 - 5次 |
设备升级超时时间 | 设置单个设备的升级超时时间,即多长时间之后,升级未完成则为超时。从设备第一次上报升级进度开始计算时间。可选值范围:1~1440分钟。 |
执行结果
批量升级提交后,单击该固件的查看,然后在批次管理页签下,查看升级状态。
待升级:已设置设备固件升级,但固件升级未开始。两种待升级状态:待升级(设备离线)和待升级(排队中)。
升级中:设备收到升级通知,并已上传升级进度。
升级成功:本次升级成功的设备。
升级失败:本次升级失败的设备及升级失败原因简述。以下原因可能造成设备升级失败:
- 若设备未结束上一次升级动作,又推送新的升级,会升级失败。可以等设备完成上一次升级动作后,再次尝试。
- 设备在实际升级过程中,出现如下载失败、校验失败、解压失败等错误,可以尝试再次升级。