CN115495129A - 一种固件升级方法、装置、设备、介质和产品 - Google Patents
一种固件升级方法、装置、设备、介质和产品 Download PDFInfo
- Publication number
- CN115495129A CN115495129A CN202211208343.8A CN202211208343A CN115495129A CN 115495129 A CN115495129 A CN 115495129A CN 202211208343 A CN202211208343 A CN 202211208343A CN 115495129 A CN115495129 A CN 115495129A
- Authority
- CN
- China
- Prior art keywords
- firmware
- upgrading
- file
- upgrade
- node
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 417
- 230000008569 process Effects 0.000 claims abstract description 332
- 230000006870 function Effects 0.000 claims description 38
- 238000004590 computer program Methods 0.000 claims description 24
- 238000004458 analytical method Methods 0.000 claims description 14
- 238000004806 packaging method and process Methods 0.000 claims description 14
- 238000012795 verification Methods 0.000 claims description 11
- 238000003860 storage Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 18
- 230000006399 behavior Effects 0.000 description 13
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 239000000306 component Substances 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种固件升级方法、装置、设备、介质和产品,该方法应用于BMC,包括:接收固件升级文件包,该固件升级文件包中至少包括目标固件的固件升级文件;获取流程树配置文件,该流程树配置文件表征对目标固件进行升级的升级流程;解析流程树配置文件,得到本次升级的固件升级流程;在接收到开始升级信号后,中断目标固件的运行,按照本次升级的固件升级流程,利用固件升级文件,对目标固件进行升级。本发明通过解析流程树配置文件动态得到固件升级流程,完成固件升级,无需将升级流程固化在BMC中,在固件升级流程改变时,仅需要获取更新后的流程树配置文件,即可按照更新的固件升级流程完成升级,提高了固件升级效率和安全性。
Description
技术领域
本发明涉及计算机技术领域,特别是一种固件升级方法、装置、设备、介质和产品。
背景技术
目前,随着计算机技术的发展,计算机计算能力不断提高,计算机中的各个组成部件均随之不断更新换代。VR(Voltage Regulation,电压转换器)作为服务器电路板的供电系统的重要组成部分,其配置也随之不断升级,以满足不断上涨的供电需求,使服务器达到最佳的运行状态。
然而,由于现实原因,很难保证每次对VR固件的维护和升级均由同一家VR供应厂商来执行。而VR固件升级在行业内没有统一标准,各厂商的VR固件升级方案千差万别。所以,在新厂商对VR固件进行升级时,需要对BMC(Baseboard Management Controller,基板管理控制器)的代码进行修改,使BMC能够同时兼容原有厂商和新厂商的固件升级方案。由此,每增加一个新厂商,就需要对BMC中的VR固件升级方案进行一次修改,严重影响了BMC固件的质量,容易造成安全风险。因此需要一种安全便捷的固件升级方法,以解决上述问题。
发明内容
鉴于上述问题,本发明实施例提供了一种固件升级方法、装置、设备、介质和产品,以便克服上述问题或者至少部分地解决上述问题。
本发明实施例的第一方面,提供了一种固件升级方法,应用于BMC,包括:
接收固件升级文件包,所述固件升级文件包中至少包括目标固件的固件升级文件;
获取流程树配置文件,所述流程树配置文件表征对所述目标固件进行升级的升级流程;
解析所述流程树配置文件,得到本次升级的固件升级流程;
在接收开始升级信号后,中断所述目标固件的运行,按照所述本次升级的固件升级流程,利用所述目标固件的固件升级文件,对所述目标固件进行升级。
可选地,所述目标固件的固件升级文件中携带有厂商标识;
获取流程树配置文件,包括:
根据所述厂商标识,查询BMC数据库中有携带相同厂商标识的流程树配置文件。
可选地,在第一次接收到所述流程树配置文件的情况下,所述方法包括:
对所述流程树配置文件进行校验;
在校验成功的情况下,将所述流程树配置文件存储至所述BMC数据库中。
可选地,所述流程树配置文件是通过如下步骤生成的:
根据目标厂商,获取所述目标厂商对应的固件升级流程,和所述目标厂商的厂商标识;
根据所述目标厂商对应的固件升级流程,配置得到所述流程树配置文件,使所述流程树配置文件中携带有所述目标厂商的厂商标识。
可选地,所述流程树配置文件包括流程节点,和每个所述流程节点的流程节点定义;
其中,所述流程节点定义至少包括该流程节点的节点位号,节点类型;
所述节点类型至少包括开始节点类型、结束节点类型、判断节点类型、读数据执行节点类型、写数据执行节点类型,等待节点类型。
可选地,解析所述流程树配置文件,得到本次升级的固件升级流程,包括:
根据所述流程节点的流程节点定义,生成该流程节点对应的执行函数;
根据所述流程节点的节点位号,确定所述流程节点的执行顺序;
根据所述流程节点的执行顺序和所述执行函数,得到所述本次升级的固件升级流程。
可选地,根据所述流程节点的执行顺序和所述执行函数,得到所述本次升级的固件升级流程,包括:
根据所述流程节点的执行顺序和所述执行函数生成动态链表:
将所述动态链表作为所述本次升级的固件升级流程,所述动态链表中节点的顺序表示所述固件升级流程的执行顺序,所述动态链表中的每个节点指示当前节点执行的操作。
可选地,所述固件升级文件包中还包括固件升级文件Hash签名key文件。
本发明实施例第二方面提供了一种固件升级文件包生成方法,包括:
接收固件升级请求,确定需要升级的目标固件和本次升级的厂商;
根据所述本次升级的厂商,获取所述目标固件的固件升级文件,以及厂商标识;
在所述目标固件的固件升级文件中添加所述厂商标识,得到固件升级文件包,并将所述固件升级文件包发送至所述目标固件的固件升级装置。
本发明实施例第三方面还提供了一种固件升级文件包生成方法,包括:
接收固件升级请求,确定需要升级的目标固件和本次升级的厂商;
根据所述本次升级的厂商,获取该厂商对应的固件升级流程,以及本次升级的固件升级文件;
根据所述该厂商对应的固件升级流程,配置得到流程树配置文件;
将所述流程树配置文件和所述固件升级文件进行打包,得到固件升级文件包,并将所述固件升级文件包发送至所述目标固件的固件升级装置。
可选地,将所述流程树配置文件和所述固件升级文件进行打包,得到固件升级文件包,包括:
根据所述流程树配置文件和所述固件升级文件,生成流程树配置文件Hash签名key文件,以及固件升级文件Hash签名key文件;
将所述流程树配置文件、所述固件升级文件、所述流程树配置文件Hash签名key文件,以及所述固件升级文件Hash签名key文件一并进行打包,得到所述固件升级文件包。
本发明实施例第四方面还提供了一种固件升级装置,包括:
接收模块,用于接收固件升级文件包,所述固件升级文件包中至少包括目标固件的固件升级文件;
配置文件获取模块,用于获取流程树配置文件,所述流程树配置文件表征对所述目标固件进行升级的升级流程;
配置文件解析模块,用于解析所述流程树配置文件,得到本次升级的固件升级流程;
升级执行模块,用于在接收开始升级信号后,中断所述目标固件的运行,按照所述本次升级的固件升级流程,利用所述目标固件的固件升级文件,对所述目标固件进行升级。
可选地,所述目标固件的固件升级文件中携带有厂商标识;
配置文件获取模块,包括:
第一配置文件获取子模块,用于根据所述厂商标识,查询BMC数据库中有携带相同厂商标识的流程树配置文件。
可选地,在第一次接收到所述流程树配置文件的情况下,所述方法包括:
校验模块,用于对所述流程树配置文件进行校验;
存储模块,用于在校验成功的情况下,将所述流程树配置文件存储至所述BMC数据库中。
可选地,还包括流程树配置文件生成模块,包括:
第一配置文件生成子模块,用于根据目标厂商,获取所述目标厂商对应的固件升级流程,和所述目标厂商的厂商标识;
第二配置文件生成子模块,用于根据所述目标厂商对应的固件升级流程,配置得到所述流程树配置文件,使所述流程树配置文件中携带有所述目标厂商的厂商标识。
可选地,所述流程树配置文件包括流程节点,和每个所述流程节点的流程节点定义;
其中,所述流程节点定义至少包括该流程节点的节点位号,节点类型;
所述节点类型至少包括开始节点类型、结束节点类型、判断节点类型、读数据执行节点类型、写数据执行节点类型,等待节点类型。
可选地,配置文件解析模块,包括:
第一配置文件解析子模块,用于根据所述流程节点的流程节点定义,生成该流程节点对应的执行函数;
第二配置文件解析子模块,用于根据所述流程节点的节点位号,确定所述流程节点的执行顺序;
第三配置文件解析子模块,用于根据所述流程节点的执行顺序和所述执行函数,得到所述本次升级的固件升级流程。
可选地,第三配置文件解析子模块,包括:
动态链表生成单元,用于根据所述流程节点的执行顺序和所述执行函数生成动态链表:
确定单元,用于将所述动态链表作为所述本次升级的固件升级流程,所述动态链表中节点的顺序表示所述固件升级流程的执行顺序,所述动态链表中的每个节点指示当前节点执行的操作。
可选地,所述固件升级文件包中还包括固件升级文件Hash签名key文件。
本发明实施例第五方面还提供了一种固件升级文件包生成装置,包括:
请求接收模块,用于接收固件升级请求,确定需要升级的目标固件和本次升级的厂商;
标识获取模块,用于根据所述本次升级的厂商,获取所述目标固件的固件升级文件,以及厂商标识;
文件包发送模块,用于在所述目标固件的固件升级文件中添加所述厂商标识,得到固件升级文件包,并将所述固件升级文件包发送至所述目标固件的固件升级装置。
本发明实施例第六方面还提供了另外一种固件升级文件包生成装置,包括:
接收模块,用于接收固件升级请求,确定需要升级的目标固件和本次升级的厂商;
文件获取模块,用于根据所述本次升级的厂商,获取该厂商对应的固件升级流程,以及本次升级的固件升级文件;
配置模块,用于根据所述该厂商对应的固件升级流程,配置得到流程树配置文件;
发送模块,用于将所述流程树配置文件和所述固件升级文件进行打包,得到固件升级文件包,并将所述固件升级文件包发送至所述目标固件的固件升级装置。
本发明实施例第七方面还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上的计算机程序,所述处理器执行所述计算机程序以实现本发明实施例第一方面所述的固件升级方法中的步骤或本发明实施例第二方面所述的固件升级文件包生成方法中的步骤。
本发明实施例第八方面还提供了一种计算机可读存储介质,其上存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现本发明实施例第一方面所述的固件升级方法中的步骤或本发明实施例第二方面所述的固件升级文件包生成方法中的步骤。
本发明实施例第九方面还提供了一种计算机程序产品,所述计算机程序产品在电子设备上运行时,使处理器执行时实现本发明实施例第一方面所述的固件升级方法中的步骤或本发明实施例第二方面所述的固件升级文件包生成方法中的步骤。
本发明实施例提供的一种固件升级方法,该方法应用于BMC,包括:包括:接收固件升级文件包,该固件升级文件包中至少包括目标固件的固件升级文件;获取流程树配置文件,该流程树配置文件表征对目标固件进行升级的升级流程;解析流程树配置文件,得到本次升级的固件升级流程;在接收到开始升级信号后,中断目标固件的运行,按照本次升级的固件升级流程,利用固件升级文件,对目标固件进行升级。
具体的有益效果如下:
(1)降低对BMC的影响。本发明通过解析流程树配置文件动态得到固件升级流程,完成固件升级,无需将升级流程固化在BMC中,避免了因为升级流程的改变导致BMC复杂化。
(2)提高固件升级效率。在固件升级流程发生改变时(或执行厂商更换后,需要对应的更换固件升级流程时),仅需要获取更新后的流程树配置文件,即可使BMC通过解析该流程树配置文件,得到更新的固件升级流程,按照该升级流程完成升级,不需要对BMC中的代码进行更改,提高了固件升级效率和安全性。
(3)本发明是在BMC完成固件升级的准备工作之后(即,完成对流程树配置文件的解析,得到了本次升级的固件升级流程后),再中断固件的运行,开始固件升级的。从而可以减少固件升级所需的时间,尽可能地降低对固件运行的影响。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种固件升级方法的步骤流程图;
图2是本发明实施例提供的一种利用固件升级文件包进行固件升级方法的步骤流程图;
图3是本发明实施例提供的一种固件升级文件包的组成示意图;
图4是本发明实施例提供的一种固件升级文件包生成方法的步骤流程图;
图5是本发明实施例提供的一种一种不需厂商标识的固件升级文件包生成方法的步骤流程图
图6是本发明实施例提供的一种固件升级装置的结构示意图;
图7是本发明实施例提供的一种固件升级文件包生成装置的结构示意图;
图8是本发明实施例提供的一种文件包生成装置的结构示意图;
图9是本发明实施例提供的一种电子设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种固件升级方法,应用于BMC,参照图1,图1为本发明实施例提供的一种固件升级方法的步骤流程图,如图1所示,所述方法包括:
步骤S101,接收固件升级文件包,所述固件升级文件包中至少包括目标固件的固件升级文件;
在需要对固件进行更新或升级时,相关的管理负责人员可以通过带外管理系统提供的操作界面进行操作,带外管理系统响应于用户的操作行为,可以向BMC(BaseboardManagement Controller,基板管理控制器)发送升级请求,使得BMC在接收升级请求后,通过解析该请求,确定出需要升级的目标固件,并得到固件升级文件包。BMC属于服务器管理体系中的核心组件,是嵌入在计算机(通常是服务器)主板上的专用微控制器,通过各种接口与主机内部的其他软硬件组件进行通信,负责管理系统管理软件和平台硬件之间的接口,同时负责执行对计算机中各个固件的升级。在本实施例中,BMC可以通过获取固件升级文件包,得到目标固件的固件升级文件,该目标固件可以为服务器主板上的VR固件。所述固件升级文件包为根据本次升级内容所生成的文件包,由此每次升级都会获取到不同的固件升级文件包。固件升级文件中包括了对目标固件的本次升级内容,例如包括了将VR固件从1.0版升级至2.0版所需要修改和新增的程式等,由此通过BMC对VR固件进行升级,实现对VR固件的优化,从而保障主板供电稳定,功耗最优。
在一种实施例中,所述固件升级文件包中还包括固件升级文件Hash签名key文件。
本实施例通过在固件升级文件包中加入固件升级文件Hash签名key文件,利用哈希算法进行签名和验签,实现了对固件升级文件的加密,从而保证该固件升级文件包在传输至BMC的过程中的信息安全,保证了升级的安全性。
步骤S102,获取流程树配置文件,所述流程树配置文件表征对所述目标固件进行升级的升级流程;
在本实施例中,所述流程树配置文件和所述固件升级文件可以是分开获取的,在分开获取流程树配置文件和固件升级文件的情况下,需要对文件设置相应的标识,使得BMC能够在解析流程树配置文件得到固件升级流程后,能够依据该标识找到对应的固件升级文件,从而将该固件升级文件的对应程式写入目标固件。其中,流程树配置文件表征了目标固件进行升级的固件升级流程,不同的固件厂商的固件升级流程会有所不同,所以,不同的升级厂商,对应的流程树配置文件会有所不同。
在一种实施例中,所述目标固件的固件升级文件中携带有厂商标识;
获取流程树配置文件,包括:
根据所述厂商标识,查询BMC数据库中有携带相同厂商标识的流程树配置文件。
在本实施例中,可以预先将流程树配置文件发送至BMC,并存储在BMC的数据库中,由于流程树配置文件与固件升级文件并非同步发送,而BMC数据库中可能同时存储有多个厂商的流程树配置文件,所以需要根据设置的厂商标识,查找到本次升级所需要的流程树配置文件。示例性的,本次对VR固件进行升级是由B厂商执行的,B厂商提供的固件升级文件携带有对应的厂商标识B,在BMC接收到该固件升级文件后,根据其中的厂商标识B查找到BMC数据库中携带有相同的厂商标识B的流程树配置文件,该文件表征的是厂商B进行VR固件升级的固件升级流程。
在一种实施例中,所述流程树配置文件是通过如下步骤生成的:
根据目标厂商,获取所述目标厂商对应的固件升级流程,和所述目标厂商的厂商标识;
根据所述目标厂商对应的固件升级流程,配置得到所述流程树配置文件,使所述流程树配置文件中携带有所述目标厂商的厂商标识。
对于固件升级来说,不同的厂商会有不同的固件升级流程。在实际应用过程中,在对固件进行维护和更新的持续时间长,很难长期由同一家厂商进行。所以每次新增一个厂商,对应的固件升级流程就会有所改变。除此之外,对于同一个厂商,也同样存在对固件升级流程进行更新或优化的情况。在本实施例中,具体的配置方法可以为常用的配置文件生成方法,在此不对其进行限制。并且,若该厂商的固件升级流程有更新,对应的流程树配置文件同样需要更新。本实施例根据目标厂商的固件升级流程生成流程树配置文件,并在该流程树配置文件中添加目标厂商的厂商标识,从而使得BMC能够通过该厂商标识查找到该流程树配置文件,然后,解析该文件直接得到升级流程,相对于现有的将升级流程固化在BMC中的升级方法,本实施例的固件升级方法更加灵活便捷,实现了固件升级的模块化、可配置化。
步骤S103,解析所述流程树配置文件,得到本次升级的固件升级流程;
在获取到对应的流程树配置文件后,通过解析流程树配置文件,得到本次升级的固件升级流程。在本实施例中,一个流程由一个或者多个行为过程组成,每个行为过程为完成一定业务功能的代码段,从而多个行为过程形成了一个流程树配置文件,类似于流程图的结构,采用XML格式存储,用于控制行为过程的执行与流程跳转。根据流程树配置文件分析得到本次升级的每个执行步骤以及每个步骤的执行顺序。本实施例中的对流程树配置文件的解析方式,可以为常用的对配置文件的解析方式,在此不对其进行限制。
步骤S104,在接收到开始升级信号后,中断所述目标固件的运行,按照所述本次升级的固件升级流程,利用所述目标固件的固件升级文件,对所述目标固件进行升级。
由于在进行固件升级的过程中,需要固件停止工作,甚至需要停止该目标固件相关的依赖设备的工作,例如对于VR固件而言,在进行升级时还需要停止服务器的工作,才能进行升级,从而避免在升级中途服务器宕机。为了尽可能地减少升级对固件以及相关设备运行的不利影响,本实施例提出,在完成升级的准备工作后(具体包括步骤S101-S103),在接收到开始升级信号后,再中断所述目标固件的运行,开始升级。由此,可以尽可能地减少固件升级所需的时间,减弱对固件运行的影响。其中,所述开始升级信号可以由用户手动触发,表示用户已经准备好暂停相关设备的运行,进入升级状态。在另一种情况下,可以由BMC监测服务器的运行状态,在目标固件对应的服务器发生断电或停机时,自动生成开始升级信号。由此,本实施例可以将固件升级文件和流程树配置文件预先存储在BMC,在检测到满足固件升级条件后(服务器停机),自动开始升级。
在本实施例中,按照该固件升级流程的步骤,利用固件升级文件的内容对目标固件进行升级。具体的,在目标固件为VR固件的情况下,可以预先将服务器主板上的VR固件的I2C(Inter-Integrated Circuit)总线与BMC相连接,根据搭建好的物理通信链路,将固件升级文件中的对应程式写入VR固件,或,依照固件升级文件中的内容对VR固件的参数进行修改,其中的I2C总线为两线式串行总线,用于连接微控制器及其外围设备由此,通过预先设置的升级流程配置文件,控制升级流程的执行,提高固件的服务质量。在一种实施例中,在完成对目标固件的升级后,可以将BMC中的固件升级文件包删除,以节省BMC的空间资源。
一般情况下,对固件进行升级,需要在BMC中固化升级流程,在获得升级文件后,BMC直接按照固化的升级流程,将目标程式写入固件,完成升级。本实施例提出的固件升级方法,通过BMC分别获取得到流程树配置文件与固件升级文件,使BMC解析得到本次升级的固件升级流程,从而可以依据该固件升级流程对目标固件进行升级。由此,可以灵活地根据厂商的不同,固件升级流程的不同,获取不同的流程树配置文件,避免在BMC中固化固件升级流程,在新增固件厂商或升级流程需要更新时,只需要制作该升级流程对应的流程树配置文件即可,不用对BMC进行代码修改,降低了BMC的信息安全风险,提高其服务质量。
在一种实施例中,对所述目标固件进行升级,包括:
在对所述目标固件进行升级的过程中,同步生成过程文件,所述过程文件记录每步流程的执行函数和执行结果。
在本实施例中,在对目标固件进行升级的过程中,可以同步生成过程文件,又可以成为升级日志。每完成一步升级流程,对应地,在过程文件中记录下该升级流程的执行操作以及返回的执行结果。由此,若升级过程中出现问题,导致升级失败,可以通过查询该过程文件,准确定位出错环节,便于查找失败原因。
在一种实施例中,对所述目标固件进行升级,包括:
对所述目标固件的原有数据进行备份,得到原始固件数据;
在对所述目标固件进行升级过程中,升级失败的情况下,根据所述原始固件数据,将所述目标固件恢复至本次升级前的状态。
对于固件升级来说,失败的可能性较高,为了避免升级失败,导致固件长时间停止运行,本实施例在升级前对目标固件的原有数据(例如固件参数等)进行备份,以便于在固件升级失败后,能够根据备份数据,快速地将目标固件恢复至本次升级之前的版本,即使升级失败了,也不影响固件的运行,可以在查找到失败原因后,重新开始升级。
在一种实施例中,在第一次接收到所述流程树配置文件的情况下,所述方法包括:
对所述流程树配置文件进行校验;
在校验成功的情况下,将所述流程树配置文件存储至所述BMC数据库中。
在本实施例中,由于不同厂商的固件升级流程不同,对应的流程树配置文件自然也不相同。所以,每增加一个厂商,则需要将该厂商对应的流程树配置文件上传至BMC。BMC在第一次接受到流程树配置文件的情况下,在预先将流程树配置文件存储到BMC的数据库之前,需要对该流程树配置文件进行校验,在校验成功后,再将其存储至BMC数据库中的对应位置。具体的,校验项目可以包括,该流程树配置文件是否携带有厂商标识,是否格式正确,是否可以解析得到固件升级流程。进一步地,在校验该流程树配置文件的厂商标识的过程中,检验BMC数据库中是否已经存在携带该厂商标识的流程树配置文件,在不存在携带相同厂商标识的流程树配置文件的情况下,判断校验成功,从而避免针对同一厂商,存储多个流程树配置文件。
本实施例还提出了另一种固件升级方法,参照图2,图2示出了一种利用固件升级文件包进行固件升级方法的步骤流程图,如图2所示,所述方法包括:
步骤S’101,接收固件升级文件包,所述固件升级文件包至少包括流程树配置文件和固件升级文件;
在本实施例中,所述流程树配置文件和所述固件升级文件,可以在一个文件包中,一并被发送给BMC,由此流程树配置文件与固件升级文件为关联关系,不需要携带任何的厂商标识。其中,流程树配置文件表征了本次升级的固件升级流程。在进行升级之前,需要根据升级请求确定本次升级执行的厂商,从而确定出本次升级的固件升级流程,进而根据该固件升级流程来配置流程树配置文件。由此,在每次升级前,需要根据厂商的不同,配置出不同的流程树配置文件。进一步的,在每次升级前,确定了本次升级的执行厂商后,还需要确定该厂商的固件升级流程是否为最新版本。对于同一执行厂商而言,一般情况下会沿用同一固件升级流程,但少数情况下,会出现对固件升级流程进行改进或优化的情况,所以需要进一步确定获取到的固件升级流程是否为该厂商最新的固件升级流程。
在一种实施例中,所述固件升级文件包中还包括流程树配置文件Hash签名key文件,以及固件升级文件Hash签名key文件。
参照图3,图3示出了一种固件升级文件包的组成示意图,如图3所示,本实施例通过在固件升级文件包中加入流程树配置文件Hash签名key文件,以及固件升级文件Hash签名key文件,利用哈希算法进行签名和验签,使得上述两份流程树配置文件Hash签名key文件,以及固件升级文件Hash签名key文件相当于公钥和密钥,实现了对流程树配置文件和固件升级文件的加密,从而保证该固件升级文件包在传输至BMC的过程中的信息安全,保证了升级的安全性。
步骤S’102,解析所述流程树配置文件,得到本次升级的固件升级流程;
步骤S’103,根据所述本次升级的固件升级流程和所述固件升级文件,对目标固件进行升级。
一般情况下,对固件进行升级,需要在BMC中固化升级流程,在获得升级文件后,BMC直接按照固化的升级流程,将目标程式写入固件,完成升级。本实施例提出的固件升级方法,通过将流程树配置文件与固件升级文件一并发送给BMC,使BMC解析得到本次升级的固件升级流程,从而可以直接依据该固件升级流程对目标固件进行升级。由此,可以灵活地根据厂商的不同,固件升级流程的不同,生成不同的固件升级文件包,避免在BMC中固化固件升级流程,在新增固件厂商或升级流程需要更新时,只需要制作该升级流程对应的流程树配置文件即可,不用对BMC进行代码修改,降低了BMC的信息安全风险,提高其服务质量。
在一种实施例中,所述流程树配置文件包括流程节点,和每个所述流程节点的流程节点定义;
其中,所述流程节点定义至少包括该流程节点的节点位号,节点类型;
所述节点类型至少包括开始节点类型、结束节点类型、判断节点类型、读数据执行节点类型、写数据执行节点类型,等待节点类型。
在本实施例中,该流程树配置文件中包括了多个流程节点,以及每个流程节点的流程节点定义。流程节点定义中包括了针对该流程节点的具体信息,用于定义该流程节点的具体执行内容,包括该流程节点的节点位号,节点类型等。由此根据该流程节点的节点位号,可以确定该流程节点在所有流程节点中的位置;根据该流程节点的节点类型可以知道该流程节点的类型。具体的,不同节点类型对应的不同的节点执行函数,开始节点表示一个行为或一组行为的开始,结束节点表示一个行为或一组行为的结束,或整个流程的结束,在流程跳转到该结束节点时,表示该升级流程的完成。所述流程节点定义中还包括部分流程节点的节点操作数据参数,例如所述等待节点的等待时间参数,用于表示在该流程节点需要等待的时长;读数据执行节点的读取操作参数,其中包括了读取数据的地址、读取数据的长度、是否支持PEC校验;写入数据执行节点的写入操作参数。示例性的,在BMC解析流程树配置文件,得到固件升级流程时,针对某一流程节点,根据该流程节点的流程节点定义分析得到,该流程节点的节点位号为0007,该流程节点的节点类型为等待节点类型,以及该流程节点的节点操作数据参数中包括了等待时间参数为1S,由此可以生成该流程节点对应的执行函数,使得在当前执行节点为0007流程节点时,执行等待操作,时长为1S。此外,所述流程节点定义中还包括判断节点的节点返回值,由此判断节点通过判断节点返回值标识是否满足判断条件。判断节点表示需要对返回结果进行判断,根据不同的结果执行不同的下一流程。示例性的,可以根据获取的返回值是否达到了预设阈值,从而选择是否执行返回流程。根据判断节点的节点定义,还可以获取到,对于该判断节点,在返回0时的下一节点位号,以及在返回1时的下一节点位号。
此外,多个流程节点按照节点位号的顺序进行组合,得到流程树节点,一个流程树节点表示一个或多个行为。每个流程树节点有对应的流程树节点位号,根据流程树节点位号,可以获取到所有流程树节点的顺序。示例性的,存在多个流程节点1-10,将节点位号1-3的三个流程节点按照顺序设置为流程树节点A,将节点位号4-6的三个流程节点按照顺序设置为流程树节点B,将节点位号7-10的三个流程节点按照顺序设置为流程树节点C。该流程树节点具有其独立的流程树节点位号,根据A、B、C这三个流程树节点位号,将其按照A-B-C的顺序排列,可以作为一个小流程树,与其他小流程树进行组合,最终得到一个完整的流程树。即,由流程树节点排列成的小流程树,可以组合得到大流程树,最终组合得到完整的流程树结构,该流程树定义了流程节点的执行顺序。当固件升级流程需要进行部分更新时,可以通过更新流程树配置文件中的对应部分流程节点或流程树节点,完成对流程树配置文件的更新,缩小修改范围并降低行为风险,降低了固件开发难度和维护成本。
在一种实施例中,解析所述流程树配置文件,得到本次升级的固件升级流程,包括:
根据所述流程节点的流程节点定义,生成该流程节点对应的执行函数;
根据所述流程节点的节点位号,确定所述流程节点的执行顺序;
根据所述流程节点的执行顺序和所述执行函数,得到所述本次升级的固件升级流程。
在本实施例中,生成固件升级流程可以理解为根据流程树配置文件创建一个流程树,该流程树采用树形层级结构,其中包括该流程树配置文件中的所有节点信息。具体的,在对流程树配置文件进行解析时,通过分析流程节点定义,确定出该流程节点的类型、节点操作数据参数、从而生成该流程节点对应的执行函数,示例性的,在BMC解析流程树配置文件,得到固件升级流程时,针对某一流程节点,根据该流程节点的流程节点定义分析得到,该流程节点的节点位号为0020,该流程节点的节点类型为读数据执行节点类型,以及该流程节点的节点操作数据参数中包括了节点操作数据参数为读取操作参数,其中包括了读取数据的地址A、读取数据的长度为10个字节、以及支持PEC校验;由此,可以生成该流程节点0020对应的执行函数,使得在当前执行节点为0020流程节点时,向地址A读取10个字节,并支持PEC校验的操作。确定了单个节点的执行函数后,还可以根据该流程节点的节点位号,确定出该流程节点在整个流程树中的位置,即确定出该流程节点的执行顺序,即每个流程节点的先后顺序。具体的,在确定升级流程的当前执行节点后,调用该当前执行节点对应的执行函数以执行该行为过程,获取该行为过程的执行结果,然后按照节点位号顺序进入下一执行节点。进一步地,还可以根据每个流程树节点的流程树节点位号,确定出流程树节点的执行顺序。具体的,根据节点位号顺序确定下一执行节点,包括根据节点位号确定出0010号流程节点后是0011号流程节点,或,根据流程节点定义知道,0011号流程节点为判断节点,下一执行节点有两个,分别为0012号流程节点和0013号流程节点,由0011号流程节点根据返回结果判断,下一执行节点为0012号或0013号流程节点。在此过程中,所述判断节点的流程节点定义中的节点操作数据参数中包含判断参数,示例性的,该0011号流程节点为判断节点,根据节点定义得到该节点对应的执行函数为“返回结果是否大于0”,该判断节点根据返回结果,来确定下一执行节点为0012号或0013号流程节点,即,在返回结果大于0的情况下,确定下一执行节点为0012号流程节点,在返回结果小于等于0的情况下,确定下一执行节点为0013号流程节点。
由此,根据每个流程节点的执行顺序和执行函数,得到本次升级的固件升级流程。使BMC能够直接按照得到的固件升级流程进行升级,避免了在BMC中固化升级流程,在升级流程变更后,可以通过获取更新的固件升级文件包,解析得到新的固件升级流程,从而实现灵活地根据不同的固件升级流程对固件进行升级,且避免了对BMC的代码进行更改,简化了固件升级方法,提高升级效率。
在一种实施例中,根据所述流程节点的执行顺序和所述执行函数,得到所述本次升级的固件升级流程,包括:
根据所述流程节点的执行顺序和所述执行函数生成动态链表:
将所述动态链表作为所述本次升级的固件升级流程,所述动态链表中节点的顺序表示所述固件升级流程的执行顺序,所述动态链表中的每个节点指示当前节点执行的操作。
动态链表表示链式存储结构,是由多个节点链接形成的链表式结构,动态链表中的每个节点包含数据域和指针域,数据域用于存储数据,指针域用于指向下一存储节点的地址。在本实施例中,根据解析得到的每个流程节点的执行顺序确定出该流程节点在动态链表中的位置,根据每个流程节点的执行函数确定出该流程节点对应的执行操作,即,确定出在动态链表中各个节点的顺序,以及每个节点对应的执行操作。该动态链表的顺序则表示了升级流程的执行顺序,即本次升级的固件升级流程。其中,动态链表中每个节点指示当前节点执行的操作,该节点的下一个节点表示执行完当前节点后下面要执行的节点。对于判断节点来说,判断节点的下一个节点一般有两个,需要根据当前判断节点的执行结果确定出下一个节点的执行顺序。由此,本实施例根据解析的流程树配置文件,生成动态链表,将其作为本次升级的固件升级流程,进行升级,从而实现了将升级方法和升级文件绑定的方式,解决了升级方法差异导致的BMC复杂化问题。
下面以一个具体的示例对上述实施例所提及的固件升级方法进行说明:
步骤1,BMC获取固件升级文件包。其中,BMC可以先获取到固件升级请求,确定出目标升级固件为服务器主板上的VR固件,再根据请求获取VR固件的固件升级文件包。解析该文件包,得到对应的流程树配置文件和固件升级文件。在此过程中,该固件升级文件包是加密传输至BMC的,则BMC需要先对其进行解密,才能得到文件包中的流程树配置文件和固件升级文件。
步骤2,BMC对流程树配置文件进行解析,得到本次升级的固件升级流程。具体的,根据流程树配置文件中的流程节点和每个流程节点定义,确定出每个流程节点的执行函数和执行顺序,再根据执行函数和执行顺序,生成一个动态链表,将该动态链表作为本次升级的固件升级流程。示例性的,根据流程树配置文件中的流程节点定义,确定该流程节点的类型为判断节点,并确定该流程节点的节点位号为0015,并根据该流程节点定义生成对应的执行函数,以执行判断操作。使得该判断节点根据返回结果,确定下一执行节点。当节点执行至结束节点时,表示该流程结束,或,整个升级流程的结束,本次升级完成。
步骤3,通过预先建立的目标VR固件的I2C与BMC连接的物理通信通道,按照固件升级流程,将固件升级文件的对应程式写入目标VR固件,进行升级。
步骤4,完成本次升级任务后,将BMC中的固件升级文件包删除,断开与目标VR固件的I2C的物理连接。
由此,本示例可以实现在对目标固件进行升级时,通过生成固件升级文件包并发送至BMC,使BMC通过解析文件包中的流程树配置文件,得到本次升级的固件升级流程。由此如果执行厂商不同,可以生成不同的固件升级文件包,这样BMC就可以获取到对应的流程树配置文件,通过解析得到固件升级流程,不必在BMC中固化升级流程。由此,可以灵活地根据不同的固件升级流程对固件进行升级,且避免了对BMC的代码进行更改,简化了固件升级方法,提高升级效率。
本实施例还提供了一种固件升级文件包生成方法,参照图4,图4示出了一种固件升级文件包生成方法的步骤流程图,如图4所示,所述方法包括:
步骤S201,接收固件升级请求,确定需要升级的目标固件和本次升级的厂商;
步骤S202,根据所述本次升级的厂商,获取所述目标固件的固件升级文件,以及厂商标识;
步骤S203,在所述目标固件的固件升级文件中添加所述厂商标识,得到固件升级文件包,并将所述固件升级文件包发送至所述目标固件的固件升级装置。
本实施例还提供了另外一种不需厂商标识的固件升级文件包生成方法,参照图5,图5示出了一种不需厂商标识的固件升级文件包生成方法的步骤流程图,如图5所示,所述方法包括包括:
步骤S’201,接收固件升级请求,确定需要升级的目标固件和本次升级的厂商;
步骤S’202,根据所述本次升级的厂商,获取该厂商对应的固件升级流程,以及本次升级的固件升级文件;
步骤S’203,根据所述该厂商对应的固件升级流程,配置得到流程树配置文件;
步骤S’204,将所述流程树配置文件和所述固件升级文件进行打包,得到固件升级文件包,并将所述固件升级文件包发送至所述目标固件的固件升级装置。
在一种实施例中,所述流程树配置文件包括流程节点,和每个所述流程节点的流程节点定义;
其中,所述流程节点定义至少包括该流程节点的节点位号,节点类型;
所述节点类型至少包括开始节点类型、结束节点类型、判断节点类型、读数据执行节点类型、写数据执行节点类型,等待节点类型。
在一种实施例中,将所述流程树配置文件和所述固件升级文件进行打包,得到固件升级文件包,包括:
根据所述流程树配置文件和所述固件升级文件,生成流程树配置文件Hash签名key文件,以及固件升级文件Hash签名key文件;
将所述流程树配置文件、所述固件升级文件、所述流程树配置文件Hash签名key文件,以及所述固件升级文件Hash签名key文件一并进行打包,得到所述固件升级文件包。
下面以一个具体的示例对上述实施例所提及的固件升级文件包方法以及固件升级方法,作为一个完整的技术方案进行说明:
步骤1’,用户触发升级请求,确定本次升级的执行厂商为厂商B,需要升级的目标固件为服务器主板上的VR固件;
步骤2’,获取厂商B的VR固件升级流程,根据该流程配置流程树配置文件,该流程树配置文件中包括多个流程节点,以及每个流程节点的流程节点定义。并且,从厂商B处获取到本次VR固件升级的固件升级文件。
步骤3’,根据流程树配置文件生成流程树配置文件Hash签名key文件,根据固件升级文件生成固件升级文件Hash签名key文件,将上述文件一并打包成固件升级文件包,发送至BMC。
步骤4’,BMC获取固件升级文件包。BMC解析该文件包,得到对应的流程树配置文件和固件升级文件,并且可以得到本次升级的目标固件。在此过程中,该固件升级文件包是利用流程树配置文件Hash签名key文件和固件升级文件Hash签名key文件进行加密传输至BMC的,则BMC需要先对其进行解密,才能得到文件包中的流程树配置文件和固件升级文件。
步骤5’,BMC对流程树配置文件进行解析,得到本次升级的固件升级流程。具体的,根据流程树配置文件中的流程节点和每个流程节点定义,确定出每个流程节点的执行函数和执行顺序,再根据执行函数和执行顺序,生成一个动态链表,将该动态链表作为本次升级的固件升级流程。
步骤6’,通过预先建立的目标VR固件的I2C与BMC连接的物理通信通道,按照固件升级流程,将固件升级文件的对应程式写入目标VR固件,进行升级。
步骤7’,完成本次升级任务后,将BMC中的固件升级文件包删除,断开与目标VR固件的I2C的物理连接。
由此,本示例根据厂商的不同,获取该厂商对应的固件升级流程,从而进行配置得到对应的流程树配置文件。然后,将其与固件升级文件进行打包,加密传输至BMC,BMC则可以通过解析流程树匹配置文件获取到本次升级的固件升级流程,最后按照该升级流程和固件升级文件,对目标固件完成本次升级。由此,在执行厂商发生变更后,只需要获取变更后厂商的固件升级流程,再生成对应的流程树配置文件,将其与升级文件一并发送至BMC,就可以使BMC通过解析得到新的固件升级流程,然后按照该新的固件升级流程完成本次升级,避免了对BMC的代码进行修改,将新的升级流程固化到BMC中,降低了升级流程差异导致的BMC复杂化。
本实施例还提供了一种固件升级装置,参照图6,图6示出了一种固件升级装置的结构示意图,如图6所示,所述装置包括:
接收模块,用于接收固件升级文件包,所述固件升级文件包中至少包括目标固件的固件升级文件;
配置文件获取模块,用于获取流程树配置文件,所述流程树配置文件表征对所述目标固件进行升级的升级流程;
配置文件解析模块,用于解析所述流程树配置文件,得到本次升级的固件升级流程;
升级执行模块,用于在接收开始升级信号后,中断所述目标固件的运行,按照所述本次升级的固件升级流程,利用所述目标固件的固件升级文件,对所述目标固件进行升级。
可选地,所述目标固件的固件升级文件中携带有厂商标识;
配置文件获取模块,包括:
第一配置文件获取子模块,用于根据所述厂商标识,查询BMC数据库中有携带相同厂商标识的流程树配置文件。
可选地,在第一次接收到所述流程树配置文件的情况下,所述方法包括:
校验模块,用于对所述流程树配置文件进行校验;
存储模块,用于在校验成功的情况下,将所述流程树配置文件存储至所述BMC数据库中。
可选地,还包括流程树配置文件生成模块,包括:
第一配置文件生成子模块,用于根据目标厂商,获取所述目标厂商对应的固件升级流程,和所述目标厂商的厂商标识;
第二配置文件生成子模块,用于根据所述目标厂商对应的固件升级流程,配置得到所述流程树配置文件,使所述流程树配置文件中携带有所述目标厂商的厂商标识。
可选地,所述流程树配置文件包括流程节点,和每个所述流程节点的流程节点定义;
其中,所述流程节点定义至少包括该流程节点的节点位号,节点类型;
所述节点类型至少包括开始节点类型、结束节点类型、判断节点类型、读数据执行节点类型、写数据执行节点类型,等待节点类型。
可选地,配置文件解析模块,包括:
第一配置文件解析子模块,用于根据所述流程节点的流程节点定义,生成该流程节点对应的执行函数;
第二配置文件解析子模块,用于根据所述流程节点的节点位号,确定所述流程节点的执行顺序;
第三配置文件解析子模块,用于根据所述流程节点的执行顺序和所述执行函数,得到所述本次升级的固件升级流程。
可选地,第三配置文件解析子模块,包括:
动态链表生成单元,用于根据所述流程节点的执行顺序和所述执行函数生成动态链表:
确定单元,用于将所述动态链表作为所述本次升级的固件升级流程,所述动态链表中节点的顺序表示所述固件升级流程的执行顺序,所述动态链表中的每个节点指示当前节点执行的操作。
可选地,所述固件升级文件包中还包括固件升级文件Hash签名key文件。
本发明实施例还提供了一种固件升级文件包生成装置,参照图7,图7示出了一种固件升级文件包生成装置的结构示意图,如图7所示,包括:
请求接收模块,用于接收固件升级请求,确定需要升级的目标固件和本次升级的厂商;
标识获取模块,用于根据所述本次升级的厂商,获取所述目标固件的固件升级文件,以及厂商标识;
文件包发送模块,用于在所述目标固件的固件升级文件中添加所述厂商标识,得到固件升级文件包,并将所述固件升级文件包发送至所述目标固件的固件升级装置。
本发明实施例还提供了另外一种文件包生成装置,参照图8,图8示出了一种文件包生成装置的结构示意图,如图8所示包括:
接收模块,用于接收固件升级请求,确定需要升级的目标固件和本次升级的厂商;
文件获取模块,用于根据所述本次升级的厂商,获取该厂商对应的固件升级流程,以及本次升级的固件升级文件;
配置模块,用于根据所述该厂商对应的固件升级流程,配置得到流程树配置文件;
发送模块,用于将所述流程树配置文件和所述固件升级文件进行打包,得到固件升级文件包,并将所述固件升级文件包发送至所述目标固件的固件升级装置。
本发明实施例还提供了一种电子设备,参照图9,图9是本申请实施例提出的电子设备的示意图。如图9所示,电子设备100包括:存储器110和处理器120,存储器110与处理器120之间通过总线通信连接,存储器110中存储有计算机程序,该计算机程序可在处理器120上运行,进而实现本发明实施例公开的一种固件升级方法中的步骤或一种固件升级文件包生成方法中的步骤。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现如本发明实施例公开的一种固件升级方法中的步骤或一种固件升级文件包生成方法中的步骤。
本发明实施例还提供了一种计算机程序产品,所述计算机程序产品在电子设备上运行时,使处理器执行时实现本发明实施例公开的一种固件升级方法中的步骤或一种固件升级文件包生成方法中的步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本发明实施例是参照根据本发明实施例的方法、装置、电子设备和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种固件升级方法、装置、设备、介质和产品,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (17)
1.一种固件升级方法,其特征在于,应用于BMC,包括:
接收固件升级文件包,所述固件升级文件包中至少包括目标固件的固件升级文件;
获取流程树配置文件,所述流程树配置文件表征对所述目标固件进行升级的升级流程;
解析所述流程树配置文件,得到本次升级的固件升级流程;
在接收开始升级信号后,中断所述目标固件的运行,按照所述本次升级的固件升级流程,利用所述目标固件的固件升级文件,对所述目标固件进行升级。
2.根据权利要求1所述的固件升级方法,其特征在于,所述目标固件的固件升级文件中携带有厂商标识;
获取流程树配置文件,包括:
根据所述厂商标识,查询BMC数据库中有携带相同厂商标识的流程树配置文件。
3.根据权利要求1所述的固件升级方法,其特征在于,在第一次接收到所述流程树配置文件的情况下,所述方法包括:
对所述流程树配置文件进行校验;
在校验成功的情况下,将所述流程树配置文件存储至所述BMC数据库中。
4.根据权利要求1所述的固件升级方法,其特征在于,所述流程树配置文件是通过如下步骤生成的:
根据目标厂商,获取所述目标厂商对应的固件升级流程,和所述目标厂商的厂商标识;
根据所述目标厂商对应的固件升级流程,配置得到所述流程树配置文件,使所述流程树配置文件中携带有所述目标厂商的厂商标识。
5.根据权利要求1所述的固件升级方法,其特征在于,所述流程树配置文件包括流程节点,和每个所述流程节点的流程节点定义;
其中,所述流程节点定义至少包括该流程节点的节点位号,节点类型;
所述节点类型至少包括开始节点类型、结束节点类型、判断节点类型、读数据执行节点类型、写数据执行节点类型,等待节点类型。
6.根据权利要求5所述的固件升级方法,其特征在于,解析所述流程树配置文件,得到本次升级的固件升级流程,包括:
根据所述流程节点的流程节点定义,生成该流程节点对应的执行函数;
根据所述流程节点的节点位号,确定所述流程节点的执行顺序;
根据所述流程节点的执行顺序和所述执行函数,得到所述本次升级的固件升级流程。
7.根据权利要求6所述的固件升级方法,其特征在于,根据所述流程节点的执行顺序和所述执行函数,得到所述本次升级的固件升级流程,包括:
根据所述流程节点的执行顺序和所述执行函数生成动态链表:
将所述动态链表作为所述本次升级的固件升级流程,所述动态链表中节点的顺序表示所述固件升级流程的执行顺序,所述动态链表中的每个节点指示当前节点执行的操作。
8.权利要求1所述的固件升级方法,其特征在于,所述固件升级文件包中还包括固件升级文件Hash签名key文件。
9.一种固件升级文件包生成方法,其特征在于,包括:
接收固件升级请求,确定需要升级的目标固件和本次升级的厂商;
根据所述本次升级的厂商,获取所述目标固件的固件升级文件,以及厂商标识;
在所述目标固件的固件升级文件中添加所述厂商标识,得到固件升级文件包,并将所述固件升级文件包发送至所述目标固件的固件升级装置。
10.一种固件升级文件包生成方法,其特征在于,包括:
接收固件升级请求,确定需要升级的目标固件和本次升级的厂商;
根据所述本次升级的厂商,获取该厂商对应的固件升级流程,以及本次升级的固件升级文件;
根据所述该厂商对应的固件升级流程,配置得到流程树配置文件;
将所述流程树配置文件和所述固件升级文件进行打包,得到固件升级文件包,并将所述固件升级文件包发送至所述目标固件的固件升级装置。
11.根据权利要求10所述的固件升级文件包生成方法,其特征在于,将所述流程树配置文件和所述固件升级文件进行打包,得到固件升级文件包,包括:
根据所述流程树配置文件和所述固件升级文件,生成流程树配置文件Hash签名key文件,以及固件升级文件Hash签名key文件;
将所述流程树配置文件、所述固件升级文件、所述流程树配置文件Hash签名key文件,以及所述固件升级文件Hash签名key文件一并进行打包,得到所述固件升级文件包。
12.一种固件升级装置,其特征在于,包括:
接收模块,用于接收固件升级文件包,所述固件升级文件包中至少包括目标固件的固件升级文件;
配置文件获取模块,用于获取流程树配置文件,所述流程树配置文件表征对所述目标固件进行升级的升级流程;
配置文件解析模块,用于解析所述流程树配置文件,得到本次升级的固件升级流程;
升级执行模块,用于在接收开始升级信号后,中断所述目标固件的运行,按照所述本次升级的固件升级流程,利用所述目标固件的固件升级文件,对所述目标固件进行升级。
13.一种固件升级文件包生成装置,其特征在于,包括:
请求接收模块,用于接收固件升级请求,确定需要升级的目标固件和本次升级的厂商;
标识获取模块,用于根据所述本次升级的厂商,获取所述目标固件的固件升级文件,以及厂商标识;
文件包发送模块,用于在所述目标固件的固件升级文件中添加所述厂商标识,得到固件升级文件包,并将所述固件升级文件包发送至所述目标固件的固件升级装置。
14.一种固件升级文件包生成装置,其特征在于,包括:
接收模块,用于接收固件升级请求,确定需要升级的目标固件和本次升级的厂商;
文件获取模块,用于根据所述本次升级的厂商,获取该厂商对应的固件升级流程,以及本次升级的固件升级文件;
配置模块,用于根据所述该厂商对应的固件升级流程,配置得到流程树配置文件;
发送模块,用于将所述流程树配置文件和所述固件升级文件进行打包,得到固件升级文件包,并将所述固件升级文件包发送至所述目标固件的固件升级装置。
15.一种电子设备,包括存储器、处理器及存储在所述存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-8中任一项所述的固件升级方法中的步骤或权利要求9或10、11中任一项所述的固件升级文件包生成方法中的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1-8中任一项所述的固件升级方法中的步骤或权利要求9或10、11任一项所述的固件升级文件包生成方法中的步骤。
17.一种计算机程序产品,其特征在于,所述计算机程序产品在电子设备上运行时,使处理器执行时实现权利要求1-8中任一项所述的固件升级方法中的步骤或权利要求9或10、11中任一项所述的固件升级文件包生成方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211208343.8A CN115495129A (zh) | 2022-09-30 | 2022-09-30 | 一种固件升级方法、装置、设备、介质和产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211208343.8A CN115495129A (zh) | 2022-09-30 | 2022-09-30 | 一种固件升级方法、装置、设备、介质和产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115495129A true CN115495129A (zh) | 2022-12-20 |
Family
ID=84472178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211208343.8A Pending CN115495129A (zh) | 2022-09-30 | 2022-09-30 | 一种固件升级方法、装置、设备、介质和产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115495129A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117130627A (zh) * | 2023-02-28 | 2023-11-28 | 荣耀终端有限公司 | 配件升级方法及电子设备 |
-
2022
- 2022-09-30 CN CN202211208343.8A patent/CN115495129A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117130627A (zh) * | 2023-02-28 | 2023-11-28 | 荣耀终端有限公司 | 配件升级方法及电子设备 |
CN117130627B (zh) * | 2023-02-28 | 2024-05-17 | 荣耀终端有限公司 | 配件升级方法及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111538517B (zh) | 一种服务器固件升级方法、系统及电子设备和存储介质 | |
CN108509215B (zh) | 一种系统软件的更换方法、装置、终端设备及存储介质 | |
CN110837388B (zh) | 机器人的软件升级方法、升级服务器、机器人及存储介质 | |
KR102141287B1 (ko) | Autosar 기반 차량 소프트웨어의 결함 테스트 방법 및 결함 테스트 시스템 | |
CN110784348A (zh) | 一种固件升级方法、装置、电子设备及存储介质 | |
CN111813428A (zh) | 终端固件的升级方法、装置、电子设备及存储介质 | |
CN112015447B (zh) | 电子设备的系统更新方法及装置、电子设备及存储介质 | |
CN114995860B (zh) | 图形处理器固件升级的方法和图形处理器 | |
CN115495129A (zh) | 一种固件升级方法、装置、设备、介质和产品 | |
CN112905230A (zh) | 应用程序的管理方法、装置、终端设备和存储介质 | |
CN104133743B (zh) | 一种将文件烧录到emmc芯片的方法及装置 | |
US20050108704A1 (en) | Software distribution application supporting verification of external installation programs | |
CN105045671A (zh) | 一种智能终端的系统升级方法及装置 | |
WO2016082450A1 (zh) | 一种用户终端的升级方法和用户终端 | |
CN111984287A (zh) | 设备升级方法及系统 | |
CN116483416A (zh) | 固件在线升级方法、服务器及存储介质 | |
CN106708541A (zh) | 版本升级处理方法及装置 | |
CN114879977A (zh) | 应用部署方法、装置及存储介质 | |
GB2532076A (en) | Backup method, pre-testing method for environment updating and system thereof | |
CN114489711A (zh) | 终端升级方法、装置及存储介质 | |
CN113467801A (zh) | 一种bmc固件应用更新方法、bmc、系统及存储介质 | |
CN116048561A (zh) | 存储卡的固件升级方法、计算机设备及可读存储介质 | |
CN111045710A (zh) | 一种基于IPMI命令的SAS-Expander固件升级的方法、设备及介质 | |
CN110597536A (zh) | 一种软件升级方法、系统及终端设备 | |
WO2024000535A1 (zh) | 分区表更新方法、装置、电子设备及存储介质 |
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 |