创建 OTA 更新(AWS IoT 控制台) - FreeRTOS
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

创建 OTA 更新(AWS IoT 控制台)

  1. 在 AWS IoT 控制台的导航窗格中,选择 Manage (管理),然后选择 Jobs (作业)

  2. 选择 Create

  3. Create a FreeRTOS Over-the-Air (OTA) update job (创建 Amazon FreeRTOS 无线 (OTA) 更新作业) 下,选择 Create OTA update job (创建 OTA 更新作业)

  4. 可以将一个 OTA 更新部署到单个设备或一组设备。在 Select devices to update (选择要更新的设备) 下,选择 Select (选择)。要更新单个设备,可选择 Things (事物) 选项卡。要更新一组设备,可选择 Thing Groups (事物组) 选项卡。

  5. 如果要更新单个设备,选中与设备关联的 IoT 事物旁边的复选框。如果要更新一组设备,选中与设备关联的事物组旁边的复选框。选择 Next (下一步)

  6. Select the protocol for firmware image transfer (选择固件映像传输协议) 下,选择 HTTPMQTT,或选择两者以允许每台设备确定要使用的协议。

  7. Select and sign your firmware image (选择并签署固件映像) 下,选择 Sign a new firmware image for me (为我签署一个新的固件映像)

  8. Code signing profile (代码签名配置文件) 下,选择 Create (创建)

  9. Create a code signing profile (创建代码签名配置文件) 中,为代码签名配置文件输入名称。

    1. Device hardware platform (设备硬件平台) 下,选择硬件平台。

      注意

      该列表中只显示了符合 FreeRTOS 条件的硬件平台。如果您正在测试不符合条件的平台,并且使用 ECDSA P-256 SHA-256 密码套件进行签名,则可以选择 Windows 模拟器代码签名配置文件以生成兼容签名。如果使用不符合条件的平台,并且使用 ECDSA P-256 SHA-256 以外的密码套件进行签名,您可以使用 Code Signing for AWS IoT,也可以自行对固件更新进行签名。有关更多信息,请参阅对固件更新进行数字签名

    2. Code signing certificate (代码签名证书) 下,选择 Select (选择),以选择之前导入的证书,或选择 Import (导入) 以导入新证书。

    3. Pathname of code signing certificate on device (设备上代码签名证书的路径名) 下,输入代码签名证书在设备上的完全限定路径名称。该证书的位置因平台而异。它应该是您按照安装初始固件中的说明放置代码签名证书的位置。

      重要

      在 Texas Instruments CC3220SF-LAUNCHXL 上,如果代码签名证书位于文件系统的根目录下,请勿在文件名前面包含前导正斜杠 (/)。否则,OTA 更新将在身份验证过程中失败,且产生 file not found 错误。

  10. Select your firmware image in S3 or upload it (在 S3 中选择固件映像或上传) 下,选择 Select (选择)。此时将显示 Amazon S3 存储桶的列表。选择包含固件更新的存储桶,然后在存储桶中选择固件更新。

    注意

    Microchip Curiosity PIC32MZEF 演示项目将产生两个二进制映像,其默认名称为 mplab.production.binmplab.production.ota.bin。如果要上传映像用于 OTA 更新,请使用第二个文件。

  11. Pathname of firmware image on device (设备上固件映像的路径名) 下,输入设备上 OTA 作业要将固件映像复制到的位置的完全限定路径名称。此位置因平台而异。

    重要

    在 Texas Instruments CC3220SF-LAUNCHXL 上,由于安全限制原因,固件映像路径名必须为 /sys/mcuflashimg.bin

  12. IAM role for OTA update job (OTA 更新作业的 IAM 角色) 下,根据 创建 OTA 更新服务角色 中的说明选择角色。

  13. 选择 Next (下一步)

  14. 为 OTA 更新作业输入 ID 和描述。

  15. Job type (作业类型) 下,选择 Your job will complete after deploying to the selected devices/groups (snapshot) (您的作业将在部署到所选设备/组后完成 (快照))

  16. 为作业选择任何适当的可选配置(作业执行推出作业中止作业执行超时标签)。

  17. 选择创建

选择以前签署的固件映像

  1. Select and sign your firmware image (选择并签署固件映像) 下,选择 Select a previously signed firmware image (选择以前签署的固件映像)

  2. Pathname of firmware image on device (设备上固件映像的路径名) 下,输入设备上 OTA 作业要将固件映像复制到的位置的完全限定路径名称。此位置因平台而异。

  3. Previous code signing job (原有的代码签名作业) 下,选择 Select (选择),然后选择用来签署用于 OTA 更新的固件映像的上一个代码签名作业。

使用自定义的已签署固件映像

  1. Select and sign your firmware image (选择并签署固件映像) 下,选择 Use my custom signed firmware image (使用我的自定义已签署固件映像)

  2. Pathname of code signing certificate on device (设备上代码签名证书的路径名) 下,输入代码签名证书在设备上的完全限定路径名称。此路径名称可能因平台而异。

  3. Pathname of firmware image on device (设备上固件映像的路径名) 下,输入设备上 OTA 作业要将固件映像复制到的位置的完全限定路径名称。此位置因平台而异。

  4. Signature (签名) 下,粘贴 PEM 格式的签名。

  5. Original hash algorithm (原始哈希算法) 下,选择在创建文件签名时所使用的哈希算法。

  6. Original encryption algorithm (原始加密算法) 下,选择在创建文件签名时所使用的算法。

  7. Select your firmware image in Amazon S3 (在 Amazon S3 中选择固件映像) 下,选择 Amazon S3 存储桶以及 Amazon S3 存储桶中已签署的固件映像。

指定代码签名信息后,为更新指定 OTA 更新作业类型、服务角色和 ID。

注意

请勿在 OTA 更新的作业 ID 中使用任何个人身份信息。个人身份信息示例包括:

  • 名称。

  • IP 地址。

  • 电子邮件地址。

  • 位置。

  • 银行详细信息。

  • 医疗信息。

  1. Job type (作业类型) 下,选择 Your job will complete after deploying to the selected devices/groups (snapshot) (您的作业将在部署到所选设备/组后完成 (快照))

  2. IAM role for OTA update job (OTA 更新作业的 IAM 角色) 下,选择 OTA 服务角色。

  3. 为作业输入字母数字形式的 ID,然后选择 Create (创建)

作业将出现在 AWS IoT 控制台中,且其状态为 IN PROGRESS

注意
  • AWS IoT 控制台不会自动更新作业的状态。刷新浏览器可以查看更新。

  • 如果您看到 "Error: You have exceeded the limit for the number of streams in your AWS account.",请参阅 您的 AWS 账户已超过流限制

将串行 UART 终端连接到设备。您应当看到输出表明设备正在下载更新后的固件。

设备在下载完更新后的固件之后,将重新启动,然后安装固件。在 UART 终端中可以看到所发生的情况。

有关说明如何使用控制台创建 OTA 更新的教程,请参阅无线更新演示应用程序