1.本发明涉及计算机技术领域,特别是涉及一种电子设备的系统升级方法及装置。
背景技术:2.在目前的嵌入式产品中,手机设备可以通过recovery模式,一种对安卓机内部的数据或系统进行修改的模式,实现对当前系统的备份、升级、恢复出厂设置等操作;而在其他的嵌入式设备中,设备升级过程会要求设备保持通电状态,一旦发生断电操作,设备可能只升级一部分,不能完全升级,这种情况下设备很可能无法再次启动,只能将设备返厂维修,会带来因为时间成本增加所导致的一些不可预知的后果。
技术实现要素:3.本发明实施例的目的在于提供一种电子设备的系统升级方法及装置,以实现电子设备的系统升级。具体技术方案如下:在本发明实施的第一方面,首先提供了一种电子设备的系统升级方法,所述方法包括:在所述电子设备上电后,利用预设引导加载程序对所述电子设备进行初始化操作;读取配置分区中的升级状态标识;当所述升级状态标识表示升级完成或未进行过升级的情况下,启动第一系统;其中,所述第一系统用于实现所述电子设备的全量业务;当所述升级状态标识表示升级未完成的情况下,启动第二系统;利用所述第二系统运行系统升级程序对所述第一系统进行升级;在所述第一系统升级完成后,利用所述第二系统将所述配置分区中的升级状态标识变更为表示升级完成;重启所述电子设备;其中,所述第二系统用于实现所述第一系统的升级业务。
4.在一个可能的实施方式中,在所述当所述升级状态标识表示升级完成或未进行过升级的情况下,启动第一系统之后,所述方法还包括:在获取到系统升级程序后,利用所述第一系统将所述配置分区中的升级状态标识变更为表示升级未完成,并运行所述系统升级程序对所述第一系统进行升级;在所述第一系统升级完成后,利用所述第一系统将所述配置分区中的升级状态标识变更为表示升级完成;重启所述电子设备。
5.在一个可能的实施方式中,在所述启动第二系统之后,所述方法还包括:显示用于提示是否对所述第一系统进行升级的提示信息;在获取到用户根据所述提示信息输入的升级指令后,执行步骤:利用所述第二系统运行系统升级程序对所述第一系统进行升级。
6.在一个可能的实施方式中,所述启动第一系统,包括:获取预设的第一系统地址;按照所述第一系统地址,加载所述第一系统的系统内核,挂载所述第一系统的根文件系统,
并启动所述第一系统的应用程序;所述启动第二系统,包括:获取预设的第二系统地址;按照所述第二系统地址,加载所述第二系统的系统内核,挂载所述第二系统的根文件系统,并启动所述第二系统的应用程序。
7.在本发明实施的第二方面,还提供了一种电子设备的系统升级装置,所述装置包括:初始化模块,用于在所述电子设备上电后,利用预设引导加载程序对所述电子设备进行初始化操作;读取模块,用于读取配置分区中的升级状态标识;第一系统启动模块,用于当所述升级状态标识表示升级完成或未进行过升级的情况下,启动第一系统;其中,所述第一系统用于实现所述电子设备的全量业务;第二系统启动模块,用于当所述升级状态标识表示升级未完成的情况下,启动第二系统;利用所述第二系统运行系统升级程序对所述第一系统进行升级;在所述第一系统升级完成后,利用所述第二系统将所述配置分区中的升级状态标识变更为表示升级完成;重启所述电子设备;其中,所述第二系统用于实现所述第一系统的升级业务。
8.在一个可能的实施方式中,所述装置还包括:升级模块,用于在获取到系统升级程序后,利用所述第一系统将所述配置分区中的升级状态标识变更为表示升级未完成,并运行所述系统升级程序对所述第一系统进行升级;在所述第一系统升级完成后,利用所述第一系统将所述配置分区中的升级状态标识变更为表示升级完成;重启所述电子设备。
9.在一个可能的实施方式中,所述装置还包括:显示模块,用于显示用于提示是否对所述第一系统进行升级的提示信息;再次升级模块,用于在获取到用户根据所述提示信息输入的升级指令后,执行步骤:利用所述第二系统运行系统升级程序对所述第一系统进行升级。
10.在一个可能的实施方式中,所述第一系统启动模块具体用于,获取预设的第一系统地址;按照所述第一系统地址,加载所述第一系统的系统内核,挂载所述第一系统的根文件系统,并启动所述第一系统的应用程序;所述第二系统启动模块具体用于,获取预设的第二系统地址;按照所述第二系统地址,加载所述第二系统的系统内核,挂载所述第二系统的根文件系统,并启动所述第二系统的应用程序。
11.在本发明实施的第三方面,还提供了一种硬盘录像机,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述任一所述电子设备的系统升级方法。
12.在本发明实施的第四方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述电子设备的系统升级方法。
13.本发明实施例有益效果:本发明实施例提供的电子设备的系统升级方法,通过设置配置分区,记录系统升级进度,在所述升级状态标识表示升级完成或未进行过升级的情况下,启动能够实现所述
电子设备全量业务的第一系统;在所述升级状态标识表示升级未完成的情况下,启动第二系统;利用所述第二系统运行系统升级程序对所述第一系统进行升级;在所述第一系统升级完成后,利用所述第二系统将所述配置分区中的升级状态标识变更为表示升级完成;重启所述电子设备。针对第一系统升级意外退出的情况,选择以第二系统启动电子设备,并在电子设备启动后,对第一系统进行升级;如此,在第一系统因未升级完成而无法打开时,也可以正常启动电子设备,并能完成对第一系统的升级,实现了电子设备的系统升级。
14.当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
15.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
16.图1为本技术实施例提供的电子设备的系统升级方法的一种流程示意图;图2为电子设备中程序分区信息的一种示意图;图3为本技术实施例提供的电子设备的系统升级方法的又一种流程示意图;图4为本技术实施例提供的电子设备系统升级方法的一种流程图;图5为本技术实施例提供的电子设备的系统升级装置的一种结构示意图。
具体实施方式
17.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本技术所获得的所有其他实施例,都属于本发明保护的范围。
18.为了避免电子设备在升级过程中,因为设备断电造成的升级未完成问题,本技术实施例提供了一种电子设备的系统升级方法,参见图1,所述方法包括:s101、在所述电子设备上电后,利用预设引导加载程序对所述电子设备进行初始化操作。
19.电子设备可以为硬盘录像机或摄像机设备。其中,硬盘录像机(digital video recorder,dvr)是一套进行图像存储处理的计算机系统,具有对图像/语音进行长时间录像、录音、远程监视和控制的功能。使用硬盘录像机的前提是硬盘录像机需要保持通电状态,硬盘录像机进行系统升级也是在硬盘录像机保持通电状态的情况下完成的。
20.电子设备的外存中有相应的分区来存储预设引导加载程序、配置分区、第一系统以及第二系统,参见图2,为电子设备中程序分区信息,预设引导加载程序所在分区(uboot分区镜像)为电子设备上电后的第一个分区,第一系统包括系统内核(kernel),根文件系统(rootfs),应用程序(app);第二系统包括系统内核(kernel),根文件系统(rootfs),应用程序(app)。在所述电子设备上电后,电子设备会利用外存(通常为flash芯片)中存储的预设引导加载程序,对电子设备进行初始化操作,完成电子设备硬件部分的初始化,包括:改变
系统时钟、初始化存储控制器等。
21.s102、读取配置分区中的升级状态标识。
22.升级状态标识能够反映第一系统的升级进度,包括未进行升级、升级中以及升级完成这三种状态。升级状态标识的初始状态表示为未进行升级的状态。
23.s103、当所述升级状态标识表示升级完成或未进行过升级的情况下,启动第一系统。
24.其中,所述第一系统用于实现所述电子设备的全量业务。全量业务是指实现电子设备所有功能对应的业务,以电子设备为硬盘录像机为例进行说明,全量业务可以包括硬盘录像机的监视功能、录像功能、回放功能、报警功能、控制功能、网络功能、密码授权功能和工作时间表功能。
25.当所述升级状态标识表示升级完成或未进行过升级,说明第一系统可以正常启动,系统升级是指对第一系统进行系统升级,此时,可以启动第一系统。
26.第一系统的启动过程包括:获取预设的第一系统地址;按照所述第一系统地址,加载所述第一系统的系统内核,挂载所述第一系统的根文件系统,并启动所述第一系统的应用程序。
27.s104、当所述升级状态标识表示升级未完成的情况下,启动第二系统。
28.利用所述第二系统运行系统升级程序对所述第一系统进行升级;在所述第一系统升级完成后,利用所述第二系统将所述配置分区中的升级状态标识变更为表示升级完成;重启所述电子设备。
29.其中,所述第二系统用于实现所述第一系统的升级业务。由于第二系统只是用来引导对第一系统进行升级,无需承载电子设备的功能业务,例如,硬盘录像机的监视功能、录像功能、回放功能、报警功能;因此,第二系统无需设计得和第一系统一样复杂,第二系统可以只简单设置,确保能够实现引导完成第一系统升级即可,如此设计,相比于设计两个完全一致的启动系统,本技术的方案能够节省存储空间和计算资源。
30.若第一系统在系统升级过程中,因电子设备断电导致了升级过程意外终止,第一系统很可能没有完成升级,此时,升级状态标志还保持为升级中状态。为了完成对第一系统的升级,当所述升级状态标识表示升级未完成的情况下,启动电子设备的第二系统;利用所述第二系统运行系统升级程序对所述第一系统进行升级。其中,第二系统的启动包括:获取预设的第二系统地址;按照所述第二系统地址,加载所述第二系统的系统内核,挂载所述第二系统的根文件系统,并启动所述第二系统的应用程序。第二系统的系统内核、根文件系统以及应用程序与第一系统的系统内核、根文件系统以及应用程序相互独立。
31.在第一系统升级完成后,利用所述第二系统将所述配置分区中的升级状态标识变更为表示升级完成;重启所述电子设备。
32.本技术实施例中,通过设置配置分区,记录系统升级进度,在所述升级状态标识表示升级完成或未进行过升级的情况下,启动能够实现所述电子设备全量业务的第一系统;在所述升级状态标识表示升级未完成的情况下,启动第二系统;利用所述第二系统运行系统升级程序对所述第一系统进行升级;在所述第一系统升级完成后,利用所述第二系统将所述配置分区中的升级状态标识变更为表示升级完成;重启所述电子设备。本技术实施例针对第一系统升级意外退出的情况,选择以第二系统启动电子设备,并在电子设备启动后,
rw mtdparts=nand:1m(uboot),10m(config),6m(kernel),32m(rootfs),100m(app),6m(kernel2),32m(rootfs2),50m(app2)"其中,mem即memory,存储空间,mem=2048m表示分配2048m的内存空间;console为设置控制台设备,console=ttyama0,115200表示控制台为串口0,波特率115200;ubi.mtd=6 指示整个系统的根文件系统在第六个mtd 上,mtd(memory technology device,存储技术设备)多指flash,系统将据此默认把mtd6 attach到ubi0 上。rootfstype为设置挂载文件系统类型,此处用的是ubifs文件系统格式;mtdparts为mtd分区描述,uboot占用1m空间,config(配置分区)占用10m空间,kernel(第一系统的内核镜像)占用6m空间,rootfs(第一系统的根文件系统)占用32m空间,app(第一系统的上层应用程序)占用100m空间,kernel2(第二系统的内核镜像)占用6m空间,rootfs(第二系统的根文件系统)占用32m空间,app2(第二系统的上层应用程序)占用50m空间。
38.在升级过程中记录升级状态enum upgradestatus {
ꢀꢀꢀꢀꢀꢀꢀ
upgrade_success,
ꢀꢀꢀꢀꢀꢀꢀ
kernel_start,
ꢀꢀꢀꢀꢀꢀꢀ
kernel_end,
ꢀꢀꢀꢀꢀꢀꢀ
rootfs_start,
ꢀꢀꢀꢀꢀꢀꢀ
rootfs_end,
ꢀꢀꢀꢀꢀꢀꢀ
app_start,
ꢀꢀꢀꢀꢀꢀꢀ
app_end};升级状态标志upgradestatus为0表示完成升级,每当在升级镜像前,及升级完当前镜像后均需要更新升级状态标志,并写入config分区中,以达到记录当前升级状态的目的。upgrade_success表示成功升级,kernel_start表示对内核镜像开始升级,kernel_end表示对内核镜像完成升级,rootfs_start表示对根文件系统开始升级,rootfs_end表示对根文件系统完成升级,app_start表示对上层应用程序开始升级,app_end表示对上层应用程序完成升级。
39.一个例子中,参见图3,在上述步骤s103、当所述升级状态标识表示升级完成或未进行过升级的情况下,启动第一系统之后,所述方法还包括:s1031、在获取到系统升级程序后,利用所述第一系统将所述配置分区中的升级状态标识变更为表示升级未完成,并运行所述系统升级程序对所述第一系统进行升级。
40.系统升级程序可以是用户在向电子设备插入u盘后获取得到,也可以是从网络上下载得到。在获取到系统升级程序后,第一系统会将配置分区中的升级状态标识变更为表示升级未完成,并运行所述系统升级程序对所述第一系统进行升级。
41.s1032、在所述第一系统升级完成后,利用所述第一系统将所述配置分区中的升级状态标识变更为表示升级完成;重启所述电子设备。
42.升级状态标识用于反映升级进度,在所述第一系统升级完成后,利用所述第一系统将所述配置分区中的升级状态标识变更为表示升级完成,并重启所述电子设备。
43.本技术实施例中,在第一系统未进行升级的情况下启动第一系统,并下载系统升
级程序以完成对第一系统的系统升级操作,能够实现针对电子设备的系统升级;在更新完成后,还会重启电子设备,这样,重启后的电子设备再进入第一系统即是进入更新好的第一系统。
44.一个例子中,在上述启动第二系统之后,所述方法还包括:步骤一、显示用于提示是否对所述第一系统进行升级的提示信息;步骤二、在获取到用户根据所述提示信息输入的升级指令后,执行步骤:利用所述第二系统运行系统升级程序对所述第一系统进行升级。
45.可以理解的是,在启动第二系统后,可在第二系统界面显示用于提示是否对所述第一系统进行升级的提示信息,用户在看到该提示信息后,就可以获知第一系统升级未完成的消息。若用户选择对第一系统进行升级,用户可以重新从网络下载升级安装包,将升级安装包下载并解压到本地,通过运行系统升级程序完成对第一系统的系统升级。一种方式下,对第一系统进行系统升级的方式还可以是,将包含更新版本第一系统文件的u盘插入电子设备,下载并安装该更新版本的第一系统文件。在接收到第一系统升级未完成提示的情况下,用户可以重新将包含更新版本第一系统文件的u盘插入电子设备,下载并安装该更新版本的第一系统文件。
46.本技术实施例中,第二系统用于引导用户完成对第一系统的升级操作,确保在上次第一系统升级未完成便退出后,能够继续进行第一系统的升级操作。
47.参见图4,为本技术实施例提供的电子设备系统升级方法的一种流程图:电子设备在上电后,首先加载预设引导加载程序uboot,对电子设备进行初始化操作,完成电子设备硬件部分的初始化;然后读取升级状态标志,判断是否完成升级,如果完成升级,则可以进入第一系统内核,挂载第一系统根文件系统,启动第一系统应用程序;如果没有完成升级,则进入第二系统内核,挂载第二系统根文件系统,启动第二系统应用程序,在第二系统界面上提示用户等待升级,引导用户完成对第一系统的升级操作,在第一系统升级完成后,将升级状态标志更新为升级完成,并重启电子设备;此时,设备在重新上电后,读取到的升级状态标志就是升级完成的标志,因此,可以进入更新后的第一系统内核,启动更新后的第一系统。
48.本技术实施例确保电子设备在系统升级过程中不会死机,出现升级未完成的情况也会通过启动第二系统来引导用户完成对第一系统的升级操作,提高了电子设备的冗余性,避免给用户造成间接损失。
49.又一方面,本技术实施例提供了一种电子设备的系统升级装置,参见图5,所述装置包括:初始化模块501,用于在所述电子设备上电后,利用预设引导加载程序对所述电子设备进行初始化操作;读取模块502,用于读取配置分区中的升级状态标识;第一系统启动模块503,用于当所述升级状态标识表示升级完成或未进行过升级的情况下,启动第一系统;其中,所述第一系统用于实现所述电子设备的全量业务;第二系统启动模块504,用于当所述升级状态标识表示升级未完成的情况下,启动第二系统;利用所述第二系统运行系统升级程序对所述第一系统进行升级;在所述第一系统升级完成后,利用所述第二系统将所述配置分区中的升级状态标识变更为表示升级完
成;重启所述电子设备;其中,所述第二系统用于实现所述第一系统的升级业务。
50.一个例子中,所述装置还包括:升级模块,用于在获取到系统升级程序后,利用所述第一系统将所述配置分区中的升级状态标识变更为表示升级未完成,并运行所述系统升级程序对所述第一系统进行升级;在所述第一系统升级完成后,利用所述第一系统将所述配置分区中的升级状态标识变更为表示升级完成;重启所述电子设备。
51.一个例子中,所述装置还包括:显示模块,用于显示用于提示是否对所述第一系统进行升级的提示信息;再次升级模块,用于在获取到用户根据所述提示信息输入的升级指令后,执行步骤:利用所述第二系统运行系统升级程序对所述第一系统进行升级。
52.一个例子中,所述第一系统启动模块具体用于,获取预设的第一系统地址;按照所述第一系统地址,加载所述第一系统的系统内核,挂载所述第一系统的根文件系统,并启动所述第一系统的应用程序;所述第二系统启动模块具体用于,获取预设的第二系统地址;按照所述第二系统地址,加载所述第二系统的系统内核,挂载所述第二系统的根文件系统,并启动所述第二系统的应用程序。
53.又一方面,本技术实施例还提供了一种硬盘录像机,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述任一电子设备的系统升级方法。
54.又一方面,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一电子设备的系统升级方法。
55.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
56.在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一电子设备的系统升级方法。
57.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以
是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk (ssd))等。
58.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
59.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
60.以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。