【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞?
因为市情上大年夜多半嵌入式设备的分散、数量宏大年夜、安排地点情况复杂,是以对于这些设备进行个别、本地进级的实施异常费时辛苦。针对这种近况,本文供给一种对基于 Linux 体系的嵌入式设备进行在线、长途、批量进级的策略,经由过程 web 页面对设备状况、进级过程可视化展示,大年夜大年夜供给进级效力。
嵌入式 Linux 体系在线进级策略
对于运行 Linux 体系的嵌入式产品,很多时刻我们发清楚明了当前版本内核、驱动、或者应用法度榜样的 bug 并对之修复之后,或者研发出了功能更丰富、机能更凸起的应用软件时,想要对当前运行的设备进行响应法度榜样调换和进级。很多人的做法是经由过程对每一台设备烧写新版软件的方法进行软件版本更新,如不雅产品数量少且分布地点比较集中,这种筹划具有必定的实效性。然则当设备数量宏大年夜且地点分散时,这种本地烧写的进级方法将会变得异常难以操作,且进级结不雅可视化具有必定难度,须要经由过程串口等终端才能确认。
针对采取 Linux 体系且具有互联网接入才能的嵌入式设备,不论这种接入方法是有线收集、wifi、2G 或者 4G,本文将为其供给一种经由过程办事端后台对在线的所有或者部分设备进行长途批量进级的高效、靠得住、直不雅的进级策略。进级内容可所以内核、驱动、文件体系、应用法度榜样或者某些设备文件。接下来,将起首展示该筹划的架构图,紧接着一步步讲述各个功能或者逻辑模块的细节。
办事端法度榜样用来监测终端设备状况,治理进级包,进级流程控制并且供给 web 峨锾螃以及数据库拜访。本策略中的办事端为 apache-tomcat,法度榜样采取 java servlet,数据库为 MySQL,web 页面为 JSP 编写。您可以应用任何一种后台说话(如 php、python 等)实现本文所描述的办事端功能。
筹划概述
此进级筹划由后台办事端法度榜样、web 页面、终端进级法度榜样三部分构成。如图 1 展示了进级筹划 的架构图。
图 1. 进级筹划架构图
办事端法度榜样
办事端功能有:
- 终端消息处理
- 进级担保理
- 进级指令处理
- 终端消息处理
办事端法度榜样经由过程 getParameter("version")获得终端软件版本号,经由过程 queryLatestVersion()萌芽数据库中最新软件版本号,然后将二者进行比较。如不雅雷同,则证实该终端设备软件版本已经是最新,返回 latest 指令;如不雅不合且办事端没有收到 web 端用户的进级指令,则经由过程 queryAddress()大年夜数据库中萌芽最新进级包的地址,将之返回给终端,以便终端设备大年夜该地址下载进级包,别的,如不雅此时用户在 web 界面履行了进级敕令,则返回 update 指令给终端,终端设备履行进级操作。具体请查看清单 1。
清单 1. 终端消息处理代码片段
- public void doGet(HttpServletRequest request, HttpServletResponse response)\
- throws ServletException, IOException {
- String msg = null;
- String version_latest = null;
- String address_latest = null;
- String version = request.getParameter("version");
- PrintWriter out = response.getWriter();
- version_latest = queryLatestVersion();
- if(version.equals(version_latest)){
- msg = "|latest|null|null|";
- }else if(UpdateServlet.update_status){
- msg = "|update|"+version_latest+"|null|";
- UpdateServlet.update_status = false;
推荐阅读
【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞? 比来,传来了一个让安卓用户兴趣勃勃的消息——安卓同一推送联盟的官网已经上线了!这意味着,国内>>>详细阅读
本文标题:嵌入式Linux系统在线升级策略
地址:http://www.17bianji.com/lsqh/40034.html
1/2 1