概述
本文介绍D1哪吒开发板上,基于HaaS-UI的FOTA功能。
01
相关文件介绍
FOTA涉及到的文件较多,下文将分模块展开描述。
2.1 fota service
/usr/bin/fota_service FOTA服务启动主程序
2.2 JS 播放器
haas-ui-demo/src/libs/fota.js JS FOTA库
haas-ui-demo/src/pages/cases/components/fota.vue FOTA demo界面
2.3 Yocto描述
meta-d1/recipes-devtools/fota/thead-fota-d1_1.0.0.bb yocto fota service服务描述
03
框架介绍
FOTA服务框架采用通用的C/S架构,服务端提供离线语音功能和在线语音等功能。客户端可以接收服务端发出的事件,也可以向服务端发送控制命令。如下图框架:FOTA服务FOTA Service为一个进程,单独运行;FOTA Client(JS)为一个进程,haas-ui中运行。两者通过D-Bus通信。
D-Bus介绍
D-Bus是一种高级的进程间通信机制,它由freedesktop.org项目提供,使用AFL和GPL双许可证发行。D-Bus 提供system守护进程(用于“添加新硬件设备”或“打印队列更改”等事件)和per-user-login-session守护进程(用于用户应用程序之间的一般 IPC 需求)。此外,消息总线建立在通用的一对一消息传递框架之上,任何两个应用程序都可以使用该框架进行直接通信(无需通过消息总线守护进程)。
目前,通信应用程序在一台计算机上,或者通过未加密的 TCP/IP 进行,适合在具有共享 NFS 主目录的防火墙后面使用。D-Bus最主要的用途是在Linux桌面环境为进程提供通信,同时能将Linux桌面环境和Linux内核事件作为消息传递到进程。D-Bus的主要概率为总线,注册后的进程可通过总线接收或传递消息,进程也可注册后等待内核事件响应,例如等待网络状态的转变或者计算机发出关机指令。目前,D-Bus已被大多数Linux发行版所采用,开发者可使用D-Bus实现各种复杂的进程间通信任务。在D1 开发板JS轻应用平台中,服务使用D-Bus通信机制对外提供事件信号(Signal)和方法(Method Call)。服务使用的是D-Bus的系统总线(System Bus)。
04
HaaS-UI界面操作
4.1 FOTA升级
进入到HaaS-UI的“FOTA”界面:
05
OCC添加镜像
5.1 进入控制台
注册或登录平头哥芯片开发社区(OCC)控制台。
OCC网址:
https://occ.t-head.cn/?spm=a2cl5.25411629.0.0.278e180ffqdsgH
5.2 添加产品
- 在平头哥芯片开发社区上创建产品,在控制台->FOTA服务->添加产品,填写产品信息并提交。
注意:【产品型号】需要设置到设备中,后续操作会说明。
- 提交完成后页面中生成产品列表,在新建产品的右侧点击编辑按钮,可进入产品的详细配置界面。
5.3 初始固件的添加及发布
- 进入产品详细配置界面中选择FOTA选项卡,点击添加固件 进入添加新版本设置。
添加新版本页面中填写名称以及版本号、上传工程目录下生成的generated/images.zip镜像包并提交。
- 点击上一步骤提交的待发布固件名称,并点击发布,等待服务器处理十几秒即完成版本发布。
确认版本状态为已发布后,下载发布后的镜像至本地。
5.4 升级固件的添加及发布再次将设备升级后的版本固件通过添加固件上传
OCC升级设备管理
6.1 生成许可证
OCC平台会对每一个设备颁发一个许可证,用于设备升级,并需把许可证信息配置到设备中。进入产品详细配置界面中选择许可证选项卡:
页面中点击下载开始下载许可证数据。解压后,pieces目录中以设备ID为文件名,保存了每个设备的信息。通过文件名获取设备ID,后续操作会说明。
6.2 添加标签
- 标签是用来区分升级的设备组,一个标签可以包含多个设备,版本升级通过选择不同的标签来确定需要升级的设备。点击【添加标签】,为设备添加标签。
6.3 设置升级策略
- 通过点击升级版本对应操作栏下的升级策略设置版本之间的升级策略。