CN112506741B - 一种服务器开机过程中bios与bmc的通信方法、装置及设备 - Google Patents
一种服务器开机过程中bios与bmc的通信方法、装置及设备 Download PDFInfo
- Publication number
- CN112506741B CN112506741B CN202011445484.2A CN202011445484A CN112506741B CN 112506741 B CN112506741 B CN 112506741B CN 202011445484 A CN202011445484 A CN 202011445484A CN 112506741 B CN112506741 B CN 112506741B
- Authority
- CN
- China
- Prior art keywords
- bmc
- hash value
- server
- bios
- global variable
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3093—Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/324—Display of status information
- G06F11/328—Computer systems status display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种服务器开机过程中BIOS与BMC的通信方法,该方法在BIOS中通过比对hash值检测服务器是否发生了类似插拔内存条等设备变化,根据是否发生设备变化来决定是否与BMC进行通信,优化了BIOS与BMC的通信策略,避免每次开机都会触发的BIOS与BMC的冗余通信,极大的提升了开机效率。此外,本申请还提供了一种服务器开机过程中BIOS与BMC的通信装置、设备及可读存储介质,其技术效果与上述方法的技术效果相对应。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种服务器开机过程中BIOS与BMC的通信方法、装置、服务器及可读存储介质。
背景技术
在服务器开机启动的过程中,BIOS(Basic Input Output System,基本输入输出系统)会经历SEC(Security Phase,安全验证)阶段、PEI(EFI前期初始化)阶段、DXE(驱动执行环境)阶段、BDS(Boot Device Selection,启动设备选择)阶段以及TSL(操作系统加载前期)阶段等。BIOS在进入BDS阶段时,主要功能是初始化控制台设备,加载必要的设备驱动以及根据系统设置加载和执行启动项。同时针对服务器,在BDS阶段,BIOS需要将枚举到的设备信息发送给BMC(Baseboard Manager Controller),以便BMC在BMC web上进行显示。
在服务器领域,BMC是一个独立的系统,其主要作用是通过监视系统的温度、电压、风扇、电源等,做出相应的调节工作,以便保证服务器系统处于正常运行的状态。此外,为了避免经常出入机房,在BMC web上需要显示出服务器当前所有硬件的资产信息。
因此,在每次开机过程中,BIOS都需要与BMC建立通信,并向BMC发送这些设备的资产信息。这种信息通信过程耗费时间较长,在开机时长中占用了较大比重。实际测试并分析发现,BIOS与BMC的通信过程耗时比较长,而且每次开机过程中,BIOS都会向BMC发送枚举到的设备配置信息。但是针对一台稳定出货的服务器,其设备是很少发生变动的,相关配置是非常稳定的。
可见,服务器开机过程中,BIOS和BMC之间存在冗余的通信机制,降低开机速率,不仅给用户带来了不好的用户体验,而且降低了研发人员和测试人员的工作效率,因而对项目开发进度带来了负面影响。
发明内容
本申请的目的是提供一种服务器开机过程中BIOS与BMC的通信方法、装置、服务器及可读存储介质,用以解决目前服务器开机过程中BIOS和BMC存在冗余的通信机制,导致开机效率降低的问题。其具体方案如下:
第一方面,本申请提供了一种服务器开机过程中BIOS与BMC的通信方法,应用于BIOS,包括:
在服务器开机过程的BDS阶段,对所述服务器的设备进行枚举;对枚举到的全部设备的设备信息进行哈希计算,得到实际hash值;
读取历史hash值,判断所述实际hash值与所述历史hash值是否一致;
若一致,则将第一全局变量设置为目标数值,以便于BMC在检测到所述第一全局变量为目标数值时,根据预存的资产信息进行BMC web显示;
若不一致,则建立BIOS与BMC之间的通信链路,将枚举到的全部设备的资产信息通过所述通信链路传输至BMC,以便于BMC根据接收到的资产信息进行BMC web显示。
优选的,所述读取历史hash值,判断所述实际hash值与所述历史hash值是否一致,包括:
检测是否存在第二全局变量;
若存在,则读取所述第二全局变量,得到历史hash值,判断所述实际hash值与所述历史hash值是否一致;在判断完成后,将所述第二全局变量更新为所述实际hash值;
若不存在,则判定当前的开机过程为第一次开机过程,创建第二全局变量,并将所述第二全局变量设置为所述实际hash值。
优选的,所述检测是否存在第二全局变量,包括:
在NVRAM中检测是否存在第二全局变量。
优选的,在所述将第一全局变量设置为目标数值之前,还包括:
在服务器开机过程的BDS阶段,检测是否存在第一全局变量;
若存在,则将所述第一全局变量更新为默认数值;
若不存在,则创建第一全局变量,并将所述第一全局变量设置为默认数值。
优选的,所述对枚举到的全部设备的设备信息进行哈希计算,得到实际hash值,包括:
对枚举到的全部设备的序列号进行哈希计算,得到实际hash值。
优选的,所述在服务器开机过程的BDS阶段,对所述服务器的设备进行枚举,包括:
在服务器开机过程的BDS阶段,对所述服务器主板上的板载设备和外插设备进行枚举。
优选的,在所述建立BIOS与BMC之间的通信链路,将枚举到的全部设备的资产信息通过所述通信链路传输至BMC之后,还包括:
BMC擦除在EEPROM中预存的资产信息,并将接收到的资产信息写入EEPROM。
第二方面,本申请提供了一种服务器开机过程中BIOS与BMC的通信装置,应用于BIOS,包括:
枚举模块:用于在服务器开机过程的BDS阶段,对所述服务器的设备进行枚举;对枚举到的全部设备的设备信息进行哈希计算,得到实际hash值;
对比模块:用于读取历史hash值,判断所述实际hash值与所述历史hash值是否一致;
第一显示模块:用于在所述实际hash值与所述历史hash值一致时,将第一全局变量设置为目标数值,以便于BMC在检测到所述第一全局变量为目标数值时,根据预存的资产信息进行BMC web显示;
第二显示模块:用于在所述实际hash值与所述历史hash值不一致时,建立BIOS与BMC之间的通信链路,将枚举到的全部设备的资产信息通过所述通信链路传输至BMC,以便于BMC根据接收到的资产信息进行BMC web显示。
第三方面,本申请提供了一种服务器,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序,以实现如上所述的服务器开机过程中BIOS与BMC的通信方法。
第四方面,本申请提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如上所述的服务器开机过程中BIOS与BMC的通信方法。
本申请所提供的一种服务器开机过程中BIOS与BMC的通信方法,应用于BIOS,包括:在服务器开机过程的BDS阶段,对服务器的设备进行枚举;对枚举到的全部设备的设备信息进行哈希计算,得到实际hash值;读取历史hash值,判断实际hash值与历史hash值是否一致;若一致,则将第一全局变量设置为目标数值,以便于BMC在检测到第一全局变量为目标数值时,根据预存的资产信息进行BMC web显示;若不一致,则建立BIOS与BMC之间的通信链路,将枚举到的全部设备的资产信息通过通信链路传输至BMC,以便于BMC根据接收到的资产信息进行BMC web显示。
可见,该方法在BIOS中通过比对hash值检测服务器是否发生了类似插拔内存条等设备变化,根据是否发生设备变化来决定是否与BMC进行通信,优化了BIOS与BMC的通信策略,避免每次开机都会触发的BIOS与BMC的冗余通信,极大的提升了开机效率。
此外,本申请还提供了一种服务器开机过程中BIOS与BMC的通信装置、设备及可读存储介质,其技术效果与上述方法的技术效果相对应,这里不再赘述。
附图说明
为了更清楚的说明本申请实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请所提供的一种服务器开机过程中BIOS与BMC的通信方法实施例一的流程图;
图2为本申请所提供的一种服务器开机过程中BIOS与BMC的通信方法实施例二中hash值计算过程流程图;
图3为本申请所提供的一种服务器开机过程中BIOS与BMC的通信方法实施例二中hash值对比过程流程图;
图4为本申请所提供的一种服务器开机过程中BIOS与BMC的通信方法实施例二中BMC获取资产信息的流程图;
图5为本申请所提供的一种服务器开机过程中BIOS与BMC的通信装置实施例的功能框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如前文所述,在服务器开机过程中,BIOS起到了主要的作用。因此,在开机时间方面,BIOS同样起到了主导作用。实际测试并分析发现,BIOS与BMC的通信过程耗时比较长,而且每次开机过程中,BIOS都会向BMC发送设备信息。但是针对一台稳定出货的服务器,其设备是很少发生变动的,相关配置是非常稳定的,例如CPU相关信息、内存信息以及其他板卡信息。
因此,在实际使用过程中,如果服务器设备没有发生变化,BIOS没有必要向BMC发送相关设备信息,从而避免了冗余的通信机制,大大提升了服务器开机的速率。
基于此,本申请提供了一种服务器开机过程中BIOS与BMC的通信方法、装置、设备及可读存储介质,在BIOS中通过比对hash值检测服务器是否发生了类似插拔内存条等设备变化,根据是否发生设备变化来决定是否与BMC进行通信,避免BIOS与BMC的冗余通信,极大的提升了开机效率。
下面对本申请提供的一种服务器开机过程中BIOS与BMC的通信方法实施例一进行介绍,参见图1,实施例一应用于BIOS,包括以下步骤:
S10、在服务器开机过程的BDS阶段,对所述服务器的设备进行枚举;对枚举到的全部设备的设备信息进行哈希计算,得到实际hash值。
具体的,在每次开机的过程中,BIOS都需要经过SEC阶段、PEI阶段、DXE阶段,进入BDS阶段。在BDS阶段,BIOS对服务器主板上的板载设备以及外插设备进行枚举。之后BIOS根据枚举得到的全部设备的设备信息进行哈希计算,具体可以根据设备的序列号(SerialNumber,SN)进行哈希计算,得到本次开机过程的实际hash值。
S20、读取历史hash值,判断所述实际hash值与所述历史hash值是否一致;若一致,则进入S30,否则进入S40。
上述历史hash值是指之前计算得到的hash值,具体的,本实施例在每次计算出hash值之后,都将其作为历史hash值保存到非易失性存储器中,以便于在后续开机过程中,从非易失性存储器中读取历史hash值。
本实施例主要根据hash值判断服务器是否发生设备变化,具体的,若本次开机过程中计算得到的实际hash值与历史hash值不同,则认为服务器发生了设备变化。
当设备发生变化时,BIOS需要与BMC进行通信,将设备的资产信息发送至BMC,以便于在BMC web中展示资产信息。当设备没有发生变化时,BIOS不需要与BMC进行通信,BMC可以获取到BIOS之前发送给它的资产信息,然后通过BMC web展示这些资产信息。
作为一种具体的实施方式,本实施例通过一个全局变量存储上一次计算得到的历史hash值,下面将该用于存储历史hash值的全局变量称为第二全局变量。此时,上述所述读取历史hash值,判断所述实际hash值与所述历史hash值是否一致的过程,具体为:检测是否存在第二全局变量;若存在,则读取第二全局变量,得到历史hash值,判断实际hash值与历史hash值是否一致;在判断完成后,将第二全局变量更新为所述实际hash值;若不存在,则创建第二全局变量,并将第二全局变量设置为实际hash值。
可以理解的是,在不存在第二全局变量时,可以判定当前的开机过程为第一次开机过程。此前BIOS并未向BMC发送给设备的资产信息,所以BMC一侧也不存在预存的资产信息,所以BIOS需要与BMC进行通信,执行S30的步骤。
作为一种具体的实施方式,上述第二全局变量的存储位置可以为NVRAM。
S30、将第一全局变量设置为目标数值,以便于BMC在检测到所述第一全局变量为目标数值时,根据预存的资产信息进行BMC web显示。
S40、建立BIOS与BMC之间的通信链路,将枚举到的全部设备的资产信息通过所述通信链路传输至BMC,以便于BMC根据接收到的资产信息进行BMC web显示。
为了方便展开后续过程,本实施例设置了另外一个全局变量,用于表示BIOS是否需要与BMC进行通信,下面将用于表示BIOS是否需要与BMC进行通信的全局变量称为第一全局变量。当第一全局变量为默认数值(例如0)时,表示BIOS不需要与BMC进行通信,当第一全局变量为目标数值(例如1)时,表示BIOS需要与BMC进行通信。
因此,在S30之前,还包括以下过程:在服务器开机过程的BDS阶段,检测是否存在第一全局变量;若存在,则将所述第一全局变量更新为默认数值;若不存在,则创建第一全局变量,并将所述第一全局变量设置为默认数值。
在执行S20之后,若判断出设备发生了变化,则需要将第一全局变量更新为目标数值,若判断出设备没有发生变化,则不需要更改第一全局变量。之后,BMC根据第一全局变量,决定从哪获取设备的资产信息,具体的,当第一全局变量为默认数值时,BMC可以从BMC一侧读取预存的资产信息;当第一全局变量为目标数值时,BMC与BIOS进行通信,从BIOS一侧获取资产信息。其中BMC一侧预存的资产信息,具体可以为在以往开机过程中BIOS发送给BMC的资产信息。
具体的,BMC web显示出服务器当前所有设备的资产信息,例如CPU信息、内存信息、硬盘信息、网卡信息、以及外插板卡等。
作为一种优选的实施方式,BIOS将资产信息发送给BMC之后,BMC先擦除在EEPROM中预存的资产信息,再将接收到的资产信息写入EEPROM。
本实施例所提供一种服务器开机过程中BIOS与BMC的通信方法,应用于BIOS,该方法在BIOS中通过比对hash值检测服务器是否发生了类似插拔内存条等设备变化,根据是否发生设备变化来决定是否与BMC进行通信,优化了BIOS与BMC的通信策略,避免每次开机都会触发的BIOS与BMC的冗余通信,极大的提升了开机效率。
下面开始详细介绍本申请提供的一种服务器开机过程中BIOS与BMC的通信方法实施例二。具体的,实施例二包括三个过程:hash值计算过程,hash值对比过程,BMC获取资产信息的过程,下面分别对这三个过程进行介绍。
如图2所示,实施例二中hash值计算过程包括:
步骤S11,服务器上电开机,在每次开机的过程中,BIOS都需要经过SEC阶段、PEI阶段、DXE阶段,进入BDS阶段;
步骤S12,BIOS在BDS阶段,通过GetVariable()扫测全局NVRAM中变量配置,检测在NVRAM中是否存在变量NEED_SEND_FLAG(即前述第一全局变量);
步骤S13,如果BIOS检测到存在变量NEED_SEND_FLAG,则将其初始化为0,否则需要创建NVRAM全局变量NEED_SEND_FLAG并初始化为0;
步骤S14,在BDS阶段,BIOS初始化控制台所有设备,加载必要的设备驱动;
步骤S15,BIOS在枚举设备过程中,获取每一个设备的资产信息,包括Device Id以及序列号,主要用于BIOS在setup界面进行显示以及发送给BMC;
步骤S16,在枚举所有设备之后,BIOS将所有设备的Device Id以及序列号,根据MD5 Hash算法计算出一个Hash值A。
如图3所示,实施例二中hash值对比过程包括:
步骤S21,BIOS通过GetVariable()扫测全局NVRAM中变量配置,检测NVRAM区域是否已经存在HASH值的变量DEVICE_HASH_INFO(即前述第二全局变量);;
步骤S22,当检测到NVRAM区域不存在HASH值的变量DEVICE_HASH_INFO,则BIOS认定为当前服务器是第一次上电开机,需要向BMC发送设备资产信息。因此,BIOS通过SetVariable()将变量NEED_SEND_FLAG置为1,同时创建HASH值的变量DEVICE_HASH_INFO,并将S16步骤计算的HASH值A赋值给DEVICE_HASH_INFO;
步骤S23,当检测到NV-RAM区域已经存在HASH值DEVICE_HASH_INFO,BIOS使用枚举过程中实际计算出的HASH值A与DEVICE_HASH_INFO进行比对;通过比对,如果HASH值A与HASH值变量DEVICE_HASH_INFO相同,BIOS认为当前服务器没有实际发生设备变化,不需要向BMC发送资产信息,即保留NEED_SEND_FLAG值为0;
步骤S24,如果HASH值A与HASH值变量DEVICE_HASH_INFO不同,则BIOS将当前服务器认定为发生过设备变化,因此,将变量NEED_SEND_FLAG置为1,并将HASH值A赋值给DEVICE_HASH_INFO。
如图4所示,实施例二中BMC获取资产信息的过程包括:
步骤S31,在BDS阶段即将结束时,准备向BMC发送资产信息之前,首先扫测NVRAM变量区,获取NVRAM变量NEED_SEND_FLAG的值;如果NVRAM变量NEED_SEND_FLAG的值等于1,进入步骤S32,否则进入S34;
步骤S32,BIOS认定当前服务器发生了设变化,需要重新向BMC发送所有设备的资产信息,对BMC一侧记录的资产信息进行全量更新。因此,BIOS将创建与BMC的通信链路,同时向BMC发送BIOS枚举到的所有设备的资产信息;
步骤S33,BMC收到BIOS发送的资产信息之后,更新BMC web界面下的资产信息,同时,在BMC web,为了保证数据的安全性,擦除EEPROM中原有的数据,并在EEPROM中重新写入BIOS发送的所有数据。
步骤S34,BIOS放弃创建与BMC的通信链路,BMC读取EEPROM原来的数据,在BMC web下进行显示;
步骤S35,正常开机。
可见,本实施例提供的一种服务器开机过程中BIOS与BMC的通信方法,通过比对hash值检测当前服务器是否发生了类似插拔内存条等设备变化,根据主板上板载设备和外插设备是否发生变化来决定是否建立与BMC的通信链路,优化BIOS与BMC的通信策略,避免了在实际使用过程中,每次开机都会触发的BIOS与BMC的冗余通信,极大的提升了开机效率。同时,本实施例并没有增加任何硬件成本。因此,本实施例是切实可用、简单高效的。
本实施例的优点包括但不限于:针对用户,大大的提升了服务器的开机速率,极大的提升了用户体验感,方便用户使用;针对研发以及测试人员,极大的提高了开发效率和测试效率;针对工厂生产,极大的提升了生产测试的效率,进而提高了生产效率。
下面对本申请实施例提供的一种服务器开机过程中BIOS与BMC的通信装置进行介绍,下文描述的一种服务器开机过程中BIOS与BMC的通信装置与上文描述的一种服务器开机过程中BIOS与BMC的通信方法可相互对应参照。
如图5所示,本实施例的服务器开机过程中BIOS与BMC的通信装置,应用于BIOS,包括:
枚举模块501:用于在服务器开机过程的BDS阶段,对所述服务器的设备进行枚举;对枚举到的全部设备的设备信息进行哈希计算,得到实际hash值;
对比模块502:用于读取历史hash值,判断所述实际hash值与所述历史hash值是否一致;
第一显示模块503:用于在所述实际hash值与所述历史hash值一致时,将第一全局变量设置为目标数值,以便于BMC在检测到所述第一全局变量为目标数值时,根据预存的资产信息进行BMC web显示;
第二显示模块504:用于在所述实际hash值与所述历史hash值不一致时,建立BIOS与BMC之间的通信链路,将枚举到的全部设备的资产信息通过所述通信链路传输至BMC,以便于BMC根据接收到的资产信息进行BMC web显示。
本实施例的服务器开机过程中BIOS与BMC的通信装置用于实现前述的服务器开机过程中BIOS与BMC的通信方法,因此该装置中的具体实施方式可见前文中的服务器开机过程中BIOS与BMC的通信方法的实施例部分,例如,枚举模块501、对比模块502、第一显示模块503、第二显示模块504,分别用于实现上述服务器开机过程中BIOS与BMC的通信方法中步骤S10,S20,S30,S40。所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再展开介绍。
另外,由于本实施例的服务器开机过程中BIOS与BMC的通信装置用于实现前述的服务器开机过程中BIOS与BMC的通信方法,因此其作用与上述方法的作用相对应,这里不再赘述。
此外,本申请还提供了一种服务器,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序,以实现如上文所述的服务器开机过程中BIOS与BMC的通信方法。
最后,本申请提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如上文所述的服务器开机过程中BIOS与BMC的通信方法。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种服务器开机过程中BIOS与BMC的通信方法,其特征在于,应用于BIOS,包括:
在服务器开机过程的BDS阶段,对所述服务器的设备进行枚举;对枚举到的全部设备的设备信息进行哈希计算,得到实际hash值;
读取历史hash值,判断所述实际hash值与所述历史hash值是否一致;
若一致,则将第一全局变量设置为目标数值,以便于BMC在检测到所述第一全局变量为目标数值时,根据预存的资产信息进行BMC web显示;
若不一致,则建立BIOS与BMC之间的通信链路,将枚举到的全部设备的资产信息通过所述通信链路传输至BMC,以便于BMC根据接收到的资产信息进行BMC web显示;
其中,所述历史hash值为所述服务器之前开机时得到的所述实际hash值。
2.如权利要求1所述的方法,其特征在于,所述读取历史hash值,判断所述实际hash值与所述历史hash值是否一致,包括:
检测是否存在第二全局变量;
若存在,则读取所述第二全局变量,得到历史hash值,判断所述实际hash值与所述历史hash值是否一致;在判断完成后,将所述第二全局变量更新为所述实际hash值;
若不存在,则判定当前的开机过程为第一次开机过程,创建第二全局变量,并将所述第二全局变量设置为所述实际hash值。
3.如权利要求2所述的方法,其特征在于,所述检测是否存在第二全局变量,包括:
在NVRAM中检测是否存在第二全局变量。
4.如权利要求1所述的方法,其特征在于,在所述将第一全局变量设置为目标数值之前,还包括:
在服务器开机过程的BDS阶段,检测是否存在第一全局变量;
若存在,则将所述第一全局变量更新为默认数值;
若不存在,则创建第一全局变量,并将所述第一全局变量设置为默认数值。
5.如权利要求1所述的方法,其特征在于,所述对枚举到的全部设备的设备信息进行哈希计算,得到实际hash值,包括:
对枚举到的全部设备的序列号进行哈希计算,得到实际hash值。
6.如权利要求1所述的方法,其特征在于,所述在服务器开机过程的BDS阶段,对所述服务器的设备进行枚举,包括:
在服务器开机过程的BDS阶段,对所述服务器主板上的板载设备和外插设备进行枚举。
7.如权利要求1-6任意一项所述的方法,其特征在于,在所述建立BIOS与BMC之间的通信链路,将枚举到的全部设备的资产信息通过所述通信链路传输至BMC之后,还包括:
BMC擦除在EEPROM中预存的资产信息,并将接收到的资产信息写入EEPROM。
8.一种服务器开机过程中BIOS与BMC的通信装置,其特征在于,应用于BIOS,包括:
枚举模块:用于在服务器开机过程的BDS阶段,对所述服务器的设备进行枚举;对枚举到的全部设备的设备信息进行哈希计算,得到实际hash值;
对比模块:用于读取历史hash值,判断所述实际hash值与所述历史hash值是否一致;
第一显示模块:用于在所述实际hash值与所述历史hash值一致时,将第一全局变量设置为目标数值,以便于BMC在检测到所述第一全局变量为目标数值时,根据预存的资产信息进行BMC web显示;
第二显示模块:用于在所述实际hash值与所述历史hash值不一致时,建立BIOS与BMC之间的通信链路,将枚举到的全部设备的资产信息通过所述通信链路传输至BMC,以便于BMC根据接收到的资产信息进行BMC web显示;
其中,所述历史hash值为所述服务器之前开机时得到的所述实际hash值。
9.一种服务器,其特征在于,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序,以实现如权利要求1-6任意一项所述的服务器开机过程中BIOS与BMC的通信方法。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如权利要求1-6任意一项所述的服务器开机过程中BIOS与BMC的通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011445484.2A CN112506741B (zh) | 2020-12-11 | 2020-12-11 | 一种服务器开机过程中bios与bmc的通信方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011445484.2A CN112506741B (zh) | 2020-12-11 | 2020-12-11 | 一种服务器开机过程中bios与bmc的通信方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112506741A CN112506741A (zh) | 2021-03-16 |
CN112506741B true CN112506741B (zh) | 2023-03-10 |
Family
ID=74971121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011445484.2A Active CN112506741B (zh) | 2020-12-11 | 2020-12-11 | 一种服务器开机过程中bios与bmc的通信方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112506741B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103399840A (zh) * | 2013-07-31 | 2013-11-20 | 华为技术有限公司 | 一种计算机配置文件的带外修改方法及计算机 |
CN107423626A (zh) * | 2017-07-19 | 2017-12-01 | 南京百敖软件有限公司 | 一种基于连续Hash值的BIOS更新信任链的方法 |
CN107729038A (zh) * | 2017-11-27 | 2018-02-23 | 英业达科技有限公司 | 固件更新方法及可更新固件的基板管理控制器 |
CN109002330A (zh) * | 2018-07-27 | 2018-12-14 | 郑州云海信息技术有限公司 | 一种识别uefi os启动项的方法、装置及设备 |
TWI685791B (zh) * | 2019-01-17 | 2020-02-21 | 神雲科技股份有限公司 | 產生bios變更紀錄的方法 |
CN111008379A (zh) * | 2019-11-22 | 2020-04-14 | 腾讯科技(深圳)有限公司 | 电子设备的固件安全检测方法及相关设备 |
CN111176897A (zh) * | 2019-12-29 | 2020-05-19 | 苏州浪潮智能科技有限公司 | 一种封闭式bios自修复方法、系统、终端及存储介质 |
CN111273933A (zh) * | 2020-02-20 | 2020-06-12 | 苏州浪潮智能科技有限公司 | 一种bios fw刷新方法、装置 |
CN111708652A (zh) * | 2020-05-20 | 2020-09-25 | 新华三技术有限公司 | 一种故障修复方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10467015B2 (en) * | 2015-09-08 | 2019-11-05 | Dell Products, Lp | Method for out of band device configuration deployment and system therefor |
US20200250313A1 (en) * | 2019-01-31 | 2020-08-06 | Quanta Computer Inc. | Bios recovery and update |
US10866812B2 (en) * | 2019-02-04 | 2020-12-15 | Dell Products L.P. | Pre-boot remote connection for interface data transfer |
-
2020
- 2020-12-11 CN CN202011445484.2A patent/CN112506741B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103399840A (zh) * | 2013-07-31 | 2013-11-20 | 华为技术有限公司 | 一种计算机配置文件的带外修改方法及计算机 |
CN107423626A (zh) * | 2017-07-19 | 2017-12-01 | 南京百敖软件有限公司 | 一种基于连续Hash值的BIOS更新信任链的方法 |
CN107729038A (zh) * | 2017-11-27 | 2018-02-23 | 英业达科技有限公司 | 固件更新方法及可更新固件的基板管理控制器 |
CN109002330A (zh) * | 2018-07-27 | 2018-12-14 | 郑州云海信息技术有限公司 | 一种识别uefi os启动项的方法、装置及设备 |
TWI685791B (zh) * | 2019-01-17 | 2020-02-21 | 神雲科技股份有限公司 | 產生bios變更紀錄的方法 |
CN111008379A (zh) * | 2019-11-22 | 2020-04-14 | 腾讯科技(深圳)有限公司 | 电子设备的固件安全检测方法及相关设备 |
CN111176897A (zh) * | 2019-12-29 | 2020-05-19 | 苏州浪潮智能科技有限公司 | 一种封闭式bios自修复方法、系统、终端及存储介质 |
CN111273933A (zh) * | 2020-02-20 | 2020-06-12 | 苏州浪潮智能科技有限公司 | 一种bios fw刷新方法、装置 |
CN111708652A (zh) * | 2020-05-20 | 2020-09-25 | 新华三技术有限公司 | 一种故障修复方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112506741A (zh) | 2021-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7293169B1 (en) | Methods and systems for remotely updating the firmware of multiple computers over a distributed network | |
CN101989212B (zh) | 提供用于启动刀片服务器的虚拟机管理程序的方法和装置 | |
EP3399408B1 (en) | Information processing apparatus and computer readable storage medium | |
CN101807152B (zh) | 自我验证选择只读存储器的基本输出入系统及其验证方法 | |
CN111158767B (zh) | 基于bmc的服务器安全启动方法及装置 | |
JP4850949B2 (ja) | シンクライアント端末装置、その運用プログラム、及び方法、並びにシンクライアントシステム | |
JP5895385B2 (ja) | 画像出力装置及びそのプログラム | |
WO2016062146A1 (zh) | 序列号信息的更新方法、装置及终端 | |
JP3960169B2 (ja) | 情報処理装置及びそのリカバリ方法 | |
EP2750034A2 (en) | Electronic device having updatable bios and bios updating method thereof | |
US20120191965A1 (en) | Boot systems and methods, and related devices | |
CN115113905A (zh) | 固件升级方法和固件升级装置 | |
CN112506741B (zh) | 一种服务器开机过程中bios与bmc的通信方法、装置及设备 | |
CN112817643A (zh) | 一种多路服务器的双bios度量方法、装置及设备 | |
CN106484442B (zh) | 服务器系统及更新开机映像档的方法 | |
JP2009193358A (ja) | 情報処理装置 | |
CN113986357B (zh) | 建立通信链路的方法、装置和存储介质 | |
US20100121909A1 (en) | Storage apparatus and on-line client service system, software and method thereof | |
JP4982454B2 (ja) | 情報処理方法および情報処理システム | |
JP6331505B2 (ja) | 起動制御装置、起動制御方法、及び起動制御プログラム | |
JP5992029B2 (ja) | 基本入出力システムプログラムコードの書き込み回路及び書き込み方法 | |
CN108595193B (zh) | 用于风扇转速控制的基板管理控制器固件更新方法 | |
CN107360167B (zh) | 一种认证方法及装置 | |
CN107247642B (zh) | 用于系统开机时确定可执行映像文件的方法及装置 | |
CN110647343A (zh) | 一种OpenPower服务器及其系统部署方法 |
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 |