1.概述
空中下载技术(Over-the-Air Technology, OTA)是通过移动通信的空中接口实现对移动终端设备及SIM卡数据进行远程管理的技术。本文采用了swupdate的方式进行ota升级,swupdate是一个基于嵌入式的Linux平台的升级服务框架程序,它提供了分区升级,文件升级,差分升级(补丁应用)功能,并提供了开放接口,方便用户添加自定义升级处理函数。本应用笔记主要讲述如何使用搭建在米尔基于NXP iMX 93核心板(MYC-LMX9X核心板)系统中的OTA功能,实现对MYC-LMX9X文件系统的远程升级。
2.环境准备
2.1.软件资源
- OTA升级文件制作工具:ota-generate_swu.tar.gz(路径:03_Tools/ota-tools)。
- MYC-LMX9X-Core文件系统:myir-image-core-myd-lmx9x.ext4(路径:02_Images/ 或者通过Yocto编译得到,编译相关情况查看软件开发指南内容)。
- Ubuntu操作系统主机环境,虚拟机或者安装的Ubuntu PC主机皆可,没有版本要求。
2.2.硬件资源
- 米尔基于NXP iMX 93开发板(或者MYC-LMX9X核心板+自研底板,自研底板要求至少有一个网口或者存在Wifi芯片)。
- 网线或者Wifi天线。
- 开发板电源、串口线及其他能够确保开发板能够正常运行启动所需求的配件。
2.3.主机环境配置
进行OTA升级,必须要要在Ubuntu主机环境搭建Http服务器,以下将以Ubuntu18.04的Http服务器搭建过程举例,用户名将以myir举例,为了后续OTA升级使用,将Http服务器直接配置为后续可直接使用的配置。该过程仅供参考使用,如果使用其他版本的Ubuntu系统在搭建过程中出现任何以下说明中未出现的错误情况,请咨询互联网寻找解决办法。
- 安装apache2
sudo apt install -y apache2
- 配置环境
默认是80端口,防止其他情况使用导致冲突,修改为自定义端口:8001,修改 /etc/apache2/ports.conf文件监听端口:
$: vi /etc/apache2/ports.conf
Listen 8001 ## 其它行不变
修改/etc/apache2/sites-enabled/000-default.conf文件端口与访问目录,方便后续使用。
$: vi /etc/apache2/sites-enabled/000-default.conf
<VirtualHost *:8001> ## 其他行不变
#DocumentRoot /var/www/html ## 默认浏览器访问目录,注释掉
DocumentRoot /home/myir/swupdate ##修改为此目录,用户名请根据修改做修改
修改apache2的配置文件/etc/apache2/apache2.conf:
$: vi /etc/apache2/apache2.conf
##找到如下行,并修改为如下内容
#<Directory /var/www/html> ##配置文件默认目录,注释掉
<Directory "/home/myir/swupdate">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
- 重启服务
$: sudo /etc/init.d/apache2 restart
- 测试
如果是虚拟机请修改Ubuntu网络配置为桥接网卡让虚拟机和Windows主机为同一IP下,如果是其他环境则可以直接打开浏览器,并在浏览器中输入http://{hostIP}:8001,此处hostIP为配置了http服务器的Ubuntu的ip地址,例如Ubuntu 的ip地址为192.168.1.20,则在浏览器中输入:http://192.168.1.20:8001,成功则如下图所示:
图2-1. http搭建成功
3.升级原理
OTA简单理解就是在线升级固件,将固件从服务器下载之后,相应的写入对应的分区,在这个过程中可能会存在烧录中断电或者其他原因导致分区损坏了问题,所以MYD-LMX9X选择了AB对称分区的方式来保存文件系统。
3.1.AB分区介绍
3.2.Swupdate介绍
本节将介绍在上章节中,在进入文件系统后会进行swupdate的更新,该更新由systemd的服务启动,是自动更新,只需要修改对应的ip地址路径的配置即可。
首先介绍swupdate更新会需要到的swu文件,该文件由脚本制作生产,该制作工具压缩包已存放在03_Tools中,名称为ota-generate_swu.tar.gz,具体制作过程后续4.1章节会介绍,在这里先介绍其中swu文件的配置文件sw-description,该文件如下所示:
4.操作步骤
4.1.远程升级
要实现OTA功能,至少需要两块设备,分别是服务器与客户端。服务器只有一个,就是MYD-LMX9X(本文以下皆用MYD-LMX9X开发板做为示例)。开发板通过串口与PC机连接,或者也可以通过ssh的方式远程访问开发板的串口,这个步骤可以阅读快速入门指南和评估指南了解具体信息。然后将需要OTA需要的swu文件存放于PC主机,然后开发板执行对应命令即可完成OTA升级,接下来详细介绍操作步骤和注意事项。
4.1.1.制作swu文件
首先通过MYD-LMX9X的米尔电子下载中心链接或者百度网盘共享链接获取OTA升级文件制作工具:ota-generate_swu.tar.gz,
4.1.2.更新系统
完成上面的步骤后,开机进入文件系统,修改/etc/swupdate.sh,将网络地址修改为实际情况下的ip以及对应的文件路径:
echo "SWUPDATE_ARGS="-v -d -uhttp://192.168.1.20/swupdate-ota/myd-lmx9x_1.1.swu -e stable,main"" > /etc/myir-swupdate.cfg
修改完成后保存,重启开发板后将会自动更新该swu文件。
具体代码步骤请参见米尔公众号:https://mp.weixin.qq.com/s/6EhBVg52wuMZsU3TtON2Fg
米尔基于NXP i.MX 93系列产品-MYC-LMX9X核心板及开发板。NXP i.MX 9系列在i.MX 6和i.MX 8系列产品市场验证的基础上,继承了前代产品的优点的同时,进一步提升了性能、资源利用和价格的平衡。其中i.MX 93处理器配备双核Cortex-A55@1.7 GHz+Cortex-M33@250MHz,兼顾多任务和实时性需求,集成0.5 TOPS NPU赋能低成本轻量级AI应用。