掌桥专利:专业的专利平台
掌桥专利
首页

一种带外升级BIOS的方法、装置、设备及介质

文献发布时间:2023-06-19 11:42:32


一种带外升级BIOS的方法、装置、设备及介质

技术领域

本申请涉及服务器技术领域,特别涉及一种带外升级BIOS的方法、装置、设备及介质。

背景技术

服务器在运行过程中,因为应用需求变化或修复固件漏洞的需要,升级BIOS(即Basic Input Output System,基本输入输出系统)固件的需求,此时服务器正在提供服务,而升级BIOS固件需要重启后才能生效,重启这段时间属于停机时间(Down Time)。Downtime的长短严重影响服务器的可用性和可服务性,快速完成BIOS固件升级是一个很重要的需求和指标。服务器交付运行后,在数据中心运行,管理员一般是通过网络连接BMC(即Baseboard Management Controller,基板管理控制器),通过BMC来管理和设置服务器,实现带外管理。

目前,现有的带外升级BIOS的方法通常是,上次开机BIOS将当前设置生成当前设置文件发送给BMC,升级BIOS前,BMC先根据当前设置文件生成未来设置文件,然后升级BIOS。开机后,BIOS从BMC读取未来设置文件,然后解析未来设置文件,将设置写入BIOS的NVRAM(即Non-Volatile Random Access Memory,非易失性随机访问存储器),并删除未来设置文件,重启生效。开机后再将将当前设置生成当前设置文件发送给BMC,做设置同步。升级BIOS后,BIOS还需要生成设置属性文件发送给BMC,设置属性文件很大,生成和发送的时间都很长。缺点是:BIOS开机时生成当前设置文件耗时较长;BIOS将当前设置文件发送给BMC的时间耗时较长,BIOS从BMC读取设置文件耗时较长;BIOS解析设置文件并将BIOS设置写入到BIOS的NVRAM中耗时较长;设置完成后重启生效,重启过程耗时较长;BIOS重新开机后要再次生成当前设置配置文件,同步给BMC,耗时较长;BIOS生成和发送设置属性文件给BMC需要很长时间。导致停机时间过长,严重影响服务器的可用性和可服务性。

发明内容

有鉴于此,本申请的目的在于提供一种带外升级BIOS的方法、装置、设备及介质,能够降低BIOS升级的时间开销,从而提升用户体验。其具体方案如下:

第一方面,本申请公开了一种带外升级BIOS的方法,应用于基板管理控制器,包括:

通过网络获取待升级BIOS固件;

分别从旧BIOS固件的旧NVRAM固件卷以及旧用户固件卷中获取旧变量以及旧变量结构体;

从所述待升级BIOS固件的新用户固件卷中获取新变量结构体;其中,所述旧变量结构体与所述新变量结构体均为BIOS设置相关的UEFI变量的结构体;

基于所述旧变量结构体、所述旧变量以及所述新变量结构体创建所述新变量结构体对应的新变量,将所述新变量写入所述待升级BIOS固件的新NVRAM固件卷;

利用所述待升级BIOS固件进行BIOS升级。

可选的,所述分别从旧BIOS固件的旧NVRAM固件卷以及旧用户固件卷中获取旧变量以及旧变量结构体之前,还包括:

根据旧NVRAM固件卷以及旧用户固件卷的全局唯一标识符查找所述旧NVRAM固件卷以及旧用户固件卷。

可选的,所述基于所述旧变量结构体、所述旧变量以及所述新变量结构体创建所述新变量结构体对应的新变量,包括:

利用所述旧变量结构体解析所述旧变量,得到每个旧成员变量的值;

基于所述新变量结构体以及每个旧成员变量的值创建所述新变量结构体对应的新变量。

可选的,所述所述基于所述新变量结构体以及每个旧成员变量的值创建所述新变量结构体对应的新变量,包括:

从旧NVRAM固件卷获取每个旧成员变量的默认值,以及新NVRAM固件卷中获取待升级BIOS固件每个变量的默认值;

比对每个旧成员变量的值与该旧成员变量的默认值,若不一致,则利用该旧成员变量的值以及所述新变量结构体创建所述新变量结构体对应的新变量;若一致,则利用该旧成员变量对应的待升级BIOS固件的变量的默认值以及所述新变量结构体创建所述新变量结构体对应的新变量。

可选的,所述旧变量结构体以及所述新变量结构体均包括成员变量ID以及成员变量数据类型,并且,所述成员变量ID为相应的变量名。

可选的,所述利用所述待升级BIOS固件进行BIOS升级之后,还包括:

获取用户终端发送的待修改变量ID以及待修改变量值;

利用当前BIOS的所述新变量结构体以及所述待修改变量值更新所述新NVRAM固件卷中相应的变量。

可选的,所述获取用户终端发送的待修改的变量ID以及变量值之前,还包括:

获取用户终端发送的BIOS设置修改请求;

响应所述BIOS设置修改请求,将待修改变量ID以及变量可设定范围返回给所述用户终端,以便所述用户终端利用所述变量可设定范围确定所述待修改变量值,将所述待修改变量ID以及所述待修改变量值发送至基板管理控制器。

第二方面,本申请公开了一种带外升级BIOS的装置,应用于基板管理控制器,包括:

待升级BIOS固件获取模块,用于通过网络获取待升级BIOS固件;

旧变量及结构体获取模块,用于分别从旧BIOS固件的旧NVRAM固件卷以及旧用户固件卷中获取旧变量以及旧变量结构体;

新变量结构体获取模块,用于从所述待升级BIOS固件的新用户固件卷中获取新变量结构体;其中,所述旧变量结构体与所述新变量结构体均为BIOS设置相关的UEFI变量的结构体;

新变量确定模块,用于基于所述旧变量结构体、所述旧变量以及所述新变量结构体创建所述新变量结构体对应的新变量,将所述新变量写入所述待升级BIOS固件的新NVRAM固件卷;

BIOS升级模块,用于利用所述待升级BIOS固件进行BIOS升级。

第三方面,本申请公开了一种电子设备,包括:

存储器,用于保存计算机程序;

处理器,用于执行所述计算机程序,以实现前述的带外升级BIOS的方法。

第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现前述的带外升级BIOS的方法。

可见,本申请通过网络获取待升级BIOS固件,之后分别从旧BIOS固件的旧NVRAM固件卷以及旧用户固件卷中获取旧变量以及旧变量结构体,并从所述待升级BIOS固件的新用户固件卷中获取新变量结构体;其中,所述旧变量结构体与所述新变量结构体均为BIOS设置相关的UEFI变量的结构体,之后基于所述旧变量结构体、所述旧变量以及所述新变量结构体创建所述新变量结构体对应的新变量,将所述新变量写入所述待升级BIOS固件的新NVRAM固件卷,然后利用所述待升级BIOS固件进行BIOS升级。这样通过新旧BIOS固件的NVRAM固件卷以及用户固件卷实现对旧BIOS固件的设置保留,完全由BMC实现BIOS带外升级,避免了传统带外方案需要一次额外重启,生成,交换和同步设置文件耗时较长,停机时间较长,影响系统可用性和可服务性的缺点,对运行中服务器BIOS升级,在固件升级后重启一次即可生效,继续为用户提供服务,停机时间较短,能够降低BIOS升级的时间开销,从而提升用户体验。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请公开的一种带外升级BIOS的方法流程图;

图2为本申请公开的一种具体的带外升级BIOS的方法流程图;

图3为本申请公开的一种BIOS设置修改流程图;

图4为本申请公开的一种带外升级BIOS的装置结构示意图;

图5为本申请公开的一种电子设备结构图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

目前,现有的带外升级BIOS的方法通常是,上次开机BIOS将当前设置生成当前设置文件发送给BMC,升级BIOS前,BMC先根据当前设置文件生成未来设置文件,然后升级BIOS。开机后,BIOS从BMC读取未来设置文件,然后解析未来设置文件,将设置写入BIOS的NVRAM,并删除未来设置文件,重启生效。开机后再将将当前设置生成当前设置文件发送给BMC,做设置同步。升级BIOS后,BIOS还需要生成设置属性文件发送给BMC,设置属性文件很大,生成和发送的时间都很长。缺点是:BIOS开机时生成当前设置文件耗时较长;BIOS将当前设置文件发送给BMC的时间耗时较长,BIOS从BMC读取设置文件耗时较长;BIOS解析设置文件并将BIOS设置写入到BIOS的NVRAM中耗时较长;设置完成后重启生效,重启过程耗时较长;BIOS重新开机后要再次生成当前设置配置文件,同步给BMC,耗时较长;BIOS生成和发送设置属性文件给BMC需要很长时间。导致停机时间过长,严重影响服务器的可用性和可服务性。为此,本申请提供了一种带外升级BIOS的方案,能够降低BIOS升级的时间开销,从而提升用户体验。

参见图1所示,本申请实施例公开了一种带外升级BIOS的方法,应用于基板管理控制器,包括:

步骤S11:通过网络获取待升级BIOS固件。

在具体的实施方式中,通过网络获取用户终端发送的待升级BIOS固件。具体的,用户可以通过网络将待升级BIOS固件以及签名发送至BMC,BMC对签名进行验签,验签通过进入后续步骤,利用获取到的待升级BIOS固件进行BIOS升级,否则,不利用待升级BIOS固件进行升级。

步骤S12:分别从旧BIOS固件的旧NVRAM固件卷以及旧用户固件卷中获取旧变量以及旧变量结构体。

步骤S13:从所述待升级BIOS固件的新用户固件卷中获取新变量结构体;其中,所述旧变量结构体与所述新变量结构体均为BIOS设置相关的UEFI(即Unified ExtensibleFirmware Interface,统一可扩展固件接口)变量的结构体。

并且,所述旧变量结构体以及所述新变量结构体均包括成员变量ID以及成员变量数据类型,所述成员变量ID为相应的变量名。

也即,本实施例中旧变量、新变量为UEFI变量,每个UEFI变量用结构体表示,包括多个成员变量,每个成员变量对应一个选项。也即,每个UEFI变量中存放多个成员变量,每个成员变量对应BIOS设置页面的一个选项。

需要指出的是,使用变量名字作为成员变量ID,可读性好。对于重要的选项,成员变量ID需要保持不变和兼容性,保证服务器跨代兼容,用户修改BIOS设置的脚本可以不用修改即可使用。

在具体的实施方式中,在BIOS固件编译阶段,在BIOS Flash(闪存)中生成一个Customer Firmware Volume(用户固件卷),用来存放BIOS设置相关的UEFI变量的结构体,如下面例子所示,为其中一个UEFI变量的结构体在BIOS Flash中的示例,结构体由成员变量ID和成员变量数据类型组成,如下例第一个成员变量数据类型为:UINT8,成员变量ID:Numlock。

在具体的实施方式中,根据旧NVRAM固件卷以及旧用户固件卷的全局唯一标识符查找所述旧NVRAM固件卷以及旧用户固件卷。

也即,本申请实施例中,根据FV(即Firmware Volume,固件卷)的GUID(即GloballyUnique Identifier,全局唯一标识符)查找FV,BIOS Flash中每个FV的GUID是唯一的,通过GUID来寻找FV,而不通过固定地址来寻找FV,避免了通过固定地址寻找FV,因为FlashLayout(Flash芯片的布局)变化引起FV基地址变化,从而导致FV寻找失败。

其中,FV为BIOS Flash中的一个区域,一颗Flahs由多个Firmware Volume组成,一个Firmware Volume由多个Firmware File组成。

步骤S14:基于所述旧变量结构体、所述旧变量以及所述新变量结构体创建所述新变量结构体对应的新变量,将所述新变量写入所述待升级BIOS固件的新NVRAM固件卷。

在具体的实施方式中,可以利用所述旧变量结构体解析所述旧变量,得到每个旧成员变量的值;基于所述新变量结构体以及每个旧成员变量的值创建所述新变量结构体对应的新变量。

具体的,从旧NVRAM固件卷获取每个旧成员变量的默认值,以及新NVRAM固件卷中获取待升级BIOS固件每个变量的默认值;

比对每个旧成员变量的值与该旧成员变量的默认值,若不一致,则利用该旧成员变量的值以及所述新变量结构体创建所述新变量结构体对应的新变量;若一致,则利用该旧成员变量对应的待升级BIOS固件的变量的默认值以及所述新变量结构体创建所述新变量结构体对应的新变量。

另外,对于待升级BIOS固件的新增选项对应的变量,在生成新变量时,采用新增选项对应的变量的默认值,对于待升级BIOS固件的删除选项对应的变量,在生成新变量时,丢弃对应的变量。

也即,新BIOS增添选项:保持新增设定不变。新BIOS去掉选项:丢弃旧BIOS设定。旧BIOS设定值与旧BIOS的默认值不同:说明旧BIOS更改了设定值,新BIOS采用旧BIOS设定值。旧BIOS设定值与旧BIOS的默认值相同:说明旧BIOS没有更改设定值,新BIOS采用新BIOS的默认值。当然,也可以根据策略选用旧BIOS的默认值。

需要指出的是,BIOS编译完成后,会生成一个变量StdDefault存放了各个Uefi变量的Default(默认)值。StdDefault值存在于NVRAM的开始位置,后面位置为全FF。StdDefault在Boot Block FV(引导块固件卷)中也有一份相同的。通过解析FV中的StdDefault变量可以获取每个变量的Default值。

另外,对于选项改名或新旧变量不同选项同名的问题,可以指定变量结构体命名规则,结构体的成员变量命名不允许改变,(可以增删更换位置),发BIOS前对比新旧BIOS结构体变量,确保这种情况不发生,以降低设计复杂度。

也即,本申请实施例中,升级BIOS保留配置,BIOS升级保留配置不变策略可以使升级BIOS固件出现故障的机率降低,提升服务器的稳定性。

步骤S15:利用所述待升级BIOS固件进行BIOS升级。

也即,本申请实施例,在进行BIOS固件升级时,BMC先找到旧BIOS的NVRAM FV(NVRAM固件卷)和Customer FV(NVRAM固件卷),新BIOS的NVRAM FV和Customer FV,从中解析出旧变量,旧变量结构体,新变量结构体。根据这些信息创建新的变量写入新BIOS的NVRAM FV。

在具体的实施方式中,根据NVRAM FV的GUID从Flash中找到NVRAM FV,解析FV,找到每个Setup(设置)变量即UEFI变量,根据Customer FV的GUID从Flash中找到CustomerFV,解析FV,找到每个Setup变量的结构体,根据变量结构体解析Setup变量,获取每个成员变量的值。

例如,参见图2所示,图2为本申请实施例公开的一种具体的带外升级BIOS的方法流程图。

可见,本申请实施例通过网络获取待升级BIOS固件,之后分别从旧BIOS固件的旧NVRAM固件卷以及旧用户固件卷中获取旧变量以及旧变量结构体,并从所述待升级BIOS固件的新用户固件卷中获取新变量结构体;其中,所述旧变量结构体与所述新变量结构体均为BIOS设置相关的UEFI变量的结构体,之后基于所述旧变量结构体、所述旧变量以及所述新变量结构体创建所述新变量结构体对应的新变量,将所述新变量写入所述待升级BIOS固件的新NVRAM固件卷,然后利用所述待升级BIOS固件进行BIOS升级。这样通过新旧BIOS固件的NVRAM固件卷以及用户固件卷实现对旧BIOS固件的设置保留,完全由BMC实现BIOS带外升级,避免了传统带外方案需要一次额外重启,生成,交换和同步设置文件耗时较长,停机时间较长,影响系统可用性和可服务性的缺点,对运行中服务器BIOS升级,在固件升级后重启一次即可生效,继续为用户提供服务,停机时间较短,能够降低BIOS升级的时间开销,从而提升用户体验。

参见图3所示,图3为本申请公开的一种BIOS设置修改流程图。

步骤S21:获取用户终端发送的BIOS设置修改请求。

步骤S22:响应所述BIOS设置修改请求,将待修改变量ID以及变量可设定范围返回给所述用户终端。

在具体的实施方式中,用户终端利用所述变量可设定范围确定所述待修改变量值,将所述待修改变量ID以及所述待修改变量值发送至基板管理控制器。

步骤S23:获取用户终端发送的待修改变量ID以及待修改变量值。

步骤S24:利用当前BIOS的所述新变量结构体以及所述待修改变量值更新所述新NVRAM固件卷中相应的变量。

也即,在用户修改选项时,将NVRAM固件卷中相应的变量的成员变量值更新。

也即,用户修改变量前先把变量ID和变量可设定范围读出来,然后再利用变量可设定范围确定修改的值,再把变量ID和修改的值发送给BMC,完成带外修改BIOS设置。这种方式可以应对MapID变化,其中,MapId即为选项的Id,保证唯一性即可,可以使用选项名作为MapId。

在具的实施方式中,用户通过Redfish以Json文件方式或者通过IPMI将待修改的待修改变量ID和待修改变量值发送给BMC,BMC收到要修改的待修改变量ID和待修改变量值,查找BIOS的Customer FV,获取对应的变量结构体,基于该变量结构体以及待修改变量值更新NVRAM固件卷中相应的变量。比如,发送TpmEnable:Enable,计算得到Enable对应的新的变量值为01,写入NVRAM FV中相应的变量中。

需要指出的是,现有的带外修改BIOS设置方案,通常通过IPMI或者Redfish将需要修改的选项发给BMC,开机后BIOS通过IPMI或者Redfish读取需要修改的BIOS设置文件,解析设置文件,将设置写入到BIOS的NVRAM中,重启生效。缺点是:BIOS从BMC读取设置文件耗时较长;BIOS解析设置文件并将BIOS设置写入到BIOS的NVRAM中耗时较长;设置完成后重启生效,重启过程耗时较长。导致Down Time过长,严重影响服务器的可用性和可服务性。而本能申请实施例完全由BMC实现带外修改BIOS设置,克服了上述问题。

可见,本申请完全由BMC实现带外修改BIOS设置和升级BIOS固件,因为使用带外方式,可以利用Redfish或IPMI等应用广泛成熟的工业标准来通信,通用性和适应好,易于维护,便于管理员管理维护。在保持通用性和可管理性好的同时,因为把修改BIOS设置和升级BIOS固件的任务都交给BMC来完成,避免了BIOS自己修改和升级自己的限制和局限,修改BIOS和升级BIOS固件,一次重启生效,Downtime较短,提高了服务器的可用性和可服务性,提升了用户体验和产品竞争力。既克服普通带外方案需要一次额外重启,生成,交换和同步设置文件耗时较长,Downtime较长,影响系统可用性和可服务性的缺点。又克服带内方案可管理性差,适应性差,自我更新限制性多,维护成本高等缺点。

参见图4所示,本申请实施例公开了一种带外升级BIOS的装置,应用于基板管理控制器,包括:

待升级BIOS固件获取模块11,用于通过网络获取待升级BIOS固件;

旧变量及结构体获取模块12,用于分别从旧BIOS固件的旧NVRAM固件卷以及旧用户固件卷中获取旧变量以及旧变量结构体;

新变量结构体获取模块13,用于从所述待升级BIOS固件的新用户固件卷中获取新变量结构体;其中,所述旧变量结构体与所述新变量结构体均为BIOS设置相关的UEFI变量的结构体;

新变量确定模块14,用于基于所述旧变量结构体、所述旧变量以及所述新变量结构体创建所述新变量结构体对应的新变量,将所述新变量写入所述待升级BIOS固件的新NVRAM固件卷;

BIOS升级模块15,用于利用所述待升级BIOS固件进行BIOS升级。

可见,本申请实施例通过网络获取待升级BIOS固件,之后分别从旧BIOS固件的旧NVRAM固件卷以及旧用户固件卷中获取旧变量以及旧变量结构体,并从所述待升级BIOS固件的新用户固件卷中获取新变量结构体;其中,所述旧变量结构体与所述新变量结构体均为BIOS设置相关的UEFI变量的结构体,之后基于所述旧变量结构体、所述旧变量以及所述新变量结构体创建所述新变量结构体对应的新变量,将所述新变量写入所述待升级BIOS固件的新NVRAM固件卷,然后利用所述待升级BIOS固件进行BIOS升级。这样通过新旧BIOS固件的NVRAM固件卷以及用户固件卷实现对旧BIOS固件的设置保留,完全由BMC实现BIOS带外升级,避免了传统带外方案需要一次额外重启,生成,交换和同步设置文件耗时较长,停机时间较长,影响系统可用性和可服务性的缺点,对运行中服务器BIOS升级,在固件升级后重启一次即可生效,继续为用户提供服务,停机时间较短,能够降低BIOS升级的时间开销,从而提升用户体验。

其中,所述装置还包括固件卷查找模块,用于根据旧NVRAM固件卷以及旧用户固件卷的全局唯一标识符查找所述旧NVRAM固件卷以及旧用户固件卷。

新变量确定模块14,具体包括:

旧成员变量值获取子模块,用于利用所述旧变量结构体解析所述旧变量,得到每个旧成员变量的值;

新变量创建子模块,用于基于所述新变量结构体以及每个旧成员变量的值创建所述新变量结构体对应的新变量。

其中,所述新变量创建子模块,具体用于:

从旧NVRAM固件卷获取每个旧成员变量的默认值,以及新NVRAM固件卷中获取待升级BIOS固件每个变量的默认值;

比对每个旧成员变量的值与该旧成员变量的默认值,若不一致,则利用该旧成员变量的值以及所述新变量结构体创建所述新变量结构体对应的新变量;若一致,则利用该旧成员变量对应的待升级BIOS固件的变量的默认值以及所述新变量结构体创建所述新变量结构体对应的新变量。

其中,所述旧变量结构体以及所述新变量结构体均包括成员变量ID以及成员变量数据类型,并且,所述成员变量ID为相应的变量名。

所述装置还包括:

修改值获取模块,用于获取用户终端发送的待修改变量ID以及待修改变量值;

变量更新模块,用于利用当前BIOS的所述新变量结构体以及所述待修改变量值更新所述新NVRAM固件卷中相应的变量。

所述装置还包括:

修改请求获取模块,用于获取用户终端发送的BIOS设置修改请求;

数据返回模块,用于响应所述BIOS设置修改请求,将待修改变量ID以及变量可设定范围返回给所述用户终端,以便所述用户终端利用所述变量可设定范围确定所述待修改变量值,将所述待修改变量ID以及所述待修改变量值发送至基板管理控制器。

参见图5所示,本申请实施例公开了一种电子设备,包括处理器21和存储器22;其中,所述存储器22,用于保存计算机程序;所述处理器21,用于执行所述计算机程序,以实现前述实施例公开的带外升级BIOS的方法。

关于上述带外升级BIOS的方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。

进一步的,本申请实施例还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的带外升级BIOS的方法。

关于上述带外升级BIOS的方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的一种带外升级BIOS的方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 一种带外升级BIOS的方法、装置、设备及介质
  • 一种BIOS固件的升级方法、装置、设备及介质
技术分类

06120113023373