A BMC self-checking method, device, equipment, medium and product

By adding a first process and a second process to the BMC for firmware self-testing and runtime status self-testing, the problem that traditional security measures cannot protect against BMC attacks is solved. This enables timely detection and early warning of BMC firmware, ensuring the safe and stable operation of the server.

CN116361092BActive Publication Date: 2026-07-24INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
INSPUR SUZHOU INTELLIGENT TECH CO LTD
Filing Date
2023-03-22
Publication Date
2026-07-24

AI Technical Summary

Technical Problem

Traditional security measures are ineffective in protecting against attacks on the server's BMC, resulting in the failure to detect BMC malfunctions in a timely manner and affecting server security.

Method used

A first process is added to BMC to perform firmware self-test and a second process to perform runtime status self-test. The firmware integrity and runtime status are detected through a custom protocol, and pre-alarm information is output.

Benefits of technology

It enables timely self-checking and operational status monitoring of the BMC firmware, preventing server operational errors caused by BMC firmware damage or malfunction, and promptly issuing early warnings to maintenance personnel to ensure server security and stability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116361092B_ABST
    Figure CN116361092B_ABST
Patent Text Reader

Abstract

Embodiments of the present application disclose a BMC self-checking method, device, equipment, medium and product. A first process and a second process are added in a baseboard management controller. The baseboard management controller is checked for firmware self-checking through the first process. Whether the firmware content is damaged can be detected in time after the baseboard management controller is powered on. Thus, the server is prevented from running incorrectly after being powered on due to BMC firmware damage. After the server is powered on, the BMC process on the baseboard management controller is checked for running state self-checking through the second process. Potential security risks in BMC firmware running can be detected, and a pre-warning can be given to an operation and maintenance personnel before the BMC firmware runs incorrectly.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of server technology, and in particular to a BMC self-testing method, apparatus, device, medium, and product. Background Technology

[0002] The Baseboard Management Controller (BMC) enables server control and information monitoring, serving as a platform for intuitively presenting server information. However, the BMC is essentially an embedded system, and its use is subject to security risks such as compromised program integrity, operating system attacks, and the implantation of malicious code into World Wide Web (WWW) applications.

[0003] However, traditional security measures can generally only protect against network-level or operating system-level problems and cannot handle attacks against the server's BMC. As a result, the BMC's operational failure can only be discovered by maintenance personnel after it stops running or is restarted. Summary of the Invention

[0004] The purpose of this application is to provide a BMC self-test method, apparatus, device, medium, and product that can realize BMC firmware self-test and operation status early warning.

[0005] To address the aforementioned technical problems, in a first aspect, embodiments of this application provide a BMC self-testing method, the method comprising:

[0006] A first process and a second process are configured within the Baseboard Management Controller (BMC). The first process is used to perform a BMC firmware self-test triggered by the power-on of the BMC. The second process is used to perform a BMC process running status self-test triggered by the power-on of the server configured with the BMC. The BMC process is used to monitor the server.

[0007] If the BMC firmware self-test passes, power on the server.

[0008] If the self-test of the running status of the BMC process fails, a warning message will be output.

[0009] Optionally, the second process performs a self-check of the running status of the BMC process through the following steps:

[0010] The second process determines each first target process in the BMC based on the first process information in the target structure;

[0011] The second process detects whether the number of error status information corresponding to each of the first target processes has reached a threshold based on the first status information in the target structure.

[0012] For the second target process whose number of error status information in each of the first target processes reaches a threshold, the second process records the log information associated with the second target process and determines that the BMC process's running status self-check has failed.

[0013] Optionally, the first state information in the target structure is determined through the following steps:

[0014] The second process determines the target function corresponding to each of the first target processes based on the function information in the target structure. The target function is used to collect the associated parameters of the server.

[0015] The second process acquires the target parameters collected by each of the target functions;

[0016] The second process determines the second state information corresponding to each objective function based on each of the objective parameters and the theoretical values ​​corresponding to each of the objective parameters;

[0017] The second process determines the second state information corresponding to each of the objective functions as the first state information.

[0018] Optionally, the second status information is any one of normal status information, abnormal status information, and error status information;

[0019] The second state information corresponding to a single objective function is determined through the following steps:

[0020] If the difference between the target parameter collected by the objective function and the theoretical value corresponding to the target parameter is less than the first threshold, the second state information corresponding to the objective function is determined as normal state information.

[0021] If the difference between the target parameter collected by the objective function and the theoretical value corresponding to the target parameter is greater than the second threshold, the second state information corresponding to the objective function is determined as error state information;

[0022] If the difference between the target parameter collected by the objective function and the theoretical value corresponding to the target parameter is greater than a first threshold and less than a second threshold, the second state information corresponding to the objective function is determined as abnormal state information.

[0023] Optionally, the first target process includes at least one of the following: motherboard voltage monitoring process, temperature monitoring process, fan control process, power supply unit (PSU) monitoring process, and high-speed serial computer expansion bus standard PCIe device monitoring process.

[0024] Optionally, the first process performs a BMC firmware self-test through the following steps:

[0025] The first process performs a BMC firmware self-test according to a custom protocol, which includes at least one of the following: firmware file size verification; firmware file version number verification; overall image verification code verification; and BMC process startup status verification.

[0026] Secondly, embodiments of this application also provide a BMC self-testing device, the device comprising:

[0027] A configuration module is used to configure a first process and a second process within the Baseboard Management Controller (BMC). The first process is used to perform a BMC firmware self-test triggered by the power-on of the BMC. The second process is used to perform a BMC process running status self-test triggered by the power-on of the server configured with the BMC. The BMC process is used to monitor the server.

[0028] The power-on module is used to power on the server if the BMC firmware self-test passes.

[0029] The early warning module is used to output early warning information when the self-test of the running status of the BMC process fails.

[0030] Thirdly, embodiments of this application also provide an electronic device, including a memory, a processor, and a computer program stored in the memory, wherein the processor executes the computer program to implement the BMC self-test method as described in the first aspect.

[0031] Fourthly, embodiments of this application also provide a computer-readable storage medium having a computer program / instructions stored thereon, which, when executed by a processor, implements the BMC self-test method as described in the first aspect.

[0032] Fifthly, embodiments of this application also provide a computer program product, including a computer program / instruction that, when executed by a processor, implements the BMC self-test method described in the first aspect.

[0033] As can be seen from the above technical solution, this application adds a first process and a second process to the baseboard management controller. The first process performs firmware self-check on the baseboard management controller, which can detect whether the firmware content is damaged in a timely manner after the baseboard management controller is powered on, thereby avoiding the occurrence of operation errors after the server is powered on due to BMC firmware damage. After the server is powered on, the second process performs operation status self-check on the BMC process on the baseboard management controller, which can detect potential security risks in the operation of BMC firmware and can provide early warning to maintenance personnel before the BMC firmware operation fails. Attached Figure Description

[0034] To more clearly illustrate the embodiments of this application, the accompanying drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0035] Figure 1 A flowchart illustrating the implementation of a BMC self-testing method provided in this application embodiment;

[0036] Figure 2 A flowchart illustrating the implementation of a BMC process running status self-check in this application embodiment;

[0037] Figure 3 A flowchart illustrating an implementation for determining first state information in a target structure, as provided in this application embodiment;

[0038] Figure 4 This is a schematic diagram of the structure of a BMC self-testing device provided in an embodiment of this application;

[0039] Figure 5 This is a schematic diagram of an electronic device provided in an embodiment of this application. Detailed Implementation

[0040] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the protection scope of this application.

[0041] The terms "comprising" and "having," and any variations thereof, in the specification, claims, and accompanying drawings of this application are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or apparatus that includes a series of steps or units is not limited to the steps or units listed, but may include steps or units not listed.

[0042] The Baseboard Management Controller (BMC), also known as the Execution Server Remote Management Controller, enables server-related control and information monitoring functions, serving as a platform for intuitively presenting server information. Server users can access the BMC configured on the server to obtain server information via tools such as the Web, ipmitool, and Simple Network Management Protocol (SNMP). IPMItool is a command-line intelligent platform management interface (IPMI) platform management tool available under Linux systems. It can acquire sensor information, display system log content, and remotely power on / off over the network. The intelligent platform management interface is a new generation of universal interface standard that enables "intelligent" hardware management. Users can use IPMI to monitor the physical characteristics of servers, such as temperature, voltage, fan operating status, power supply, and chassis intrusion. IPMI's biggest advantage is that it is independent of the CPU's Basic Input Output System (BIOS) and Operating System (OS), so users can monitor the server as long as it is powered on or off. IPMI is a standardized specification, and its most important physical component is the BMC, which is equivalent to the "brain" of the entire platform management. Through the BMC, IPMI can monitor data from various sensors and log various events. Simple Network Management Protocol (SMAP) is a standard protocol specifically designed for managing network nodes (such as servers, workstations, routers, and switches) in IP networks. It enables network administrators to manage network performance, identify and resolve network problems, and plan for network growth.

[0043] BMC is essentially an embedded system, which faces security risks such as compromised program integrity, operating system attacks, and malicious code implantation in web applications during use. Traditional security measures generally only protect against network-level or operating system-level problems and cannot handle attacks targeting the baseboard management controller configured on the server, thus compromising the security of both the BMC and the server.

[0044] To address the problems existing in the aforementioned related technologies, this application adds a first process and a second process to the baseboard management controller, thereby enabling self-testing of the BMC firmware and real-time monitoring and early warning of the BMC firmware operation, thus preventing server operation errors caused by BMC firmware failure.

[0045] The BMC self-testing method provided in this application will be described in detail below with reference to the accompanying drawings and through some embodiments and application scenarios.

[0046] Firstly, see [the following] Figure 1 The diagram shown is an implementation flowchart of a BMC self-testing method provided in this application embodiment. The method may include the following steps:

[0047] Step S101: Configure a first process and a second process in the Baseboard Management Controller (BMC). The first process is used to perform a BMC firmware self-test when the BMC is powered on, and the second process is used to perform a BMC process running status self-test when the server configured with the BMC is powered on.

[0048] The BMC process is used to monitor the server.

[0049] Understandably, the BMC firmware runs on top of the BMC hardware and includes a software stack such as the BMC hardware bootloader, kernel, drivers, file system, IPMI applications, and web services. It is responsible for providing the various interfaces and services required by the BMC system, enabling centralized operation management and monitoring of server devices, fault warning / alarms, health status monitoring, and system deployment and configuration. As one of the core foundational software components in the server system industry chain, the BMC firmware, when subjected to threats, may lead to denial-of-service attacks on the server, causing business interruptions, or even allowing malicious third parties to gain control of the server from the ground up, resulting in the complete collapse of the server system.

[0050] This application adds a first process within the BMC, enabling the BMC to initiate a self-check of its firmware content upon power-up. This self-check includes verifying the integrity and legitimacy of the firmware, allowing for timely detection of security vulnerabilities such as firmware corruption, tampering, or unauthorized flashing. This facilitates timely firmware recovery by maintenance personnel, such as re-flashing the relevant programs into the BMC firmware using a chip programmer, thereby ensuring the security of the BMC firmware. Furthermore, by adding a second process within the BMC, the BMC can initiate a self-check of the BMC firmware's (i.e., the BMC process) running status upon server power-up, ensuring the BMC's normal monitoring capabilities over the server.

[0051] As one possible implementation, if the BMC firmware self-test fails, the first process can also coordinate with relevant processes or devices used to restore the BMC firmware to reduce manual intervention and improve the efficiency of BMC firmware recovery. For example, if the BMC firmware self-test fails, the first process can directly communicate with the backup BMC firmware to refresh the BMC firmware that failed the self-test, thereby achieving fault recovery of the BMC firmware; the first process can also communicate with a complex programmable logic device (CPLD) to perform a hard reboot operation on the BMC through the CPLD, enabling the BMC to start the BMC recovery mechanism based on the state of its own flash memory chip to perform a rollback operation on firmware that uses the backup flash memory chip or on flash memory chips with abnormal firmware.

[0052] Step S102: If the BMC firmware self-test passes, power on the server.

[0053] In practical implementation, if the BMC firmware self-test passes, the BMC triggers the CPLD to execute the power-on procedure for the server. It's understandable that a server, as a computer device, requires strict control over the power-on sequence of its various components. The CPLD, as a key component in power-on sequence control, precisely defines the order of each critical voltage signal. By establishing a communication connection with the CPLD, the BMC can achieve normal power-on of the server if the BMC firmware self-test passes. If the BMC firmware self-test fails, the BMC does not trigger the CPLD to execute the power-on procedure for the server, to prevent abnormal BMC firmware from threatening the server's data security.

[0054] As one possible implementation, if the BMC firmware self-test fails, an alarm can be triggered to promptly notify maintenance personnel of the BMC firmware anomaly.

[0055] Step S103: If the self-test of the running status of the BMC process fails, output a warning message.

[0056] In practical implementation, after the server is powered on, the BMC (Browser Control Center) can perform a self-check on the running status of the BMC process through a second process. This BMC process can include related processes for monitoring information such as server temperature, voltage, fan operating status, and power supply. By performing a self-check on the running status of the BMC process, the BMC can detect its own monitoring capabilities. If the BMC detects that it may be unable to monitor the server normally (i.e., the second process determines that the BMC process's running status self-check has failed), it can output a pre-warning message to notify the maintenance personnel that the current running status of the BMC process is likely to have an error. This allows the maintenance personnel to perform relevant maintenance operations in advance before the BMC stops running or restarts due to a serious error in the BMC process, thereby ensuring the normal operation of the server and data security.

[0057] As can be seen from the above technical solution, this application adds a first process and a second process to the baseboard management controller. The first process performs firmware self-check on the baseboard management controller, which can detect whether the firmware content is damaged in a timely manner after the baseboard management controller is powered on, thereby avoiding the occurrence of operation errors after the server is powered on due to BMC firmware damage. After the server is powered on, the second process performs operation status self-check on the BMC process on the baseboard management controller, which can detect potential security risks in the operation of BMC firmware and can provide early warning to maintenance personnel before the BMC firmware operation fails.

[0058] Example 1

[0059] This implementation describes an example of the first process performing a BMC firmware self-test.

[0060] The first process performs a self-test of the BMC firmware according to a custom protocol, which mainly defines the content to be checked in the BMC firmware self-test.

[0061] The custom protocol includes at least one of the following:

[0062] Item A-1: ​​Firmware file size verification;

[0063] Item A-2: Firmware file version number verification;

[0064] Item A-3: Mirror overall verification code verification;

[0065] Item A-4: Verification of the startup status of the BMC process.

[0066] Regarding item A-1, considering that the firmware file size in BMC is usually fixed (generally 64 MB), BMC can detect whether its own firmware file size conforms to the preset fixed value. If the firmware file size does not conform to the preset fixed value, it means that the firmware is damaged, and the first process determines that the BMC firmware self-test has failed.

[0067] Regarding item A-2, the version number is data located at a fixed position in the firmware file, and an abnormal version number can also indicate that the firmware content is corrupted. As one possible implementation, a target version number range can be set for the BMC configured on the server, based on the server model. When the first process in the BMC performs a firmware self-test, it can compare the current version number of the BMC firmware file with that of the target version number range. If the current version number of the BMC firmware file is not within the target version number range, the first process determines that the BMC firmware self-test has failed.

[0068] For item A-3, the overall image checksum is a string of encrypted characters. The first process verifies the BMC file (i.e., the BMC image) based on this overall image checksum. For example, the first process can perform a cyclic redundancy check (CRC) on the BMC file based on the overall image checksum. If the verification fails, it indicates that the BMC firmware is at risk of being tampered with or flashed. The first process determines that the BMC firmware self-test has failed.

[0069] Regarding item A-4, the first process checks whether the core processes in the BMC (i.e., the BMC process) are fully started to prevent server malfunctions caused by powering on the server before the core processes in the BMC are fully started. As one possible implementation, the first process can be configured with information such as the numbers of the core processes to be verified. When the first process verifies the startup status of the BMC process, it checks whether each process corresponding to the configured number exists in the BMC. If all processes exist in the BMC, the firmware is not corrupted. If any process corresponding to a configured number is not in the BMC, the first process determines that the BMC firmware self-test has failed. As another possible implementation, considering that the number of processes in the BMC may be fixed, the first process can check whether the current number of processes in the BMC meets a preset number (e.g., 10). If the number of processes in the BMC does not meet the preset number, the BMC firmware self-test is determined to have failed.

[0070] Example 2

[0071] This implementation describes an example of a second process performing a self-check of the running status of the BMC process. For example... Figure 2 As shown, the second process specifically executes the following steps:

[0072] Step S201: Determine each first target process in the BMC based on the first process information in the target structure.

[0073] The first process information in the target structure records relevant information (such as process number, process name, etc.) of each first target process (i.e. BMC process) to be detected.

[0074] Optionally, the first target process includes at least one of the following: a motherboard voltage monitoring process for monitoring the voltage on the server's motherboard (such as the 12V core voltage on the motherboard); a temperature monitoring process for monitoring the temperature of various components (such as the CPU) in the server; a fan control process for monitoring the power consumption, speed, and other status information of the server fans; a power supply unit (PSU) monitoring process for monitoring the voltage, power consumption, and other status information of the server's PSUs; and a high-speed serial computer expansion bus standard (PCIe, peripheral component interconnect express) device monitoring process for monitoring the address, identification information, and presence status of PCIe devices.

[0075] Step S202: Based on the first state information in the target structure, detect whether the number of error state information corresponding to each first target process has reached the threshold.

[0076] In practice, the second process detects the running status of each first target process and records and reads the running status of each first target process through the first status information in the target structure.

[0077] Step S203: For the second target process whose number of error status information in each of the first target processes reaches the threshold, record the log information associated with the second target process, and determine that the running status self-check of the BMC process has failed.

[0078] In practice, the second process reads the first state information from the target structure, counts the number of error state information corresponding to each first target process, marks the first target process with the number of error state information reaching a threshold (e.g., 20) as the second target process, and determines that the BMC process's runtime self-check has failed. It can be understood that this second target process is used to describe BMC processes whose runtime state has a high probability of error.

[0079] The BMC then records the log information associated with the second target process and can output pre-alarm information by lighting up the information lights on the server front control panel to remind the maintenance personnel that the current BMC process has failed the self-check, so that the maintenance personnel can perform relevant maintenance work in a timely manner.

[0080] As one possible implementation method, such as Figure 3 As shown, the second process determines the first state information in the target structure through the following steps:

[0081] Step S301: Based on the function information in the target structure, determine the target function corresponding to each of the first target processes. The target function is used to collect the associated parameters of the server.

[0082] The function information in the target structure records relevant information about each target function to be detected (such as the target function's number and name).

[0083] Step S302: Obtain the target parameters collected by each of the objective functions.

[0084] In practice, the second process reads the function information in the target structure, finds the target functions corresponding to the function information, and obtains the target parameters such as motherboard voltage, temperature, fan speed, power supply voltage, and PCIe device address associated with the server collected by each target function.

[0085] Step S303: Determine the second state information corresponding to each objective function based on each of the objective parameters and the theoretical values ​​corresponding to each objective parameter.

[0086] Taking the PSU monitoring process as an example, the target functions corresponding to this PSU monitoring process are functions used to monitor the voltage at various locations on the server motherboard. The second process obtains the voltage (i.e., target parameters) collected by the target functions corresponding to this PSU monitoring process, and compares the obtained target parameters with the theoretical values ​​of the voltage at various locations on the motherboard.

[0087] At this point, for each target parameter obtained above, if the difference between the target parameter and the theoretical value of the voltage at the corresponding location on the motherboard is too large, it indicates that there is an error in the target function used to collect the target parameter. In this case, the second process determines the second state information corresponding to the target function as error state information.

[0088] Step S304: Determine the second state information corresponding to each of the objective functions as the first state information.

[0089] In practice, after the second process determines the second state information corresponding to each objective function based on the obtained target parameters, it records the second state information through the first state information in the target structure so that the second process can subsequently read and count the number of error state information corresponding to each first target process.

[0090] For example, the target structure is defined as follows:

[0091] typedef struct inspur_quality_func_info

[0092] {

[0093] uint16 process_index; / / The number of the first target process

[0094] uint16 function_index; / / The index of the target function

[0095] uint16 status; / / First status information

[0096] QUALITY_TRACEABILITY_T

[0097] As one possible implementation, the second state information can be any one of normal state information, abnormal state information, and error state information. The first state information can be characterized by "0x01", "0x02", and "0x03" respectively.

[0098] In one embodiment, the second state information corresponding to a single objective function is determined through the following steps:

[0099] If the difference between the target parameter collected by the objective function and the theoretical value corresponding to the target parameter is less than the first threshold, the second state information corresponding to the objective function is determined as normal state information.

[0100] If the difference between the target parameter collected by the objective function and the theoretical value corresponding to the target parameter is greater than the second threshold, the second state information corresponding to the objective function is determined as error state information;

[0101] If the difference between the target parameter collected by the objective function and the theoretical value corresponding to the target parameter is greater than a first threshold and less than a second threshold, the second state information corresponding to the objective function is determined as abnormal state information.

[0102] Taking the fan control process as an example, the objective function of this fan control process collects the target parameter of the server's fan speed. The BMC can determine the theoretical values ​​such as the maximum transmission speed of the fans used by the server based on the model and specifications of the fans. For example, the maximum speed of a 6056 fan is 20,000 RPM, and the maximum speed of an 8056 fan is 30,000 RPM.

[0103] After knowing the maximum speed of the fan used by the server, BMC can calculate the theoretical speed of the fan based on the duty cycle used to control it. For example, with a duty cycle of 30%, the theoretical speed of a 6056 fan is 20000 * 30% = 6000 RPM.

[0104] The first threshold is set to 1000 and the second threshold to 2000. If the difference between the fan speed (i.e., the target parameter) obtained by the second process and the theoretical speed is greater than 2000, it indicates that there is an error in the objective function for collecting the fan speed, and the second process determines the second status information corresponding to the objective function as an error status. If the difference between the fan speed obtained by the second process and the theoretical speed is greater than 1000 and less than 2000, it indicates that there is an abnormality in the operating status of the first target process corresponding to the objective function or the fan it monitors, but this abnormality will not cause the BMC to malfunction (such as stopping or restarting), and the second process determines the second status information corresponding to the objective function as an abnormal status. If the difference between the fan speed obtained by the second process and the theoretical speed is less than 1000, the second process determines the second status information corresponding to the objective function as a normal status.

[0105] Based on the above embodiments, this application implements a method for BMC firmware self-testing and firmware running status self-testing by adding a first process and a second process to BMC, which ensures the security of BMC firmware, can detect potential security risks in BMC firmware operation, and can provide early warnings to maintenance personnel before BMC firmware operation errors occur.

[0106] Secondly, embodiments of this application provide a BMC self-testing device, such as... Figure 4 As shown, the device includes:

[0107] Configuration module 21 is used to configure a first process and a second process in the baseboard management controller (BMC). The first process is used to perform a BMC firmware self-test when the BMC is powered on. The second process is used to perform a BMC process running status self-test when the server configured with the BMC is powered on is powered on. The BMC process is used to monitor the server.

[0108] The BMC firmware runs on top of the BMC hardware and can include a series of software stacks such as the BMC hardware bootloader, kernel, drivers, file system, IPMI applications, and web services.

[0109] Power-on module 22 is used to power on the server when the BMC firmware self-test passes.

[0110] The early warning module 23 is used to output early warning information when the self-test of the running status of the BMC process fails.

[0111] The BMC process may include related processes for monitoring information such as server temperature, voltage, fan operating status, and power supply.

[0112] Understandably, after the server is powered on, the BMC can perform a self-check on the running status of the BMC process through the second process. By performing this self-check, the BMC can assess its own monitoring capabilities. If the BMC detects that it may be unable to monitor the server normally (i.e., the second process determines that the BMC process's running status self-check has failed), it can output a warning message to notify the operations and maintenance personnel that there is a high probability of an error in the current running status of the BMC process. This allows the operations and maintenance personnel to perform relevant maintenance operations in advance before the BMC stops running or restarts due to a serious error in the BMC process, thereby ensuring the normal operation of the server and data security.

[0113] Optionally, the device further includes:

[0114] The first processing module is used to determine each first target process in the BMC based on the first process information in the target structure.

[0115] The second processing module is used to detect whether the number of error status information corresponding to each of the first target processes has reached a threshold based on the first state information in the target structure.

[0116] The third processing module is used to record the log information associated with the second target process for the second target process whose number of error status information in each of the first target processes reaches a threshold, and to determine that the running status self-check of the BMC process has failed.

[0117] Optionally, the device further includes:

[0118] The fourth processing module is used to determine the target function corresponding to each of the first target processes based on the function information in the target structure. The target function is used to collect the associated parameters of the server.

[0119] The fifth processing module is used to acquire the target parameters collected by each of the target functions;

[0120] The sixth processing module is used to determine the second state information corresponding to each of the objective functions based on each of the objective parameters and the theoretical values ​​corresponding to each of the objective parameters.

[0121] The seventh processing module is used to determine the second state information corresponding to each of the objective functions as the first state information.

[0122] Optionally, the second status information is any one of normal status information, abnormal status information, and error status information;

[0123] The sixth processing module includes:

[0124] The first processing submodule is used to determine the second state information corresponding to the objective function as normal state information when the difference between the objective parameter collected by the objective function and the theoretical value corresponding to the objective parameter is less than a first threshold.

[0125] The second processing submodule is used to determine the second state information corresponding to the objective function as error state information when the difference between the objective parameter collected by the objective function and the theoretical value corresponding to the objective parameter is greater than a second threshold.

[0126] The third processing submodule is used to determine the second state information corresponding to the objective function as abnormal state information when the difference between the objective parameter collected by the objective function and the theoretical value corresponding to the objective parameter is greater than a first threshold and less than a second threshold.

[0127] Optionally, the first target process includes at least one of the following: motherboard voltage monitoring process, temperature monitoring process, fan control process, power supply unit (PSU) monitoring process, and high-speed serial computer expansion bus standard PCIe device monitoring process.

[0128] Optionally, the device further includes:

[0129] The eighth processing module is used to perform BMC firmware self-test according to a custom protocol, which includes at least one of the following: firmware file size verification; firmware file version number verification; overall image verification code verification; and BMC process startup status verification.

[0130] As can be seen from the above technical solution, this application adds a first process and a second process to the baseboard management controller. The first process performs firmware self-check on the baseboard management controller, which can detect whether the firmware content is damaged in a timely manner after the baseboard management controller is powered on, thereby avoiding the occurrence of operation errors after the server is powered on due to BMC firmware damage. After the server is powered on, the second process performs operation status self-check on the BMC process on the baseboard management controller, which can detect potential security risks in the operation of BMC firmware and can provide early warning to maintenance personnel before the BMC firmware operation fails.

[0131] It should be noted that the device embodiments are similar to the method embodiments, so the description is relatively simple. For relevant details, please refer to the method embodiments.

[0132] This application also provides an electronic device, see embodiments thereof. Figure 5 , Figure 5 This is a schematic diagram of the electronic device proposed in an embodiment of this application. Figure 5 As shown, the electronic device 100 includes a memory 110 and a processor 120. The memory 110 and the processor 120 are connected via a bus for communication. The memory 110 stores a computer program, which can run on the processor 120 to implement the steps in the BMC self-test method disclosed in the embodiments of this application.

[0133] This application also provides a computer-readable storage medium storing a computer program / instructions thereon, which, when executed by a processor, implements the BMC self-test method disclosed in this application.

[0134] This application also provides a computer program product, including a computer program / instruction that, when executed by a processor, implements the BMC self-test method disclosed in this application.

[0135] The various embodiments in this specification are described in a progressive manner, with each embodiment focusing on the differences from other embodiments. The same or similar parts between the various embodiments can be referred to each other.

[0136] Those skilled in the art will understand that embodiments of this application can be provided as methods, apparatus, or computer program products. Therefore, embodiments of this application can take the form of entirely hardware embodiments, entirely software embodiments, or embodiments combining software and hardware aspects. Furthermore, embodiments of this application can take the form of computer program products implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0137] This application describes embodiments of methods, systems, devices, storage media, and program products according to embodiments of this application with reference to flowchart illustrations and / or block diagrams. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing terminal device to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing terminal device, generate instructions for implementing the flowchart illustrations. Figure 1One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.

[0138] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing terminal device to operate in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.

[0139] These computer program instructions can also be loaded onto a computer or other programmable data processing terminal equipment, causing a series of operational steps to be performed on the computer or other programmable terminal equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable terminal equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.

[0140] Although preferred embodiments of the present application have been described, those skilled in the art, upon learning the basic inventive concept, can make other changes and modifications to these embodiments. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments as well as all changes and modifications falling within the scope of the embodiments of the present application.

[0141] Finally, it should be noted that in this document, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or terminal device that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or terminal device. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or terminal device that includes said element.

[0142] The above provides a detailed description of the BMC self-testing method, apparatus, equipment, medium, and product provided in this application. Specific examples have been used to illustrate the principles and implementation methods of this application. The descriptions of the above embodiments are only for the purpose of helping to understand the method and core ideas of this application. At the same time, for those skilled in the art, there will be changes in the specific implementation methods and application scope based on the ideas of this application. Therefore, the content of this specification should not be construed as a limitation of this application.

Claims

1. A BMC self-test method, characterized in that, The method includes: A first process and a second process are configured within the Baseboard Management Controller (BMC). The first process is used to perform a BMC firmware self-test triggered by the power-on of the BMC. The second process is used to perform a BMC process running status self-test triggered by the power-on of the server configured with the BMC. The BMC process is used to monitor the server. If the BMC firmware self-test passes, power on the server. If the self-test of the running status of the BMC process fails, a warning message will be output. The second process performs a self-check of the BMC process's running status through the following steps: The second process determines each first target process in the BMC based on the first process information in the target structure; The second process detects whether the number of error status information corresponding to each of the first target processes has reached a threshold based on the first status information in the target structure. For the second target process whose number of error status information in each of the first target processes reaches a threshold, the second process records the log information associated with the second target process and determines that the BMC process's running status self-check has failed. The first state information in the target structure is determined through the following steps: The second process determines the target function corresponding to each of the first target processes based on the function information in the target structure. The target function is used to collect the associated parameters of the server. The second process acquires the target parameters collected by each of the target functions; The second process determines the second state information corresponding to each objective function based on each of the objective parameters and the theoretical values ​​corresponding to each of the objective parameters; The second process determines the second state information corresponding to each of the objective functions as the first state information.

2. The method according to claim 1, characterized in that, The second status information is any one of normal status information, abnormal status information, and error status information; The second state information corresponding to a single objective function is determined through the following steps: If the difference between the target parameter collected by the objective function and the theoretical value corresponding to the target parameter is less than the first threshold, the second state information corresponding to the objective function is determined as normal state information. If the difference between the target parameter collected by the objective function and the theoretical value corresponding to the target parameter is greater than the second threshold, the second state information corresponding to the objective function is determined as error state information; If the difference between the target parameter collected by the objective function and the theoretical value corresponding to the target parameter is greater than a first threshold and less than a second threshold, the second state information corresponding to the objective function is determined as abnormal state information.

3. The method according to claim 1, characterized in that, The first target process includes at least one of the following: motherboard voltage monitoring process, temperature monitoring process, fan control process, power supply unit (PSU) monitoring process, and high-speed serial computer expansion bus standard PCIe device monitoring process.

4. The method according to any one of claims 1-3, characterized in that, The first process performs a BMC firmware self-test through the following steps: The first process performs a BMC firmware self-test according to a custom protocol, which includes at least one of the following: firmware file size verification; firmware file version number verification; overall image verification code verification; and BMC process startup status verification.

5. A BMC self-testing device, characterized in that, The device includes: A configuration module is used to configure a first process and a second process within the Baseboard Management Controller (BMC). The first process is used to perform a BMC firmware self-test triggered by the power-on of the BMC. The second process is used to perform a BMC process running status self-test triggered by the power-on of the server configured with the BMC. The BMC process is used to monitor the server. The power-on module is used to power on the server if the BMC firmware self-test passes. The early warning module is used to output early warning information when the self-test of the running status of the BMC process fails. The device further includes: The first processing module is used to determine each first target process in the BMC based on the first process information in the target structure. The second processing module is used to detect whether the number of error status information corresponding to each of the first target processes has reached a threshold based on the first state information in the target structure. The third processing module is used to record the log information associated with the second target process for the second target process whose number of error status information in each of the first target processes reaches a threshold, and to determine that the running status self-check of the BMC process has failed. The device further includes: The fourth processing module is used to determine the target function corresponding to each of the first target processes based on the function information in the target structure. The target function is used to collect the associated parameters of the server. The fifth processing module is used to acquire the target parameters collected by each of the target functions; The sixth processing module is used to determine the second state information corresponding to each of the objective functions based on each of the objective parameters and the theoretical values ​​corresponding to each of the objective parameters. The seventh processing module is used to determine the second state information corresponding to each of the objective functions as the first state information.

6. An electronic device comprising a memory, a processor, and a computer program stored in the memory, characterized in that, The processor executes the computer program to implement the BMC self-test method as described in any one of claims 1 to 4.

7. A computer-readable storage medium having a computer program / instructions stored thereon, characterized in that, When the computer program / instruction is executed by the processor, it implements the BMC self-test method as described in any one of claims 1 to 4.

8. A computer program product comprising a computer program / instructions, characterized in that, When the computer program / instruction is executed by the processor, it implements the BMC self-test method as described in any one of claims 1 to 4.

Citation Information

Patent Citations

  • CN102779057A

  • CN107832071A