嵌入式Linux系统-升级包中的脚本

简介: 嵌入式Linux系统-升级包中的脚本

脚本在Linux系统中具有很大的作用,在嵌入式Linux系统里,同样具有很大的作用,前面写过启动预留脚本、U盘自动运行脚本,今天介绍的是升级包中的脚本。


设计一个嵌入式Linux升级包


嵌入式Linux系统的升级包,可以升级内核、文件系统、应用程序、配置文件、资源文件等等,所以在设计升级包时,一定要考虑到可以升级多种文件载体,而不是只针对一种文件的升级。


记得刚毕业工作的时候,产品做升级功能,刚开始做了内核、文件系统、应用程序的升级包,后来由于客户需要,需要远程升级资源文件,然后就在升级类型中又加了一种类型,后来又要做配置升级,就又加了一种配置升级……这样导致平台上的远程升级方式有很多种,不利于使用和维护。


比较好的做法就是把升级的具体执行动作交给“升级包”,也就平台与设备之间,只是下载一个升级包就行了,至于是升级的内核、文件系统还是资源文件,平台和设备都不关注,具体的升级是由升级包自己完成的,那么这就需要升级包里有个“小的升级程序”,这也就是今天要讲的主角----升级包中的脚本。


那么这个升级包的基本结构配置就有了:


  1. 要升级的文件(镜像文件、配置文件、资源文件等等)
  2. 升级脚本


升级脚本


这个升级脚本就是这个升级包的关键,升级脚本的内容是根据升级的具体文件来定的,如果是升级内核,脚本里就写上升级内核的命令;如果升级文件系统,就写升级文件系统的命令,如果是升级资源文件,就写上替换资源文件的命令……这样就大大提高了升级包的灵活性。


脚本里包括以下几项基本内容:


  1. 启动升级命令
  2. 升级进度反馈
  3. 升级结果反馈
  4. 清除升级包临时文件


升级的进度和结果反馈,可以在系统里自己写一个和主程序通信的小程序,脚本可以调用这个小程序去反馈进度和执行结果。


升级执行流程


首先要制作一个升级包,升级文件和升级脚本打包添加校验和版本信息,参见前文介绍过的《制作一个嵌入式Linux的应用程序升级文件》,添加校验和版本信息,这样不用再添加额外的文件去记录这些信息了,便于传输和保存。


通过远程下载到设备或者U盘导入到系统里,然后通过主程序去校验升级文件和版本信息,然后解压升级包,启动升级脚本即可,剩下的升级过程就交给脚本去做了。


目录
相关文章
|
2天前
|
IDE Linux 开发工具
Linux 系统上安装
在Linux和Mac上安装Lua 5.3.0只需下载源码,解压,编译和安装。Windows用户可选择SciTE IDE或通过LuaForWindows在Github或Google Code下载安装。创建 HelloWorld.lua,使用`lua HelloWorld.lua`运行显示"Hello World!"。另可参考LuaDist官方推荐方式安装。
|
1天前
|
监控 JavaScript Linux
Linux系统之部署Homepage个人导航页
【5月更文挑战第13天】Linux系统之部署Homepage个人导航页
18 1
|
2天前
|
监控 JavaScript 网络协议
Linux系统之安装uptime-kuma服务器监控面板
【5月更文挑战第12天】Linux系统之安装uptime-kuma服务器监控面板
13 0
|
2天前
|
Linux Perl
Linux系统的文本处理
Linux系统的文本处理
|
2天前
|
Linux API
Linux系统编程之文件编程常用API回顾和文件编程一般步骤
Linux系统编程之文件编程常用API回顾和文件编程一般步骤
Linux系统编程之文件编程常用API回顾和文件编程一般步骤
|
2天前
|
编解码 Ubuntu Linux
|
2天前
|
Linux
|
2天前
|
Linux
请问如何在Linux系统中删除一个磁盘分区
请问如何在Linux系统中删除一个磁盘分区
|
2天前
|
Linux
Linux系统的磁盘管理
Linux系统的磁盘管理
|
2天前
|
Unix Linux Shell
Linux系统使用超详细(一)
Linux系统是一种开源的、类Unix操作系统内核的实现,它基于Unix的设计原理和思想,并在全球范围内广泛应用。以下是对Linux系统的详细描述: