1.本发明涉及通信技术领域,尤其涉及一种固件远程升级方法及装置。
背景技术:2.固件(firmware)是指设备内部保存的设备“驱动程序”,承担着操作系统最基础最底层的工作,通过固件,操作系统才能按照标准的设备驱动实现特定机器的运行动作。可见,在硬件设备中,固件就是硬件设备的灵魂,决定着硬件设备的功能及性能。为了修复产品缺陷、满足不断变化的需求和新功能、以及缩短产品周期,会对设备的固件进行升级。现有的固件升级方法为待升级设备向服务器发出固件更新请求,服务器将与待升级设备匹配的更新固件程序传输至待升级设备,上述方法方便快捷,可以在线实现固件更新,提高了用户的体验感,但同时存在以下问题:在设备固件更新过程中容易受自身网络和系统影响进而在下载更新固件程序的过程中出现数据失真的情况从而导致最终更新失败,浪费时间成本、降低了用户的体验感。
技术实现要素:3.针对上述所显示出来的问题,本发明提供了一种固件远程升级方法及装置用以解决背景技术中提到的在设备固件更新过程中容易受自身网络和系统影响进而在下载更新固件程序的过程中出现数据失真的情况从而导致最终更新失败,浪费时间成本、降低了用户的体验感的问题。
4.一种固件远程升级方法,包括以下步骤:
5.对目标主机进行固件检测以确认其是否需要升级固件;
6.当确认目标主机需要升级固件时,调取目标主机适配的更新固件程序;
7.将所述更新固件程序拆分为多个更新数据包传输至预设上位机;
8.利用所述预设上位机检测目标主机的系统状态是否正常,若是,将所述更新固件程序传输至目标主机,否则,发出系统异常的提醒。
9.优选的,所述对目标主机进行固件检测以确认其是否需要升级固件,包括:
10.检测所述目标主机的当前固件程序版本;
11.确认所述当前固件程序版本是否为最新固件程序版本,若是,确认目标主机无需升级固件,否则,确认目标主机中是否下载有所述最新固件程序版本;
12.若是,向所述目标主机发出安装所述最新固件程序版本的提醒;
13.否则,确认所述目标主机需要升级固件,获取所述目标主机的序列号进行记录。
14.优选的,所述当确认目标主机需要升级固件时,调取目标主机适配的更新固件程序,包括:
15.根据目标主机的当前固件程序版本获取其对应的多个第一更新固件;
16.获取所述目标主机的主机型号,将所述主机型号在预设固件库中进行匹配以确定与目标主机适配的第二更新固件;
17.将多个第一更新固件中与第二更新固件相同的目标第一更新固件确认为目标主机的适配更新固件;
18.调取所述目标第一更新固件的更新程序并将其确认为更新固件程序。
19.优选的,在将所述更新固件程序拆分为多个更新数据包传输至预设上位机之前,所述方法还包括:
20.向所述目标主机发出是否升级固件的提示,接收目标主机的反馈指令,当所述反馈指令为确认升级时,生成确认升级指令;
21.将所述确认升级指令发送至预设服务器;
22.接收所述预设服务器反馈的网络数据帧检测指令并检测目标主机的当前网络数据帧;
23.对所述当前网络数据帧进行检验,当通过检验时,从所述预设服务器上下载所述更新固件程序。
24.优选的,所述将所述更新固件程序拆分为多个更新数据包传输至预设上位机,包括:
25.确定所述更新固件程序对应的目标数据类型并根据其生成拆分任务;
26.创建所述拆分任务中每个环节对应的任务线程以及运行参数;
27.创建完毕后,基于所述拆分任务对预设数据进行拆分测试,获取测试结果;
28.根据所述测试结果判断所述任务线程和运行参数是否合格,若是,基于所述拆分任务将更新固件程序拆分为多个更新数据包传输至预设上位机。
29.优选的,所述利用所述预设上位机检测目标主机的系统状态是否正常,若是,将所述更新固件程序传输至目标主机,否则,发出系统异常的提醒,包括:
30.在所述预设上位机上生成测试指令,将所述测试指令通过网络反馈至所述目标主机;
31.检测所述目标主机是否接收到所述测试指令,若是,确认所述目标主机网络系统正常,否则,确认所述目标主机网络系统异常;
32.接收目标主机对于所述测试指令的操作反馈,根据所述操作反馈判断判断目标主机的操作系统是否正常;
33.当目标主机的网络系统和操作系统都为正常时,确认目标主机的系统状态正常,将所述更新固件程序传输至目标主机,当目标主机的网络系统和操作系统中任一项异常时,确认目标主机的系统状态异常,发出系统异常的提醒。
34.优选的,所述方法还包括:
35.创建关于所述更新固件程序的预设引导环境,将所述预设引导环境上传至所述目标主机;
36.接收用户对于所述预设引导环境的修改内容,根据所述修改内容对所述预设引导环境进行修改,获得目标引导环境;
37.在所述目标引导环境中使用所述更新固件程序对目标主机的当前固件程序进行更新,实时检测更新进度;
38.当所述更新进度为更新完成时,将所述更新固件程序存储到目标主机的历史版本固件程序中。
39.优选的,在在所述目标引导环境中使用所述更新固件程序对目标主机的当前固件程序进行更新,实时检测更新进度之前,所述方法还包括:
40.根据所述更新固件程序对所述目标引导环境创建脚本文件;
41.将创建的脚本文件与目标主机的多个待更新固件相关联;
42.关联完毕后,将所述目标引导环境安装到所述目标主机上,从预设文件库中获取与所述更新固件程序相关的测试配置文件;
43.基于所述测试配置文件生成所述更新固件程序的安装测试任务;
44.根据所述目标主机的操作系统类型、cpu和运存参数确定安装测试任务的循环测试次数和循环测试线路;
45.获取所述安装测试任务的测试地址,根据所述测试地址将所述更新固件程序导入到所述目标引导环境中;
46.在所述目标引导环境中根据所述安装测试任务利用所述测试线路执行目标数量次更新固件程序的安装测试工作;
47.获取每次安装测试工作过程中的执行信息,根据所述执行信息判断在所述目标引导环境中是否可以完成更新固件程序在目标主机上的更新工作,若是,确认更新固件程序可在目标主机上正常安装,否则,确认更新固件程序无法在所述目标主机上正常安装;
48.当确认更新固件程序无法在所述目标主机上正常安装时,检测所述目标主机的安装线路是否异常,若是,通过修复工具对所述安装线路进行修复;
49.修复完毕后,重新进行安装测试,当测试通过时确认更新固件程序可在目标主机上正常安装。
50.优选的,在在所述目标引导环境中使用所述更新固件程序对目标主机的当前固件程序进行更新,实时检测更新进度之前,所述方法还包括:
51.获取所述目标主机的历史工作信息;
52.根据所述历史工作信息确定目标主机的工作时间段和空闲时间段;
53.根据所述空闲时间段和更新固件程序的预计安装时长确定目标主机的固件更新时间点;
54.获取所述更新固件程序的多个计算机函数,根据所述多个计算机函数构建函数表;
55.获取每个计算机函数的源代码,将每个计算机函数的源代码在目标主机的当前固件程序中进行匹配确认是否有匹配结果,若是,确认所述当前固件程序与所述更新固件程序相兼容,否则,确认二者不兼容;
56.当二者不兼容时,获取没有匹配结果的目标计算机函数对应的补丁文件,将所述补丁文件安装到所述目标主机上;
57.安装完毕后,在到达所述更新时间点时,向目标主机发出更新提醒。
58.一种固件远程升级装置,该装置包括:
59.确认模块,用于对目标主机进行固件检测以确认其是否需要升级固件;
60.调取模块,用于当确认目标主机需要升级固件时,调取目标主机适配的更新固件程序;
61.拆分模块,用于将所述更新固件程序拆分为多个更新数据包传输至预设上位机;
62.传输模块,用于利用所述预设上位机检测目标主机的系统状态是否正常,若是,将所述更新固件程序传输至目标主机,否则,发出系统异常的提醒。
63.本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。
64.下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
65.附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。
66.图1为本发明所提供的一种固件远程升级方法的工作流程图;
67.图2为本发明所提供的一种固件远程升级方法的另一工作流程图;
68.图3为本发明所提供的一种固件远程升级方法的又一工作流程图;
69.图4为本发明所提供的一种固件远程升级方法的实施例截图;
70.图5为本发明所提供的一种固件远程升级装置的结构示意图。
具体实施方式
71.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
72.固件(firmware)是指设备内部保存的设备“驱动程序”,承担着操作系统最基础最底层的工作,通过固件,操作系统才能按照标准的设备驱动实现特定机器的运行动作。可见,在硬件设备中,固件就是硬件设备的灵魂,决定着硬件设备的功能及性能。为了修复产品缺陷、满足不断变化的需求和新功能、以及缩短产品周期,会对设备的固件进行升级。现有的固件升级方法为待升级设备向服务器发出固件更新请求,服务器将与待升级设备匹配的更新固件程序传输至待升级设备,上述方法方便快捷,可以在线实现固件更新,提高了用户的体验感,但同时存在以下问题:在设备固件更新过程中容易受自身网络和系统影响进而在下载更新固件程序的过程中出现数据失真的情况从而导致最终更新失败,浪费时间成本、降低了用户的体验感。为了解决上述问题,本实施例公开了一种固件远程升级方法。
73.一种固件远程升级方法,如图1所示,包括以下步骤:
74.步骤s101、对目标主机进行固件检测以确认其是否需要升级固件;
75.步骤s102、当确认目标主机需要升级固件时,调取目标主机适配的更新固件程序;
76.步骤s103、将所述更新固件程序拆分为多个更新数据包传输至预设上位机;
77.步骤s104、利用所述预设上位机检测目标主机的系统状态是否正常,若是,将所述更新固件程序传输至目标主机,否则,发出系统异常的提醒。
78.上述技术方案的工作原理为:首选对目标主机进行固件检测以确认其是否需要升级固件,当确认目标主机需要升级固件时,调取目标主机适配的更新固件程序,然后将更新固件程序拆分为多个更新数据包传输至预设上位机,最后通过预设上位机检测目标主机的
系统状态是否正常,当目标主机的系统状态都显示正常时,通过有线连接将更新固件程序传输至目标主机进而使得目标主机进行固件更新操作。
79.上述技术方案的有益效果为:通过利用有线传输的方式来使得目标主机接收对应的更新固件程序相比于现有技术中利用无线网络传输来说更加稳定和可靠,避免数据在传输过程中的失真问题,提高了目标主机更新固件的可靠性和安装成功概率,进一步地,通过检测目标主机的系统状态是否正常可以有效地评估出目标主机是否可以以当前状态更新固件从而在不能更新固件时有效地进行提示调整以保证对于更新固件程序的完整安装,进一步地提高了固件更新的可靠性和稳定性,解决了现有技术中在设备固件更新过程中容易受自身网络和系统影响进而在下载更新固件程序的过程中出现数据失真的情况从而导致最终更新失败,浪费时间成本、降低了用户的体验感的问题。
80.在一个实施例中,如图2所示,所述对目标主机进行固件检测以确认其是否需要升级固件,包括:
81.步骤s201、检测所述目标主机的当前固件程序版本;
82.步骤s202、确认所述当前固件程序版本是否为最新固件程序版本,若是,确认目标主机无需升级固件,否则,确认目标主机中是否下载有所述最新固件程序版本;
83.步骤s203、若是,向所述目标主机发出安装所述最新固件程序版本的提醒;
84.步骤s204、否则,确认所述目标主机需要升级固件,获取所述目标主机的序列号进行记录;
85.在本实施例中,若目标主机中已经下载了最新固件程序版本,对下载的最新固件程序版本进行完整性检测,在通过检测后方可使用其来更新目标主机中的当前固件版本。
86.上述技术方案的有益效果为:通过对比固件版本可以快速地去确定目标主机是否需要更新固件,提高了工作效率,进一步地,通过检测目标主机中是否已经预先下载了最新固件程序版本可以避免对于更新固件程序的重复下载,进一步地提高了工作效率的同时也降低了目标主机的内存使用率,提高了用户的体验感。
87.在一个实施例中,如图3所示,所述当确认目标主机需要升级固件时,调取目标主机适配的更新固件程序,包括:
88.步骤s301、根据目标主机的当前固件程序版本获取其对应的多个第一更新固件;
89.步骤s302、获取所述目标主机的主机型号,将所述主机型号在预设固件库中进行匹配以确定与目标主机适配的第二更新固件;
90.步骤s303、将多个第一更新固件中与第二更新固件相同的目标第一更新固件确认为目标主机的适配更新固件;
91.步骤s304、调取所述目标第一更新固件的更新程序并将其确认为更新固件程序。
92.上述技术方案的有益效果为:通过根据目标主机的主机型号来确定其适用的更新固件可以使得最终的更新固件程序更加符合目标主机的操作系统需求,保证了目标主机系统运行时与各个固件之间的兼容性,侧面地提高了目标主机的工作稳定性。
93.在一个实施例中,在将所述更新固件程序拆分为多个更新数据包传输至预设上位机之前,所述方法还包括:
94.向所述目标主机发出是否升级固件的提示,接收目标主机的反馈指令,当所述反馈指令为确认升级时,生成确认升级指令;
95.将所述确认升级指令发送至预设服务器;
96.接收所述预设服务器反馈的网络数据帧检测指令并检测目标主机的当前网络数据帧;
97.对所述当前网络数据帧进行检验,当通过检验时,从所述预设服务器上下载所述更新固件程序。
98.上述技术方案的有益效果为:通过检测目标主机的当前网络数据帧并进行合格检验可以有效地评估目标主机的网络是否稳定,可进一步地提高数据传输的稳定性。
99.在一个实施例中,所述将所述更新固件程序拆分为多个更新数据包传输至预设上位机,包括:
100.确定所述更新固件程序对应的目标数据类型并根据其生成拆分任务;
101.创建所述拆分任务中每个环节对应的任务线程以及运行参数;
102.创建完毕后,基于所述拆分任务对预设数据进行拆分测试,获取测试结果;
103.根据所述测试结果判断所述任务线程和运行参数是否合格,若是,基于所述拆分任务将更新固件程序拆分为多个更新数据包传输至预设上位机。
104.上述技术方案的有益效果为:通过生成拆分任务以及设置任务线程和运行参数可以稳定地将更新固件程序拆分为多个更新数据包从而不会造成数据紊乱和失真等情况,保证了数据传输的稳定性和完整性,进一步地,通过对拆分任务进行测试可以更加准确地保证对于更新固件程序的拆分工作的稳定进行,提高了整体的稳定性和可靠性。
105.在一个实施例中,所述利用所述预设上位机检测目标主机的系统状态是否正常,若是,将所述更新固件程序传输至目标主机,否则,发出系统异常的提醒,包括:
106.在所述预设上位机上生成测试指令,将所述测试指令通过网络反馈至所述目标主机;
107.检测所述目标主机是否接收到所述测试指令,若是,确认所述目标主机网络系统正常,否则,确认所述目标主机网络系统异常;
108.接收目标主机对于所述测试指令的操作反馈,根据所述操作反馈判断判断目标主机的操作系统是否正常;
109.当目标主机的网络系统和操作系统都为正常时,确认目标主机的系统状态正常,将所述更新固件程序传输至目标主机,当目标主机的网络系统和操作系统中任一项异常时,确认目标主机的系统状态异常,发出系统异常的提醒。
110.上述技术方案的有益效果为:通过同时对目标主机的网络系统和操作系统进行异常测试既可以保证目标主机可以完整地接收到更新固件程序又可以使得其可以完整地安装更新固件程序,提高了整体的稳定性和可靠性,保证了固件更新效率。
111.在一个实施例中,所述方法还包括:
112.创建关于所述更新固件程序的预设引导环境,将所述预设引导环境上传至所述目标主机;
113.接收用户对于所述预设引导环境的修改内容,根据所述修改内容对所述预设引导环境进行修改,获得目标引导环境;
114.在所述目标引导环境中使用所述更新固件程序对目标主机的当前固件程序进行更新,实时检测更新进度;
115.当所述更新进度为更新完成时,将所述更新固件程序存储到目标主机的历史版本固件程序中;
116.在本实施例中,用户对预设引导环境进行修改可以有选择地进行固件的选择性更新,可根据自身需要和意愿来实现固件的智能更新。
117.上述技术方案的有益效果为:通过构建引导环境来使目标主机安装更新固件程序可以使目标主机更加兼容地安装更新固件程序,提高了安装效率,同时,用户也可以自己选择固件更新,提高了用户的体验感,进一步地,通过保存历史版本固件程序,可以便于用户对目标主机的固件程序版本更换和升级记录查看,提升固件升级的灵活性。
118.在一个实施例中,如图4所示,包括:
119.在进行固件升级时,发送升级确认至服务器,实时接收返回的网络判断数据帧,并实时回复网络判断数据帧。在服务器网络检验通过时,接收服务器下发的待升级固件程序,将待升级固件程序拆分成多个数据包,通过有线连接逐一发送数据包至待升级设备,并将待升级固件程序作为历史版本固件程序保存,用于待升级设备的固件程序版本更换。
120.上述技术方案的有益效果为:可以避免固件升级过程中受网络影响导致的数据失真问题,提升固件升级的可靠性。此外,通过保存历史版本固件程序,可以使便于固件程序版本更换和升级记录查看,提升固件升级的灵活性。
121.在一个实施例中,在在所述目标引导环境中使用所述更新固件程序对目标主机的当前固件程序进行更新,实时检测更新进度之前,所述方法还包括:
122.根据所述更新固件程序对所述目标引导环境创建脚本文件;
123.将创建的脚本文件与目标主机的多个待更新固件相关联;
124.关联完毕后,将所述目标引导环境安装到所述目标主机上,从预设文件库中获取与所述更新固件程序相关的测试配置文件;
125.基于所述测试配置文件生成所述更新固件程序的安装测试任务;
126.根据所述目标主机的操作系统类型、cpu和运存参数确定安装测试任务的循环测试次数和循环测试线路;
127.获取所述安装测试任务的测试地址,根据所述测试地址将所述更新固件程序导入到所述目标引导环境中;
128.在所述目标引导环境中根据所述安装测试任务利用所述测试线路执行目标数量次更新固件程序的安装测试工作;
129.获取每次安装测试工作过程中的执行信息,根据所述执行信息判断在所述目标引导环境中是否可以完成更新固件程序在目标主机上的更新工作,若是,确认更新固件程序可在目标主机上正常安装,否则,确认更新固件程序无法在所述目标主机上正常安装;
130.当确认更新固件程序无法在所述目标主机上正常安装时,检测所述目标主机的安装线路是否异常,若是,通过修复工具对所述安装线路进行修复;
131.修复完毕后,重新进行安装测试,当测试通过时确认更新固件程序可在目标主机上正常安装。
132.上述技术方案的有益效果为:通过在目标引导环境中进行目标主机的固件更新测试工作可以有效地评估出目标主机在目标引导环境中是否可以完成更新固件程序的完整安装,从而保证目标主机对于更新固件程序的安装稳定性和成功概率,进一步地,通过对目
标主机的安装线路进行修复可以进一步地保证目标主机成功安装更新固件程序,进一步地提高了稳定性。
133.在一个实施例中,在在所述目标引导环境中使用所述更新固件程序对目标主机的当前固件程序进行更新,实时检测更新进度之前,所述方法还包括:
134.获取所述目标主机的历史工作信息;
135.根据所述历史工作信息确定目标主机的工作时间段和空闲时间段;
136.根据所述空闲时间段和更新固件程序的预计安装时长确定目标主机的固件更新时间点;
137.获取所述更新固件程序的多个计算机函数,根据所述多个计算机函数构建函数表;
138.获取每个计算机函数的源代码,将每个计算机函数的源代码在目标主机的当前固件程序中进行匹配确认是否有匹配结果,若是,确认所述当前固件程序与所述更新固件程序相兼容,否则,确认二者不兼容;
139.当二者不兼容时,获取没有匹配结果的目标计算机函数对应的补丁文件,将所述补丁文件安装到所述目标主机上;
140.安装完毕后,在到达所述更新时间点时,向目标主机发出更新提醒。
141.上述技术方案的有益效果为:通过智能确定目标主机的更新固件时间点可以有效地避开目标主机的繁忙工作时段从而有效地提高目标主机的工作效率,进一步地,通过对目标主机进行兼容性测试从而安装补丁文件可以使得目标主机对于更新固件程序完美兼容地运行,避免部分固件无法工作情况的发生,提高了稳定性和目标主机的工作效率。
142.本发明还公开了一种固件远程升级装置,如图5所示,该装置包括:
143.确认模块501,用于对目标主机进行固件检测以确认其是否需要升级固件;
144.调取模块502,用于当确认目标主机需要升级固件时,调取目标主机适配的更新固件程序;
145.拆分模块503,用于将所述更新固件程序拆分为多个更新数据包传输至预设上位机;
146.传输模块504,用于利用所述预设上位机检测目标主机的系统状态是否正常,若是,将所述更新固件程序传输至目标主机,否则,发出系统异常的提醒。
147.上述技术方案的工作原理及有益效果在方法权利要求中已经说明,此处不再赘述。
148.本领域技术人员应当理解的是,本发明中的第一、第二指的是不同应用阶段而已。
149.本领域技术用户员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
150.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。