CN109710297A - 一种设备整体或分模块进行升级和回退方法 - Google Patents
一种设备整体或分模块进行升级和回退方法 Download PDFInfo
- Publication number
- CN109710297A CN109710297A CN201910012523.0A CN201910012523A CN109710297A CN 109710297 A CN109710297 A CN 109710297A CN 201910012523 A CN201910012523 A CN 201910012523A CN 109710297 A CN109710297 A CN 109710297A
- Authority
- CN
- China
- Prior art keywords
- subregion
- app
- nandflash
- program
- upgrading
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种设备整体或分模块进行升级和回退方法,不改变nandflash文件系统,实现升级;包括对nandflash文件系统中的“/etc/inittab”文件中的有脚本文件“./run.sh”的脚本中执行动作,对整体升级nandflash的app分区,以及升级nandflash的app各个功能模块,充分利用nandflash的空间,通过nandflash的存储空间,实现程序整体升级和模块升级。程序可以进行任意的版本升级以及在新版本升级之后,不理想状态下的老版本回退。能够实现程序的远程升级与更新,不用人员现场进行升级,节省了大量的人力物力。版本升级过程中,不影响正常使用。
Description
技术领域
本发明属于存储设备升级模式改进技术领域,具体涉及一种设备整体或分模块进行升级和回退方法。
背景技术
Nand-flash存储器是flash存储器的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。Nand-flash存储器具有容量较大,改写速度快等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用,如嵌入式产品中包括数码相机、MP3随身听记忆卡、体积小巧的U盘等。现有的升级模式是更新norflash分区的程序,且norfalsh的各分区划分和总大小已固定,存在以下三个问题。
(1)伴随着应用程序的不断变大,原有分区的大小已不能适应,且norflash没有额外的空间可使用。
(2)应用程序不能按功能模块升级,导致每次升级都需要把应用程序包整体升级,同时也浪费了数据流量和人力资源。
(3)升级不成功会导致设备无法正常运行。
由于已使用设备量较大,且从经济利益上考虑也不可能更换norflash了;同时,所有的设备上都存在nandflash。现有norflash分区,如图1所示,Norflash的各个分区含义:Uboot:引导系统;Kernel:linux操作系统;Fs:文件系统;App:应用程序;Update:升级程序;Config:配置文件;UI:用户界面资源。
发明内容
针对现有存储设备升级模式不能更换norflash的情况和所有的设备上都存在nandflash的现状,本发明提供一种对设备进行升级和回退方法,充分利用nandflash的空间,通过nandflash的存储空间,实现程序整体升级和模块升级。
本发明解决其技术问题所采用的方案是采用一种设备整体或分模块进行升级和回退方法,该方法包括以下步骤。
步骤一,不改变nandflash文件系统,实现升级;对 nandflash文件系统中的“/etc/inittab”文件中的有脚本文件“./run.sh”的脚本中执行动作如下。
(1)识别nandflash设备文件、挂载nandflash设备。
(2)识别/mnt/app1和/mnt/app2中那个挂载目录的app是有效的。
(3)启动有效的app。
步骤二,整体升级nandflash的app分区,包括如下步骤。
(1)通过远程服务器下载app程序到nandflash,并解压缩和写入。
(2)如果当前有效的分区为app1或app2分区,则远程服务器下载app程序,并写入nandflash的app2或app1分区中,并设置app1或app2分区无效,app2或app1分区有效。
(3)如果当前两个分区 app1和app2分区都是无效的,则更新app1分区,在成功后设置app1分区有效,app2分区无效。
(4)系统在下次重启或上电开机后,自动运行app2分区中的程序;同时,这样升级不会导致设备正在运行期间自动重启。
(5)如果app程序在写入app1或app2的某个分区过程中,出现下电或重启的事件,由于并没有写入完成,所以设备重启后或上电开机后,还会运行app2或app1有效分区中的程序。
(6)如果发现新更新的app分区,存在问题,只需要设置另一个app分区为有效分区,当前分区为无效分区,回滚到上一个版本。
步骤三,升级 nandflash的app各个功能模块,包括以下步骤。
(1)管理各个功能模块的版本。
(a) 设置每一个功能模块的版本,每一个功能模块可以独立升级或回退到某一个版本。
(b)在当前分区中,升级各个功能模块,在所述的“./run.sh”中,增加对每一个功能模块的版本的对比,且在下次设备启动后,执行相应版本的功能模块;
(c)功能模块升级时,同时会升级系统运行的功能模块的版本清单,保证再次启动后运行相对应的程序版本。
(d)对于同一功能模块的程序,会同时有最新版本和上一版本,如果最新版本有问题时,仅需更新运行程序的版本清单,回滚到上一个稳定版本。
(2)节省数据流量:当仅需要更新其中一个功能程序时,仅使用少量的流量就可以完成更新。
本发明在实现程序整体升级和模块升级的过程具有如下有益效果。
1)程序可以进行任意的版本升级以及在新版本升级之后,不理想状态下的老版本回退。
2)能够实现程序的远程升级与更新,不用人员现场进行升级,节省了大量的人力物力。
3)版本升级过程中,不影响客户的使用,极大地减少因为版本升级带来的客户使用不便问题。
附图说明
图1是现有norflash分区结构框图。
图2是利用现有设备中的nandflash对整个应用程序进行更新升级整体框图。
图3是Nandflash的app各个功能模块和程序版本清单图。
具体实施方式
下面结合附图和实施例对本发明进一步说明。
1.不改变文件系统,实现升级。
由于文件系统是ramdisk或cramfs是只读文件系统,所以须在不改变现有文件系统的方式下,实现升级操作;而在文件系统的“/etc/inittab”文件中,有脚本文件“./run.sh”这个脚本文件,而此文件是存在于norflash的jffs2文件系统中,所以通过修改此脚本文件,实现nand分区的挂载和启动应用程序。
脚本中执行动作如下。
(1)识别nandflash设备文件、挂载nandflash设备。
(2)识别/mnt/app1和/mnt/app2中那个挂载目录的app是有效的。
(3)启动有效的app。
2.整体升级norflash的app分区。
整体升级norflash的app分区,也就是图2中的“阶段版本”,所谓“阶段版本”:即当nandflash的程序都损坏的情况下,系统还可以通过norflash的app分区运行程序。
“阶段版本”是当前系统已支持的app升级方式。
(1)app要整体写入norflash的app分区,且app分区是只读文件系统,不支持单个功能模块升级。
(2)app写入norflash过程中,如果设备出现下电或设备重启,则会导致设备无法正常启动或开机;而这种方式必须保证升级过程中不能出现下电或设备重启。
整体升级nandflash的app分区的主要过程描述如下。
(1)通过远程服务器下载app程序到nandflash,并解压缩和写入。
(2)如果当前有效的分区为app1(或app2)分区,则远程服务器下载app程序,并写入nandflash的app2(或app1)分区中,并设置app1(或app2)分区无效,app2(或app1)分区有效。
(3)如果当前两个分区 app1和app2分区都是无效的,则更新app1分区,在成功后设置app1分区有效,app2分区无效。
(4)系统在下次重启或上电开机后,自动运行app2分区中的程序;同时,这样升级不会导致设备正在运行期间自动重启。
(5)如果app程序在写入app1或app2的某个分区过程中,出现下电或重启的事件,由于并没有写入完成,所以设备重启后或上电开机后,还会运行app2或app1有效分区中的程序。
(6)如果发现新更新的app分区,存在问题,只需要设置另一个app分区为有效分区,当前分区为无效分区,就可以回滚到上一个版本了。
3.升级 nandflash的app各个功能模块。
Nandflash的app各个功能模块和程序版本清单,如图3所示。
(1)管理各个功能模块的版本。
(a) 设置每一个功能模块的版本,每一个功能模块可以独立升级或回退到某一个版本。
(b)在当前分区中,升级各个功能模块。
在前述的“./run.sh”中,增加对每一个功能模块的版本的对比,且在下次设备启动后,执行相应版本的功能模块。
(c)功能模块升级时,同时会升级系统运行的功能模块的版本清单,保证再次启动后运行相对应的程序版本。
(d)对于同一功能模块的程序,会同时两个版本(最新版本和上一版本)。
目的:最新版本有问题时,仅需更新运行程序的版本清单,就可以回滚到上一个稳定版本了。
(2)节省数据流量。
当仅需要更新其中一个功能程序时,仅使用少量的流量就可以完成更新。
Claims (3)
1.一种设备整体或分模块进行升级和回退方法,其特征在于,包括以下步骤:
步骤一,不改变nandflash文件系统,实现升级;对 nandflash文件系统中的“/etc/inittab”文件中的有脚本文件“./run.sh”的脚本中执行动作如下:
(1)识别nandflash设备文件、挂载nandflash设备;
(2)识别/mnt/app1和/mnt/app2中那个挂载目录的app是有效的;
(3)启动有效的app;
步骤二,整体升级nandflash的app分区,包括如下步骤:
(1)通过远程服务器下载app程序到nandflash,并解压缩和写入;
(2)如果当前有效的分区为app1或app2分区,则远程服务器下载app程序,并写入nandflash的app2或app1分区中,并设置app1或app2分区无效,app2或app1分区有效;
(3)如果当前两个分区 app1和app2分区都是无效的,则更新app1分区,在成功后设置app1分区有效,app2分区无效;
(4)系统在下次重启或上电开机后,自动运行app2分区中的程序;同时,这样升级不会导致设备正在运行期间自动重启;
(5)如果app程序在写入app1或app2的某个分区过程中,出现下电或重启的事件,由于并没有写入完成,所以设备重启后或上电开机后,还会运行app2或app1有效分区中的程序;
(6)如果发现新更新的app分区,存在问题,只需要设置另一个app分区为有效分区,当前分区为无效分区,回滚到上一个版本。
2.根据权利要求1所述的设备整体或分模块进行升级和回退方法,其特征在于,还包括升级 nandflash的app各个功能模块,包括以下步骤:
(a) 设置每一个功能模块的版本,每一个功能模块可以独立升级或回退到某一个版本;
(b)在当前分区中,升级各个功能模块,在所述的“./run.sh”中,增加对每一个功能模块的版本的对比,且在下次设备启动后,执行相应版本的功能模块;
(c)功能模块升级时,同时会升级系统运行的功能模块的版本清单,保证再次启动后运行相对应的程序版本;
(d)对于同一功能模块的程序,会同时有最新版本和上一版本,如果最新版本有问题时,仅需更新运行程序的版本清单,回滚到上一个稳定版本。
3.根据权利要求1所述的设备整体或分模块进行升级和回退方法,其特征在于,
还包括“阶段版本”用于nandflash出现异常而无法启动程序时,让系统仍然可以正常工作,当nandflash的程序都损坏的情况下,系统还可以通过norflash的app分区运行程序;“阶段版本”是当前系统已支持的app升级方式,包括以下内容:
(1)app要整体写入norflash的app分区,且app分区是只读文件系统,不支持单个功能模块升级;
(2)app写入norflash过程中,如果设备出现下电或设备重启,则会导致设备无法正常启动或开机;而这种方式必须保证升级过程中不能出现下电或设备重启。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910012523.0A CN109710297B (zh) | 2019-01-07 | 2019-01-07 | 一种设备整体或分模块进行升级和回退方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910012523.0A CN109710297B (zh) | 2019-01-07 | 2019-01-07 | 一种设备整体或分模块进行升级和回退方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109710297A true CN109710297A (zh) | 2019-05-03 |
CN109710297B CN109710297B (zh) | 2022-06-21 |
Family
ID=66260916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910012523.0A Active CN109710297B (zh) | 2019-01-07 | 2019-01-07 | 一种设备整体或分模块进行升级和回退方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109710297B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112333471A (zh) * | 2020-11-05 | 2021-02-05 | 上海网达软件股份有限公司 | 音视频在线转码器的热升级方法、装置、设备及存储介质 |
CN112764803A (zh) * | 2021-01-20 | 2021-05-07 | 青岛海尔科技有限公司 | 版本升级方法及装置、存储介质及电子装置 |
CN113227968A (zh) * | 2021-03-31 | 2021-08-06 | 华为技术有限公司 | 一种版本管理方法和装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201349258Y (zh) * | 2008-12-30 | 2009-11-18 | 深圳市同洲电子股份有限公司 | 一种存储装置及采用该装置的机顶盒 |
US20110004719A1 (en) * | 2008-06-19 | 2011-01-06 | Nokia Corporation | Memory Element |
CN102419713A (zh) * | 2011-12-31 | 2012-04-18 | 四川长虹电器股份有限公司 | 基于nandflash的机顶盒的软件升级方法 |
CN102622280A (zh) * | 2011-01-06 | 2012-08-01 | 苏州科达科技有限公司 | 一种基于双文件系统的软件版本升级的控制方法及装置 |
CN104090796A (zh) * | 2014-07-08 | 2014-10-08 | 成都万维图新信息技术有限公司 | 一种嵌入式设备程序更新方法和系统 |
US20140310447A1 (en) * | 2013-04-15 | 2014-10-16 | Macronix International Co., Ltd. | Half block management for flash storage devices |
CN105677427A (zh) * | 2016-01-12 | 2016-06-15 | 浪潮通用软件有限公司 | 一种模块升级的方法及装置 |
CN105867941A (zh) * | 2016-04-18 | 2016-08-17 | 深圳市永兴元科技有限公司 | 软件升级系统及其实现方法 |
CN105912356A (zh) * | 2016-03-31 | 2016-08-31 | 武汉光迅科技股份有限公司 | 一种支持版本回退的光模块固件程序在线升级方法 |
CN107133056A (zh) * | 2017-06-09 | 2017-09-05 | 北京云创远景软件有限责任公司 | 智能设备升级恢复分区的方法和装置 |
-
2019
- 2019-01-07 CN CN201910012523.0A patent/CN109710297B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110004719A1 (en) * | 2008-06-19 | 2011-01-06 | Nokia Corporation | Memory Element |
CN201349258Y (zh) * | 2008-12-30 | 2009-11-18 | 深圳市同洲电子股份有限公司 | 一种存储装置及采用该装置的机顶盒 |
CN102622280A (zh) * | 2011-01-06 | 2012-08-01 | 苏州科达科技有限公司 | 一种基于双文件系统的软件版本升级的控制方法及装置 |
CN102419713A (zh) * | 2011-12-31 | 2012-04-18 | 四川长虹电器股份有限公司 | 基于nandflash的机顶盒的软件升级方法 |
US20140310447A1 (en) * | 2013-04-15 | 2014-10-16 | Macronix International Co., Ltd. | Half block management for flash storage devices |
CN104090796A (zh) * | 2014-07-08 | 2014-10-08 | 成都万维图新信息技术有限公司 | 一种嵌入式设备程序更新方法和系统 |
CN105677427A (zh) * | 2016-01-12 | 2016-06-15 | 浪潮通用软件有限公司 | 一种模块升级的方法及装置 |
CN105912356A (zh) * | 2016-03-31 | 2016-08-31 | 武汉光迅科技股份有限公司 | 一种支持版本回退的光模块固件程序在线升级方法 |
CN105867941A (zh) * | 2016-04-18 | 2016-08-17 | 深圳市永兴元科技有限公司 | 软件升级系统及其实现方法 |
CN107133056A (zh) * | 2017-06-09 | 2017-09-05 | 北京云创远景软件有限责任公司 | 智能设备升级恢复分区的方法和装置 |
Non-Patent Citations (1)
Title |
---|
张立达: ""模块化业务动态更新平台的设计与实现"", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112333471A (zh) * | 2020-11-05 | 2021-02-05 | 上海网达软件股份有限公司 | 音视频在线转码器的热升级方法、装置、设备及存储介质 |
CN112764803A (zh) * | 2021-01-20 | 2021-05-07 | 青岛海尔科技有限公司 | 版本升级方法及装置、存储介质及电子装置 |
CN113227968A (zh) * | 2021-03-31 | 2021-08-06 | 华为技术有限公司 | 一种版本管理方法和装置 |
CN113227968B (zh) * | 2021-03-31 | 2022-06-10 | 华为技术有限公司 | 一种版本管理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109710297B (zh) | 2022-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5342302B2 (ja) | ファームウェア更新システム、ファームウェア配信サーバ、及びプログラム | |
US9910664B2 (en) | System and method of online firmware update for baseboard management controller (BMC) devices | |
CN109710297A (zh) | 一种设备整体或分模块进行升级和回退方法 | |
CN103455354A (zh) | 一种防止固件升级失败的方法和设备 | |
CN104572206A (zh) | 应用程序自更新和备份恢复的方法 | |
CN103631674A (zh) | 嵌入cpu的fpga及其启动方法 | |
CN112445495B (zh) | 一种高性能计算集群节点的镜像与恢复方法 | |
CN106020861A (zh) | 一种智能手表的fota升级方法及系统 | |
CN112631625B (zh) | 嵌入式设备的系统升级方法、装置及嵌入式设备 | |
CN110597533A (zh) | 一种fpga板卡程序更新系统及方法 | |
CN109413497B (zh) | 一种智能电视机及其系统启动方法 | |
CN102566738B (zh) | 一种服务器系统的开机方法和服务器系统 | |
CN110580167A (zh) | 一种系统升级方法、智能设备及服务器 | |
US20160321057A1 (en) | Electronic apparatus | |
CN101615129B (zh) | 应用于分布式系统中的升级方法及版本管理客户端 | |
CN103392174B (zh) | 基于闪存存储的系统、分区方法和装置 | |
CN111124749A (zh) | 紧耦合高性能计算机系统bmc系统自动修复方法及修复系统 | |
CN102298531B (zh) | 在嵌入式系统中对闪存文件系统进行升级的方法 | |
CN113031999A (zh) | 服务器部件固件升级的控制方法、装置、设备及存储介质 | |
CN102331942A (zh) | 一种BIOS与Linux内核自动升级的方法 | |
WO2023125482A1 (zh) | 集群管理方法、设备及计算系统 | |
CN111158709A (zh) | 一种集群部署方法、装置、设备及计算机可读存储介质 | |
CN102455919A (zh) | 基本输入输出系统自动最佳化设定方法 | |
CN108958769A (zh) | 一种嵌入式设备软件系统修复方法及系统 | |
CN103777955A (zh) | Windows环境安装和运行类Unix的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |