迅为i.mx6q开发板OTA 远程升级

 迅为i.mx6q开发板OTA 远程升级

1 SWUpdata 概述

SWUpdata 是一个开源项目,该项目可以从存储介质或网络为嵌入式设备更新嵌入式系统。但是,它应该主要被视为一个框架,可以轻松地将更多协议或安装程序(在 SWUpdate 中称为处理程序)添加到应用程序中。

一种用例是从外部本地媒体更新,如 USB SD 卡。在这种情况下,更新是在没有操作员干预的情况下完成的:它被认为是“一键更新”,软件在重置时只需按下一个键(或以任何目标可以识别的方式) ,自动进行所有检查。最后,更新过程只向操作员报告状态(成功或失败)。

如果为远程更新启动,SWUpdate 启动嵌入式 Web 服务器并等待请求。操作员必须上传合适的镜像, SWUpdate 检查然后安装。所有输出都通过 AJAX 通知通知给操作员的浏览器。

2 使用 buildroot 集成 SWUpdate

可以参考第二十章“使用 Buildroot 制作根文件系统,我们使用 buildroot 配置好最基本的文件系统后, 就可以添加第三方库了。 切换到 root 用户在 buildroot-2021.05 目录下使用命令 “make menuconfig” 进入到图形配置界面如下图:

 

 迅为i.mx6q开发板OTA 远程升级

 

然后我们依次进入如下目录:

Target packages --->

System tools --->

[*] swupdate

勾选上 swupdate,如下图:

 

 

 迅为i.mx6q开发板OTA 远程升级

 

作者将制作好的文件系统放在了 “iTOP-i.MX6 开发板资料汇总(不含光盘资料)\12_iTOP-i.MX6 开发板 buildroot 系统 OTA 升级”下。

3 SWUpdate 工具的使用

4设置 SWUpdate 服务开机启动

烧写好镜像后给开发板上电启动,

输入用户名:root ,密码:topeet,登录到系统,使用命令 “vi /etc/init.d/rcS”打开 rcS 文件添加以下内 容,如下图:

swupdate -w "--document-root /var/www/swupdate –port 8080" &

迅为i.mx6q开发板OTA 远程升级 

 

保存退出使用命令 “reboot”

重启开发板,可以看到 Swupdate 服务已经开启如下图:

 

 

 迅为i.mx6q开发板OTA 远程升级

 

 

接下来我们就可以在电脑的浏览器的地址栏中输入 “192.168.1.7:8080” (根据自己的开发板的地址填写) ,进入网址如下图:

 

 迅为i.mx6q开发板OTA 远程升级

 

 

至此,具有远程升级功能的文件系统就制作好了。

5使用 SWUpdate 远程升级

接着上篇,使用到的升级包制作工具 OTA.tar.bz2 iTOP-i.MX6 开发板资料汇总(不含光盘资料) \12_iTOP-i.MX6 开发板 buildroot 系统 OTA 升级”目录下。

OTA.tar.bz2 拷贝到 ubuntu 任意,目录下解压后如下图:

 迅为i.mx6q开发板OTA 远程升级

 

 

进入解压后的 OTA 目录下,使用命令“tree”查看,如下图

 迅为i.mx6q开发板OTA 远程升级

 

config 目录下放的是关于 EMMC 配置文件。其中 sw-description

的内容可以参考官方手册,其地址为

https://sbabic.github.io/swupdate/swupdate.html

creat 是用于生成固件升级包的脚本。

image 目录用于放我们用于升级的 zImage, 设备树文件.dtb, 以及文件系统 rootfs.tgz。(根据自己核心板类型选择镜像)。

使用之前需要将上图 image 中的文件替换成用于升级的对应文件即可,(用于升级的文件系统,要是还想支持下次升级也需要有 swpdate 工具)。 然后在 OTA 目录下使用命令 “./creat”可以生成用于 EMMC 版升级的固件包,如下图。

 

 迅为i.mx6q开发板OTA 远程升级

 

 

等待完成后使用命令 “ls”查看,如下图所示,生成了.swu 结尾的固件包。

 迅为i.mx6q开发板OTA 远程升级

 

然后我们使用 ubuntu 下自带的浏览器打开,上节中的升级界面,如下图

 

 迅为i.mx6q开发板OTA 远程升级

 

 

然后点击下图部分,弹出固件选择界面

 迅为i.mx6q开发板OTA 远程升级

 迅为i.mx6q开发板OTA 远程升级

 

选择好用于升级的.swu 固件后,点击打开即可对开发板进行升级,如下图:

 

 迅为i.mx6q开发板OTA 远程升级

 

迅为i.mx6q开发板OTA 远程升级

 

 

 

 

 

升级成功后直接重启开发板,即可,如下图升级的是一个 openwrt 系统:

 迅为i.mx6q开发板OTA 远程升级

 

迅为i.mx6q开发板OTA 远程升级

上一篇:ABAP sql 不同长度字段关联


下一篇:Unity将核心脚本打成DLL是否有性能影响