Linux软件上电启动自动升级程序框架

1、设置设备Mac地址;

2、后台调用udhcpc工具为设备分配IP:让多设备能够有独立的IP,保证多设备并行升级,为批量生产提供保证;

3、在内存/temp目录下创建临时存储升级包的目录:保证存放升级包文件的目录干净,方便升级完后,干掉flash中历史软件,保证直接将新升级包整个目录的文件拷贝大flash提供足够的存储控件,

4、在软件调用私有方法,读取给设备升级用的NFS配置:NFS服务器的IP地址 + 目录,配置文件有固定格式,保证升级的NFS文件的准确性;

5、判断读取的NFS信息是否正确;

6、调用私有方法去除私有目录中的【回车符】;

7、延时。等待udhcpc获取IP成功:因为获取路由器或其他设备分配的IP需要一定的时间;

8、通过私有方法 完成NFS目录的挂载:通常直接使用system()函数;

9、读取NFS服务器目录下的升级配置文件:保证找到NFS服务器配置文件指定目录下的升级包位置及其升级包的名称;

10、使用stat系统调用,判断指定目录下的文件/或文件夹是否存在:保证避免升级包不在,却把原始flash中的软件删除了,导致设备不能正常使用;

11、将指定目录下的升级文件 拷贝到设备内存的/temp目录下创建临时存储升级包的目录下;

12、11步成功后,删除flash中原始的升级文件;

13、将设备内存的/temp目录下创建临时存储升级包的目录下的升级文件拷贝到flash中;

14、直接调用升级包软件中自动运行软件的脚本,让设备升级完后自动进入工作状态。

时间: 2024-10-24 21:20:29

Linux软件上电启动自动升级程序框架的相关文章

c# 软件自动升级 程序自我关闭自己后重启

//指定一个文件名,写入脚本 string filename = Path.Combine(path,"killmyself.bat"); using (StreamWriter bat = new StreamWriter(filename, false, Encoding.GetEncoding("GB2312"))) { //删除指定程序,复制指定程序到指定路径 bat.WriteLine(string.Format(@" @echo off del

基于TCP网络通信的自动升级程序源码分析-启动升级文件下载程序

升级程序启动后,首先会连接服务器 private void Connect() { try { int port = int.Parse(System.Configuration.ConfigurationManager.AppSettings["Port"]); connnectionInfo = new ConnectionInfo(IPAddress, port); connection = TCPConnection.GetConnection(connnectionInfo)

基于TCP网络通信的自动升级程序源码分析-客户端请求服务器上的升级信息

每次升级,客户端都会获取服务器端存放在upgradefile文件夹下的需要升级的文件和升级信息配置文件(即upgradeconfig.xml文件) 我们来看一下代码 //升级信息配置文件相对应的类 ( 升级信息配置文件是由这个类转化成的) private UpgradeConfig upgradeConfig = null; //客户端存储升级配置文件的地址 是放在客户端根目录下的 (就是把服务器 upgradefile/upgradeconfig.xml下载到客户端存放的位置) string

【开源下载】基于TCP网络通信的自动升级程序c#源码

本程序使用开源的来自英国的networkcomms2.3.1网络通讯框架(c#语言编写) [http://www.networkcomms.net] 使用networkcomms框架作为工作中的主要编程框架1年多的时间了,networkcomms的有优美.稳定深深打动了我,基于此框架开发了不少程序,特别的稳定. networkcomms框架由英国剑桥的2位工程师开发,支持.net2.0以上平台,原生态的支持xamarion.android(安卓),xamarin.ios,以及蓝牙等多平台开发.

SNF开发平台WinForm之八-自动升级程序部署使用说明-SNF快速开发平台3.3-Spring.Net.Framework

9.1运行效果: 9.2开发实现: 1.首先配置服务器端,把“SNFAutoUpdate2.0\服务器端部署“目录按网站程序进行发布到IIS服务器上. 2.粘贴语句,生成程序 需要调用的应用程序的Load事件或者Program入口的Main方法第一行代码加上如下代码: 注意:是主程序的 Load事件要加上调整自动更新程序的代码.要以模式打开窗口.如果没有差异会自动关闭升级窗口显示主窗口. 3.把下面目录里的文件拷贝到 应用程序的同级目录下: 4.配置WINFORMS应用程序目录下Updateli

基于TCP网络通信的自动升级程序源码分析-客户端接收文件

升级程序客户端接收文件 /// <summary> /// 文件数据缓存 索引是 ConnectionInfo对象 数据包的顺序号 值是数据 /// </summary> Dictionary<ConnectionInfo, Dictionary<long, byte[]>> incomingDataCache = new Dictionary<ConnectionInfo, Dictionary<long, byte[]>>();

分享一个客户端程序(winform)自动升级程序,思路+说明+源码

做winform的程序,不管用没用过自动更新,至少都想过自动更新是怎么实现的. 我这里共享一个自动更新的一套版本,给还没下手开始写的人一些帮助,也希望有大神来到,给指点优化意见. 本初我是通过socket来传输文件的,后来因为传大文件出现异常,前期又没有定义比较好的协议,后来就改用webservices了. 自动更新分三个部分,服务端(webservice服务,配置与更新),配置客户端(或叫发布客户端),客户端(主程序) 服务端:         ConfigServer.asmx 因为代码共享

基于TCP网络通信的自动升级程序源码分析--生成升级文件相关的配置文件

先从服务器端生成的配置文件说起吧 配置文件名称upgradeconfig.xml 文件内容大致如下 <?xml version="1.0" encoding="utf-8"?> <UpgradeConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

linux(centos)如何启动自动进入文本模式

vi /etc/inittab里面的 id:5:initdefault: 将5改为3后,reboot! 图形模式与文字模式的切换方式: Linux预设提供了六个命令窗口终端机让我们来登录.默认我们登录的就是第一个窗口,也就是tty1,这个六个窗口分别为tty1,tty2 - tty6,你可以按下Ctrl + Alt + F1 ~ F6 来切换它们.如果你安装了图形界面,默认情况下是进入图形界面的,此时你就可以按Ctrl + Alt + F2 ~ F6来进入其中一个命令窗口界面.当你进入命令窗口界