没有合适的资源?快使用搜索试试~ 我知道了~
D1-H_Tina_Linux_OTA_开发指南1
试读
60页
需积分: 0 1 下载量 138 浏览量
更新于2022-08-04
收藏 1006KB PDF 举报
《D1-H Tina Linux OTA 开发指南》是针对Tina Linux操作系统进行空中更新(Over-The-Air)的技术手册,旨在帮助开发者理解并实现设备的系统更新。本指南详细阐述了OTA更新的不同方案以及相关的工具和命令,适用于对Tina Linux进行系统维护和升级的工程师。
1. **编写目的**:
- 该文档的主要目的是提供一个清晰的步骤和流程,指导开发者如何有效地在Tina Linux系统上执行OTA更新,确保设备能够安全、可靠地接收和安装新的固件版本。
2. **适用范围**:
- 本指南适用于所有使用Tina Linux作为操作系统的设备,特别是那些需要远程更新功能的IoT(物联网)设备或嵌入式系统。
3. **相关人员**:
- 开发者:负责系统软件的开发和维护,需要理解和实施OTA更新。
- 系统管理员:负责设备的日常管理和更新操作。
- 测试工程师:负责验证更新过程的稳定性和功能完整性。
4. **OTA方案**:
- **recovery系统方案**:在设备进入恢复模式下进行系统更新,通常用于修复系统错误或恢复到已知的良好状态。
- **AB系统方案**:Active-Bakcup(AB)系统是一种双系统分区策略,其中A分区为当前运行系统,B分区为备份系统。更新时,新系统会安装到备用分区,验证无误后切换至新分区。
5. **ota-burnboot工具介绍**:
- 这是一个专门用于处理bootloader更新的工具,包括boot0和UBoot。
- **bin文件**:更新过程中涉及的各种二进制文件,如编译后的boot0和UBoot映像。
- **编译boot0 UBoot**:描述了如何构建和定制bootloader的步骤。
- **更新boot0**:详细说明了如何安全地更新bootloader,确保设备的启动过程不受影响。
- **bin文件路径**:提供了不同更新方案下的bin文件存放位置,包括使用不同版本UBoot的安全与非安全方案。
6. **OTA升级命令**:
- 提供了支持OTA升级的一系列命令,如`ota-burnboot0`和`ota-burnuboot`,它们分别用于更新boot0和UBoot。
- **命令说明**:详细解释每个命令的功能和使用方法。
- **使用示例**:通过实例展示如何在终端中执行这些命令。
7. **OTA升级C/C++ APIs**:
- 对于希望在应用程序级别集成OTA功能的开发者,提供了C/C++接口,方便在代码中调用API进行系统更新。
《D1-H Tina Linux OTA 开发指南》是Tina Linux系统升级的核心参考资料,它涵盖了从基本概念到实际操作的所有关键环节,对于任何想要利用OTA功能来管理和维护Tina Linux设备的工程师来说都是必不可少的。通过遵循此指南,开发者可以确保设备能够持续获得最新的软件更新,提高系统的安全性、稳定性和功能性。
D1-H Tina Linux OTA
开发指南
版本号: 1.0
发布日期: 2021.04.02
文档密级:秘密
版本历史
版本号 日期 制/修订人 内容描述
1.0 2021.04.02 AWA1615 初始版本
版权所有 © 珠海全志科技股份有限公司。保留一切权利 i
文档密级:秘密
目 录
1 概述 1
1.1 编写目的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 适用范围 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 相关人员 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.4 OTA 方案 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.4.1 recovery 系统方案 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.4.2 AB 系统方案 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 ota-burnboot 介绍 3
2.1 文档说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 概念说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3 用于更新的 bin 文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3.1 编译 boot0 uboot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3.2 关于更新 boot0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3.3 Bin 文件路径 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3.3.1 使用 uboot2018 的非安全方案 . . . . . . . . . . . . . . . . . . . 4
2.4 OTA 升级命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4.1 支持 OTA 升级命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4.2 ota-burnboot0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4.2.1 命令说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4.2.2 使用示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4.3 ota-burnuboot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4.3.1 命令说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4.3.2 使用示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.5 OTA 升级 C/C++ APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.5.1 int OTA_burnboot0(const char *img_path) . . . . . . . . . . . . . . . 6
2.5.2 int OTA_burnuboot(const char *img_path) . . . . . . . . . . . . . . . 6
2.6 底层实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.6.1 如何保证安全更新 boot0/uboot . . . . . . . . . . . . . . . . . . . . . . . 6
2.6.2 Nand Flash UBI 方案实现 . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3 Tina SWUpdate OTA 介绍 8
3.1 swupdate 介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1.2 移植到 tina 的改动 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2 配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.1 recovery 系统介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.2 系统配置命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.3 主系统和 recovery 都需要的 swupdate 包 . . . . . . . . . . . . . . . . . 9
3.2.4 主系统和 recovery 都需要的 wimanager daemon . . . . . . . . . . . . 10
3.2.5 配置主系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.6 编译主系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
版权所有 © 珠海全志科技股份有限公司。保留一切权利 ii
文档密级:秘密
3.2.7 配置 recovery 系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.8 编译 recovery 系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2.9 配置 env . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2.9.1 boot_partition 变量 . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2.9.2 root_partition 变量 . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2.10 配置启动脚本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3 OTA 包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3.1 OTA 策略描述文件:sw-description . . . . . . . . . . . . . . . . . . . . 12
3.3.2 OTA 包配置文件:sw-subimgs.cfg . . . . . . . . . . . . . . . . . . . . . 13
3.3.3 OTA 包生成:swupdate_pack_swu . . . . . . . . . . . . . . . . . . . . 14
3.4 recovery 系统方案举例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.4.1 配置分区和 env . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.4.2 配置主系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.4.3
配置
recovery
系统
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.4.4 准备 sw-description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.4.5 准备 sw-subimgs.cfg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4.6 编译 OTA 包所需的子镜像 . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.4.7 执行 OTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4.7.1 准备 OTA 包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4.7.2 调用 swupdate . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.5 AB 系统方案举例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.5.1 配置分区和 env . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.5.2 配置主系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.5.3 配置 recovery 系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.5.4 准备 sw-description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.5.5 准备 sw-subimgs.cfg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.5.6 编译 OTA 包所需的子镜像 . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.5.7 执行 OTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.5.7.1 准备 OTA 包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.5.7.2 判断 AB 系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.5.7.3 调用 swupdate . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.6 辅助脚本 swupdate_cmd.sh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.7 版本号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.7.1 使用方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.7.2 实现例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.8 签名校验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.8.1 检验原理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.8.2 配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.8.3 使用方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.8.4 初始化 key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.8.5 修改 sw-description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.8.6 添加 sw-description.sig . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.8.7 生成 OTA 包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
版权所有 © 珠海全志科技股份有限公司。保留一切权利 iii
文档密级:秘密
3.8.8 将公钥放置到小机端 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.8.9 在小机端调用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.9 压缩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.9.1 配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.9.2 生成压缩镜像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.9.3 sw-subimgs.cfg 配置压缩镜像 . . . . . . . . . . . . . . . . . . . . . . . . 33
3.9.4 sw-description 配置压缩镜像 . . . . . . . . . . . . . . . . . . . . . . . . 34
3.10 调用 OTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.10.1 进度条 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.10.2 重启 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.10.3 本地升级示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.10.4 网络升级示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.10.5 错误处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.11
裁剪
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.12 调试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.12.1 直接调用 swupdate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.12.2 手工切换系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.12.3 更新 boot0/uboot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.12.4 解压 OTA 包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.12.5 校验 OTA 包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.13 测试固件示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.13.1 生成方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.13.1.1 准备工作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.13.1.2 生成固件 1 和 OTA 包 1 . . . . . . . . . . . . . . . . . . . . . . 39
3.13.1.3 生成固件 2 和 OTA 包 2 . . . . . . . . . . . . . . . . . . . . . . 39
3.13.2 使用方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.13.2.1 本地升级方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.13.2.2 网络升级方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.13.2.3 升级过程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.13.2.4 判断升级 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.14 升级定制分区 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.14.1 备份 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.14.2 无需备份 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.14.3 需要备份 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.15 handler 说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.15.1 awboot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.15.1.1 nand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.15.2 readback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.15.2.1 示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.15.3 ubi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.15.3.1 示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.15.4 rdi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.15.4.1 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
版权所有 © 珠海全志科技股份有限公司。保留一切权利 iv
剩余59页未读,继续阅读
资源推荐
资源评论
129 浏览量
2022-08-03 上传
170 浏览量
113 浏览量
5星 · 资源好评率100%
2021-10-27 上传
5星 · 资源好评率100%
179 浏览量
5星 · 资源好评率100%
140 浏览量
2022-08-04 上传
2022-08-04 上传
131 浏览量
188 浏览量
5星 · 资源好评率100%
5星 · 资源好评率100%
168 浏览量
5星 · 资源好评率100%
154 浏览量
5星 · 资源好评率100%
194 浏览量
110 浏览量
108 浏览量
2022-08-04 上传
192 浏览量
201 浏览量
149 浏览量
102 浏览量
190 浏览量
2021-11-11 上传
资源评论
坐在地心看宇宙
- 粉丝: 32
- 资源: 330
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功