5

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

 3 years ago
source link: https://www.oschina.net/question/4444582_2323832
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

追梦人2020 发布于 今天 14:53

1 SWUpdata 概述

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

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

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

使用 buildroot 集成 SWUpdate

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

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

Target packages --->

System tools --->

[*] swupdate

勾选上 swupdate,如下图:

作者将制作好的文件系统放在了 “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" &

保存退出使用命令 “reboot”

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

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

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

5使用 SWUpdate 远程升级

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

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

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

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

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

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

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

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

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

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

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

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

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

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK