Server information display method and device, storage medium and electronic equipment
By identifying and writing preset variables through the target firmware program and microcontroller, and determining the list of display devices based on device information, the problem of not being able to specify a specific device for display output in the existing technology is solved, thereby improving the flexibility and security of server display output.
Patent Information
- Application Number
- CN202512034315.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-12-30
- Publication Date
- 2026-04-10
AI Technical Summary
Existing server display output solutions only support display output through onboard devices or through all non-onboard devices, and cannot specify a particular device for display output.
The target firmware and target microcontroller determine whether a selected display output device exists, write the result into a preset variable, and poll all devices associated with the server based on this variable. The list of allowed display devices is determined based on the device information of each device, thus enabling the display output of a specific device.
The server display output solution supports display output on specific devices, improving the flexibility and security of server management.
Smart Images

Figure CN121832870A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of servers, and in particular to methods and apparatus for displaying server information, storage media, and electronic devices. Background Technology
[0002] With changing requirements for server customization, and due to concerns about confidentiality and security, as well as the development of self-developed smart network interface cards (NICs) by server users, server users are increasingly inclined to incorporate display output functions into their self-developed smart NIC devices to improve device security and reduce the risk of settings being tampered with and information being leaked.
[0003] Currently, mainstream servers support both onboard display and graphics card display. Onboard VGA display is implemented through the VGA driver core integrated in the Baseboard Management Controller (BMC) chip (also a PCIe device connected via a PCIe link). Graphics card display is connected to a PCIe display control device through a standard PCIe interface. The display solutions in related technologies only support setting onboard devices or output from other devices (offboard). When set to offboard, all non-onboard devices will have display output.
[0004] Therefore, the problem that server display output solutions in related technologies can only support display output through onboard devices or through all non-onboard devices, and cannot specify a particular device for display output, has not yet been effectively solved. Summary of the Invention
[0005] This application provides a method and apparatus for displaying server information, a storage medium, and an electronic device to at least solve the problem that server display output schemes in related technologies only support display output through onboard devices or through all non-onboard devices, and cannot specify a particular device for display output.
[0006] This application provides a method for displaying server information, comprising: determining, through a target firmware program and a target microcontroller, whether a selected first display output device for displaying server information exists, wherein both the target firmware program and the target microcontroller are allowed to have first device information of the first display output device pre-written into them; the server corresponding to the server information includes the target microcontroller, the first display output device is associated with the server through a preset interface, and the target firmware program runs on the server; if a selected first display output device exists, writing the first device information into a preset variable; polling all devices associated with the server based on the preset variable, and determining a list of display devices allowed to be used by the server through second device information of each device and the first device information; and displaying the server information through a second display output device in the list of display devices.
[0007] This application also provides a server information display device, comprising: a first determining module, configured to determine, through a target firmware program and a target microcontroller, whether there exists a selected first display output device for displaying server information, wherein both the target firmware program and the target microcontroller are allowed to have first device information of the first display output device pre-written into them; the server corresponding to the server information includes the target microcontroller, the first display output device is associated with the server through a preset interface, and the target firmware program runs on the server; a writing module, configured to write the first device information into a preset variable if a selected first display output device exists; a second determining module, configured to poll all devices associated with the server based on the preset variable, and determine a list of display devices allowed to be used by the server through the second device information and the first device information of each device; and a display module, configured to display the server information through the second display output device in the list of display devices.
[0008] This application also provides an electronic device, including: a memory for storing a computer program; and a processor for executing the computer program to implement any of the above-described methods for displaying server information.
[0009] This application also provides a computer-readable storage medium storing a computer program, wherein when the computer program is executed by a processor, it implements the steps of any of the above-described server information display methods.
[0010] This application also provides a computer program product, including a computer program, which, when executed by a processor, implements the steps of any of the above-described methods for displaying server information.
[0011] This application addresses the issue that, given both the target firmware and the target microcontroller can be pre-written with the first device information of a selected first display output device for displaying server information, the existence of a first display output device is determined by the target firmware and the target microcontroller. The server corresponding to the server information includes the target microcontroller, the first display output device is associated with the server through a preset interface, and the target firmware runs on the server. If a selected first display output device exists, the first device information is written into a preset variable. Based on the preset variable, all devices associated with the server are polled, and a list of display devices allowed for use by the server is determined using the second device information and the first device information of each device. The server information is then displayed using the second display output device in the list of display devices. Therefore, this solves the problem in related technologies where server display output schemes only support display output via onboard devices or through all non-onboard devices, and cannot specify a particular device for display output. This achieves the technical effect of enabling server display output schemes to also support specifying a particular device for display output. Attached Figure Description
[0012] 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.
[0013] Figure 1 This is a hardware structure block diagram of a server device for a method of displaying server information according to an embodiment of this application;
[0014] Figure 2 This is a flowchart of a method for displaying server information according to an embodiment of this application;
[0015] Figure 3 This is a schematic diagram of a typical multi-GPU hardware topology of a server according to an optional embodiment of this application;
[0016] Figure 4 This is another flowchart of a method for displaying server information according to an embodiment of this application;
[0017] Figure 5 This is yet another flowchart of a method for displaying server information according to an embodiment of this application;
[0018] Figure 6 This is a frame diagram of a server information display device according to an embodiment of this application. Detailed Implementation
[0019] 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.
[0020] It should be noted that, in the description of this application, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus 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 apparatus. The terms "first," "second," etc., in this application are used to distinguish similar objects and are not used to describe a specific order or sequence.
[0021] To enable those skilled in the art to better understand the present application, the present application will be further described in detail below with reference to the accompanying drawings and specific embodiments.
[0022] The specific application environment architecture or specific hardware architecture on which the method for displaying server information depends is described here.
[0023] The methods and embodiments provided in this application can be executed on a server device or a similar computing device. Taking running on a server device as an example, Figure 1 This is a hardware structure block diagram of a server device for a server information display method according to an embodiment of this application. For example... Figure 1 As shown, the server device may include one or more ( Figure 1 Only one is shown in the diagram. A processor 102 (which may include, but is not limited to, a central processing unit (CPU), microprocessor unit (MPU), or programmable logic device (PLD)) and a memory 104 for storing data are also shown. The server device may further include a transmission device 106 for communication functions, an input / output device 108, and a separate microcontroller 110 (which may include, but is not limited to, a baseboard management controller (BMC)). Those skilled in the art will understand that... Figure 1The structure shown is for illustrative purposes only and does not limit the structure of the server equipment described above. For example, the server equipment may also include components that are more... Figure 1 The more or fewer components shown, or having the same Figure 1 The different configurations shown.
[0024] Memory 104 can be used to store computer programs, such as application software programs and modules, such as the computer program storing the server's Basic Input / Output System (BIOS) or the method for determining the interaction state as described in this embodiment. Processor 102 executes various functional applications and data processing by running the computer programs stored in memory 104, thereby implementing the aforementioned methods. Memory 104 may include high-speed random access memory and non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memories. In some instances, memory 104 may further include memory remotely located relative to processor 102, and these remote memories can be connected to the server device via a network. Examples of such networks include, but are not limited to, the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof.
[0025] The transmission device 106 is used to receive or send data via a network. Specific examples of the network described above may include a wireless network provided by the communication provider of the server device. In one example, the transmission device 106 includes a Network Interface Controller (NIC), which can connect to other network devices via a base station to communicate with the Internet. In another example, the transmission device 106 may be a Radio Frequency (RF) module used for wireless communication with the Internet.
[0026] Figure 2 This is a flowchart illustrating a method for displaying server information according to an embodiment of this application, which can be applied to... Figure 1 In computer terminals, such as Figure 2 As shown, the process includes the following steps:
[0027] Step S202: Determine whether there is a selected first display output device for displaying server information through the target firmware program and the target microcontroller. The target firmware program and the target microcontroller are both allowed to be pre-written with first device information of the first display output device. The server corresponding to the server information includes the target microcontroller. The first display output device is associated with the server through a preset interface. The target firmware program runs on the server.
[0028] Optionally, the target microcontroller is a BMC, and the target firmware is a Basic Input / Output System (BIOS). The server information to be displayed includes: the server's Video Graphics Array (VGA) information. During the boot process, the VGA information displayed on the monitor includes: the boot process, server hardware configuration information, error messages during boot, BIOS configuration information display and settings in the setup interface, and operating system display, etc.
[0029] BIOS is firmware in a computer system, located in a chip on the motherboard. It is responsible for hardware initialization and self-test during computer startup, as well as providing basic input / output functions. BMC is an embedded microcontroller used for remote monitoring and management of the hardware status of servers, workstations, and other computing devices. BMC is a management system independent of the host operating system, providing comprehensive remote monitoring, management, and fault diagnosis capabilities, enabling system administrators to monitor and control server operation anytime, anywhere.
[0030] Step S204: If a selected first display output device exists, write the first device information into a preset variable;
[0031] Optionally, this default variable is the oemVGADevice variable.
[0032] Step S206: Based on the preset variables, poll all devices associated with the server, and determine the list of display devices that the server is allowed to use by using the second device information and the first device information of each device;
[0033] Step S208: Display the server information through the second display output device in the display device list.
[0034] Through the above steps, assuming both the target firmware and the target microcontroller allow the pre-writing of first device information for a selected first display output device used to display server information, the existence of a first display output device is determined by the target firmware and the target microcontroller. The server corresponding to the server information includes the target microcontroller, the first display output device is associated with the server through a preset interface, and the target firmware runs on the server. If a selected first display output device exists, the first device information is written into a preset variable. Based on the preset variable, all devices associated with the server are polled, and a list of display devices allowed for use by the server is determined using the second device information and the first device information of each device. The server information is then displayed using the second display output device in the list of display devices. Therefore, this solves the problem in related technologies where server display output schemes only support display output through onboard devices or through all non-onboard devices, and cannot specify a particular device for display output. This achieves the technical effect of enabling server display output schemes to also support specifying a particular device for display output.
[0035] In an exemplary embodiment, determining whether a selected first display output device for displaying server information exists, based on the target firmware and the target microcontroller, includes: determining whether pre-written first device information exists in the target microcontroller; if the first device information does not exist in the target microcontroller, determining whether pre-written first device information exists in the memory corresponding to the target firmware, wherein the memory is a non-volatile random access memory, and the server includes the memory; if the pre-written first device information exists in either the target microcontroller or the memory corresponding to the target firmware, determining that a selected first display output device for displaying server information exists; if the pre-written first device information does not exist in either the target microcontroller or the memory corresponding to the target firmware, determining that no selected first display output device exists.
[0036] In other words, the system checks whether the BMC contains pre-written first device information for the first display device. If the BMC does not contain the first device information, it checks the memory corresponding to the BIOS to determine whether the pre-written first device information exists. If at least one of the memories corresponding to the BMC or the BIOS contains the first device information, it is determined that a selected first display output device for displaying server information exists; otherwise, if neither the BMC nor the BIOS contains the first device information, it is determined that no selected first display output device exists. Optionally, the order in which the first device information is determined by the target firmware program and the target microcontroller is not limited in this embodiment. That is, it can also be that the first device information is first determined in the memory corresponding to the target firmware program, and then the first device information is determined in the target microcontroller; or it can be determined by determining whether the first device information is present in both the memory corresponding to the target firmware program and the target microcontroller.
[0037] Through the above embodiments, by checking the multi-level memory, flexible and secure settings for the display output device are achieved, ensuring that the display output of server information can be directionally controlled according to the preset first device information, ensuring that server information can be directionally output to a specific display device, thereby improving the flexibility and security of server management.
[0038] In an exemplary embodiment, before determining whether a selected first display output device for displaying server information exists through the target firmware and the target microcontroller, the method further includes: polling all devices through the target firmware to determine optional values under the target firmware, wherein the optional values refer to configuration options related to display output in the target firmware; wherein polling all devices through the target firmware to determine optional values under the target firmware includes: a determination step: determining whether the currently polled device is a display output device through third device information of the currently polled device. In this process, the third device information includes: the device category code of the currently polling device; the addition step: if the currently polling device is the display output device, the third device information is added to a list variable, wherein the list variable is a variable generated by the target firmware program when the server starts; the update step: if all devices have not been polled, the currently polling device is updated to any device among all devices that has not been polled; the determination step, the addition step, and the update step are executed repeatedly until all devices have been polled, and all the third device information included in the list variable is determined as optional values under the target firmware program.
[0039] With the server powered on, the BIOS first polls all PCIe devices associated with the server (equivalent to all devices in the above embodiment) to generate display output configuration options under BIOS setup. During polling, if the device class code in the third-party device information of the currently polled device is a preset value, such as class code 03, it can be determined that the currently polled device belongs to the display output device, and the third-party device information is added to the list variable generated by the BIOS. This list variable is: VgaDeviceList. This process continues until all devices have been polled, and the optional values under BIOS setup are generated using all the third-party device information in the list variable.
[0040] BIOS Setup (Basic Input / Output System settings) is a configuration menu accessible during computer startup, used to configure various basic parameters and options for the computer's hardware. The BIOS is a firmware program that loads first during computer startup; it is responsible for initializing and testing hardware components and loading the operating system. The BIOS Setup program allows users to manually adjust these settings to optimize computer performance or resolve specific hardware problems.
[0041] PCI Express (PCIe) Base Class Code is a coding system used to identify and classify different PCIe devices into broad categories. Base Class Code helps the operating system and drivers quickly identify which major category a device connected to the system belongs to, which is crucial for correct device configuration and driver management. The Base Class Code is an 8-bit field that defines the primary category of the device. The following are common Base Class Codes and their corresponding categories: 0x00 - Unclassified; 0x01 - Mass Storage Controller; 0x02 - Network Controller; 0x03 - Display Controller; 0x04 - Multimedia Device; 0x05 - Memory Controller; 0x06 - Bridge Device.
[0042] Through the above embodiments, the firmware program automatically detects and polls all devices, effectively identifying those suitable for display output and summarizing their information into a list of optional configuration options. This provides a basis for subsequent display output device selection, enhancing the flexibility and controllability of the server's display output. Consequently, it optimizes the management and selection process of display output devices during server startup, improving user experience and device management efficiency.
[0043] Optionally, before determining whether a selected first display output device for displaying server information exists through the target firmware and the target microcontroller, the method further includes one of the following: receiving a setting command sent by the target object to the target microcontroller, wherein the setting command is used to add the first device information of the first display output device to the target microcontroller; determining a selection operation of the target object on optional values under the target firmware, wherein the selection operation is used to determine the first device information of the first display output device from the optional values.
[0044] In other words, the server allows the target object to write the first device information of the first display device to the BMC via a configuration command; and also allows the target object to select an optional value in the configuration options for display output under BIOS setup to specify the first display device. The configuration command is an IPMI command, which carries this first configuration information. After the target object selects an optional value under BIOS setup, the device information corresponding to that optional value is stored as the first device information in the corresponding memory of the BIOS.
[0045] IPMI (Intelligent Platform Management Interface) is a standard interface for managing and monitoring server hardware. It allows system administrators to remotely monitor and manage the status of servers, even if the operating system is not running or has crashed. The IPMI specification defines a framework that includes communication interfaces, message formats, and a range of services such as power control, temperature monitoring, and fan speed adjustment.
[0046] Through the above embodiments, by allowing users or system administrators to pre-configure the information of the first display output device by sending setting commands to the target microcontroller (such as BMC) or selecting it in the configuration options of the firmware (such as BIOS), the customizability and security of the server display output are enhanced.
[0047] In an exemplary embodiment, determining the list of display devices that the server is allowed to use through the second device information and the first device information of each device includes: if each device is determined to be a display output device by the device category code in the second device information, determining the specified device requirements set in the preset variables, wherein the specified device requirements are requirements for devices that are allowed to display output; if the specified device requirements indicate that a single device is allowed to display output, comparing the device address in the first device information and the device address in the second device information, and if the device address in the first device information and the device address in the second device information are the same, adding the second device information to the list of display devices.
[0048] In other words, during the polling of all devices associated with the server based on the preset variables, for each polled device, if it has been determined that each device belongs to the display output device through the device category code included in the second device information of each device, the specified device requirements of the preset variables can be determined first. The specified device requirements include: the target object or service allows a single device to display output, and the target object or service allows devices of the same type to display output.
[0049] If the specified device requirement is that the target object or the server allows a single device to display output, and if the device address included in the second device information of each device matches the device address included in the first device information in the preset variable, then the second device information is added to the list of actual devices; if the device addresses do not match, the process continues to poll the next device. The device address PCIe BDF (Bus / Device / Function, abbreviated as BDF) is an address format used to uniquely identify PCIe devices in the system.
[0050] PCIe BDF is an address format used to uniquely identify PCIe devices in a system. A BDF consists of three parts: Bus (bus number): identifies which PCI or PCIe bus it belongs to; Device (device number): identifies the specific device on that bus; and Function (function number): some PCIe devices may support multiple functions, each of which can be considered an independent logical device.
[0051] Furthermore, after determining the specified device requirements set in the preset variables, the method further includes: when the specified device requirements indicate that display output from similar devices is allowed, comparing the device identifier in the first device information and the device identifier in the second device information; wherein the device identifier includes: a supplier identifier and a device identifier; if the device identifier in the first device information and the device identifier in the second device information are the same, adding the second device information to the display device list.
[0052] If the specified device requirement is that the target object or service allows similar devices to display output, then the device identifier in the second device information is compared with the device identifier in the first device information. If they match, the second device information is added to the display device list; if the device identifiers do not match, the process continues polling the next device. Optionally, if the second device information of every device in all devices does not match the first device information in a preset variable, an alarm is sent to the target object. The device identifier includes the Vendor ID (VID) and the Device ID (DID).
[0053] In PCI Express (PCIe) devices, VID and DID are crucial identifiers used to uniquely identify the device and its vendor. VID uniquely identifies the manufacturer of the PCIe device. These identifiers are assigned to each company by the PCI Special Interest Group (PCI-SIG). For example, companies like Intel, AMD, and NVIDIA each have their own VID. DID uniquely identifies the specific model of a device manufactured by a particular company. Within the same vendor, different products will have different DIDs.
[0054] The embodiments of this application achieve precise matching based on device category codes and addresses or identifiers, thereby automatically generating a list of devices that can be used for server information display output according to preset specified device requirements. This greatly improves the accuracy and flexibility of display output control.
[0055] Optionally, after determining whether a first display output device for displaying server information exists through the target firmware program and the target microcontroller, the method further includes: polling all devices associated with the server if no first display output device is selected; and displaying the server information through the device with the target value among all devices.
[0056] In other words, if neither the BIOS nor the BMC has the first device information for a pre-selected first display output device, all devices with the target value of the device category code associated with the server are allowed to display the server information.
[0057] Optionally, during server startup, detailed device information (including VID / DID and BDF) of all display output devices associated with the server is collected via the BIOS. If server information is already being displayed via a second display device in the display device list: During server operation, changes in display output requirements and display device status (including device connectivity, performance, and security) are continuously monitored. When display output requirements change or the current display device status does not meet preset standards, the terminal devices in the display device list are evaluated, and the most suitable display output device is intelligently selected based on the current environment and requirements.
[0058] The evaluation of devices in the display device list includes: monitoring the connection stability, performance parameters, and security level of each display device in real time when multiple devices are present; weighted summing of these parameters to obtain a device score for each display device; and immediately initiating a device switching process if the current display device's score is below a preset threshold (i.e., does not meet preset standards), switching the display output to the new optimal device (i.e., the device with the highest score). The switching mechanism should minimize display interruption time, maintain data continuity, and ensure a smooth user experience. Preset standards include: a connection stability threshold of 90% or higher (potentially higher in graphics-intensive applications); performance parameter thresholds with a resolution of at least 1920x1080 and a refresh rate of at least 60Hz (adjustable based on specific application requirements); and a security level threshold requiring devices to have data encryption capabilities and access control, conforming to preset security protocols (such as TLS 1.2).
[0059] The above solution enables real-time switching of display output devices, ensuring that the server information display output meets the user's immediate needs while maintaining high security and stability.
[0060] To better understand the process of the above-described method for displaying server information, the implementation flow of the above-described method for displaying server information will be described below in conjunction with optional embodiments, but this is not intended to limit the technical solutions of the embodiments of this application.
[0061] A typical multi-GPU hardware topology for a server is as follows: Figure 3As shown (AI model), the basic topology uses an Open Compute Project (OCP) network interface card (customer-developed smart network card) for network connectivity and management server use. Multiple GPUs or graphics cards are also configured for AI computing. Figure 3 The topology shown contains the following devices that support display: 8 GPU devices, 1 OCP (Intelligent Network Interface Card) device, and an unlabeled VGA device integrated into the BMC, totaling 10 devices that can be used for display output. Under normal code functionality, only the VGA device (onboard) or other devices (PCI devices) within the BMC can be selected for display output, including both OCP and GPU; it is not possible to specify a particular device as the sole display output.
[0062] To address the issue of not being able to designate a specific device for display output, this application proposes an optional embodiment of a method for limiting the display output of server information (equivalent to the server information display method in the above embodiments). This method allows for the designation of a specific device from the existing pool of devices for display, while other devices default to a black screen with no output.
[0063] Specifically, one method for limiting server information display output can be achieved by setting VID & DID through BMC, or through BIOS options under setup, or by specifying a specific device's BDF to select the device for display information. For example... Figure 4 As shown, it includes the following steps:
[0064] Step 401: Use IPMI commands to obtain information from BMC whether the specified display output device is configured by BMC. If it is, proceed to step 403; otherwise, proceed to step 402.
[0065] Step 402: Check the NVRAM in the BIOS to see if there is a display output device selected by setup. If there is, proceed to step 403; otherwise, proceed to step 409.
[0066] Step 403: Write the obtained device information into the variable oemVGADevice for later comparison, and then execute step 404.
[0067] Step 404: Start polling all PCIe devices. When polling starts, obtain the current device's VID / DID, BDF, class code, and other information. If polling is not finished, proceed to step 405. If polling is finished, proceed to step 408.
[0068] Step 405: Check if the class code of the currently polled device is 03 Display Controller. If yes, proceed to step 406; otherwise, proceed to step 404.
[0069] Step 406: Check whether the DID DID information or BDF information of the currently polling device meets the device requirements specified by OEMVGADevice. If it does, proceed to step 407; otherwise, proceed to step 404.
[0070] Step 407: Add the current device to the list of available display devices using the code AddDevicePath, and then proceed to step 404.
[0071] Step 408: Based on the information in the AddDevicePath list, specify the display output device, and output the BIOS and system content that needs to be displayed normally. The process ends here. If multiple devices that meet the set conditions exist, this step also supports simultaneous output from multiple devices.
[0072] Step 409: Start polling all PCIe devices. When polling starts, obtain the current device's VID / DID, BDF, class code, and other information. If polling is not finished, execute step 410. If polling is finished, execute step 408.
[0073] Step 410: Check if the class code in the currently polled device information is 03 Display Controller. If yes, proceed to step 411; otherwise, proceed to step 409.
[0074] Step 411: Add the current device information to the DevicePath, and then proceed to step 409.
[0075] Before performing step 402 above, the BIOS needs to collect information and generate options during the boot process. The specific implementation steps are as follows: Figure 5 As shown, it includes:
[0076] Step 501: Start polling all PCIe devices. When polling starts, obtain the current device's VID / DID, BDF, class code, and other information. If polling is not finished, execute step 502. If polling is finished, execute step 504.
[0077] Step 502: Determine whether the current device is a display controller device with class code 3. If yes, proceed to step 503; otherwise, proceed to step 501.
[0078] Step 503: Record the VID, DID, and BDF information of the current PCIe device into the VgaDeviceList variable, and then execute step 501.
[0079] Step 504: If VgaDeviceList is not empty, generate the AddDevicePath option under setup (i.e., the corresponding...). Figure 5 (Add the video selcet option to setup), then proceed to step 505.
[0080] Step 505: Generate all available device values based on the contents of VgaDeviceList. Functionality complete.
[0081] After executing steps S401 to S411 above, the function of controlling the display of one or more devices via IPMI commands or setup options can be realized. Through the optional embodiments of this application, during the power-on process, the effect of controlling one or more devices as display outputs based on VID, DID, or device BDF is achieved.
[0082] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods according to the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk), and includes several instructions to cause a terminal device (which may be a mobile phone, computer, server, or network device, etc.) to execute the methods described in the various embodiments of this application.
[0083] This embodiment also provides a server information display device, which is used to implement the above embodiments and preferred embodiments, and will not be repeated hereafter. Although the device described in the following embodiments is preferably implemented in software, hardware implementation, or a combination of software and hardware, is also possible and contemplated.
[0084] Figure 6 This is a frame diagram of a server information display device according to an embodiment of this application, such as... Figure 6 As shown, the device includes:
[0085] The first determining module 62 is used to determine, through the target firmware program and the target microcontroller, whether there exists a selected first display output device for displaying server information, wherein both the target firmware program and the target microcontroller are allowed to be pre-written with first device information of the first display output device; the server corresponding to the server information includes the target microcontroller, the first display output device is associated with the server through a preset interface, and the target firmware program runs on the server;
[0086] The writing module 64 is used to write the first device information into a preset variable when a selected first display output device exists;
[0087] The second determining module 66 is used to poll all devices associated with the server based on the preset variables, and determine the list of display devices that the server is allowed to use by using the second device information and the first device information of each device.
[0088] Display module 68 is used to display the server information through a second display output device in the list of display devices.
[0089] Using the aforementioned server information display device, assuming both the target firmware and the target microcontroller allow the pre-written first device information of a selected first display output device for displaying server information, the existence of a first display output device is determined by the target firmware and the target microcontroller. The server corresponding to the server information includes the target microcontroller, the first display output device is associated with the server through a preset interface, and the target firmware runs on the server. If a selected first display output device exists, the first device information is written into a preset variable. Based on the preset variable, all devices associated with the server are polled, and a list of display devices allowed for use by the server is determined using the second device information and the first device information of each device. The server information is then displayed using the second display output device in the list of display devices. Therefore, this solves the problem in related technologies where server display output schemes only support display output through onboard devices or through all non-onboard devices, and cannot specify a particular device for display output. This achieves the technical effect of enabling server display output schemes to also support specifying a particular device for display output.
[0090] In an exemplary embodiment, the first determining module 62 is further configured to determine whether the first device information pre-written exists in the target microcontroller; if the first device information does not exist in the target microcontroller, determine whether the first device information pre-written exists in the memory corresponding to the target firmware program, wherein the memory is a non-volatile random access memory, and the server includes the memory; if the first device information pre-written exists in the memory corresponding to the target microcontroller or the target firmware program, determine that a selected first display output device for displaying server information exists; if the first device information pre-written does not exist in either the memory corresponding to the target microcontroller or the target firmware program, determine that no selected first display output device for displaying server information exists.
[0091] In an exemplary embodiment, the apparatus further includes a third determining module, configured to, before determining whether a selected first display output device for displaying server information exists via the target firmware and the target microcontroller, poll all devices via the target firmware to determine selectable values under the target firmware, wherein the selectable values refer to configuration options related to display output in the target firmware; wherein, polling all devices via the target firmware to determine selectable values under the target firmware includes: a determining step: determining whether the currently polled device is a display output device based on third device information of the currently polled device. The device, wherein the third device information includes: the device category code of the currently polled device; the addition step: if the currently polled device is the display output device, the third device information is added to a list variable, wherein the list variable is a variable generated by the target firmware program when the server starts; the update step: if all devices have not been polled, the currently polled device is updated to any device among all devices that has not been polled; the determination step, the addition step, and the update step are executed repeatedly until all devices have been polled, and all the third device information included in the list variable is determined as optional values under the target firmware program.
[0092] In an exemplary embodiment, the apparatus further includes a receiving module, configured to receive a setting command sent by a target object to the target microcontroller before determining, through the target firmware program and the target microcontroller, whether a selected first display output device for displaying server information exists, wherein the setting command is used to add the first device information of the first display output device to the target microcontroller; and to determine a selection operation of the target object on optional values under the target firmware program, wherein the selection operation is used to determine the first device information of the first display output device from the optional values.
[0093] In an exemplary embodiment, the second determining module 66 is further configured to, when each device is determined to be a display output device by means of the device category code in the second device information, determine the specified device requirement set in the preset variable, wherein the specified device requirement is a requirement for devices that are allowed to display output; when the specified device requirement indicates that a single device is allowed to display output, compare the device address in the first device information and the device address in the second device information, and add the second device information to the display device list if the device address in the first device information and the device address in the second device information are the same.
[0094] In an exemplary embodiment, the second determining module 66 is further configured to, when the specified device request indicates that similar devices are allowed to display output, compare the device identifier in the first device information and the device identifier in the second device information; wherein the device identifier includes: a supplier identifier and a device identifier; and if the device identifier in the first device information and the device identifier in the second device information are the same, add the second device information to the display device list.
[0095] In an exemplary embodiment, the display module 68 is further configured to poll all devices associated with the server in the absence of a selected first display output device; and display the server information through the devices whose device category code is the target value among all the devices.
[0096] For a description of the features in the embodiment corresponding to the server information display device, please refer to the relevant description in the embodiment corresponding to the server information display method, which will not be repeated here.
[0097] Embodiments of this application also provide an electronic device, including a memory and a processor, wherein the memory stores a computer program, and the processor is configured to run the computer program to perform the steps in any of the above-described embodiments of the server information display method.
[0098] Embodiments of this application also provide a computer-readable storage medium storing a computer program, wherein the computer program is configured to execute the steps in any of the above-described embodiments of the server information display method when it is run.
[0099] In one exemplary embodiment, the aforementioned computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as a USB flash drive, read-only memory (ROM), random access memory (RAM), portable hard disk, magnetic disk, or optical disk.
[0100] The embodiments of this application also provide a computer program product, which includes a computer program that, when executed by a processor, implements the steps in any of the above-described server information display method embodiments.
[0101] Embodiments of this application also provide another computer program product, including a non-volatile computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps in any of the above-described server information display method embodiments.
[0102] Those skilled in the art will further recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0103] The above provides a detailed description of a method for displaying server information 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 intended to help understand the method and core ideas of this application. It should be noted that those skilled in the art can make various improvements and modifications to this application without departing from its principles, and these improvements and modifications also fall within the protection scope of the claims of this application.
Claims
1. A method for displaying server information, characterized in that, include: The existence of a selected first display output device for displaying server information is determined by the target firmware program and the target microcontroller. Both the target firmware program and the target microcontroller are allowed to be pre-written with first device information of the first display output device. The server corresponding to the server information includes the target microcontroller. The first display output device is associated with the server through a preset interface, and the target firmware program runs on the server. If a selected first display output device exists, the information of the first device is written into a preset variable; Based on the preset variables, all devices associated with the server are polled in a round-robin fashion, and the list of display devices that the server is allowed to use is determined by the second device information and the first device information of each device. The server information is displayed through the second display output device in the list of display devices.
2. The method for displaying server information according to claim 1, characterized in that, The existence of a selected first display output device for displaying server information is determined through the target firmware and the target microcontroller, including: Determine whether the first device information, which has been pre-written, exists in the target microcontroller; If the first device information is not present in the target microcontroller, determine whether the first device information that has been pre-written exists in the memory corresponding to the target firmware program, wherein the memory is a non-volatile random access memory, and the server includes the memory; If the first device information is pre-written in the memory corresponding to the target microcontroller or the target firmware program, it is determined that there is a selected first display output device for displaying server information. If the first device information is not pre-written in either the memory of the target microcontroller or the memory of the target firmware program, it is determined that there is no selected first display output device for displaying server information.
3. The method for displaying server information according to claim 1, characterized in that, Before determining, via the target firmware and target microcontroller, whether a selected first display output device exists for displaying server information, the method further includes: With the server powered on, all devices are polled through the target firmware to determine the optional values under the target firmware, wherein the optional values refer to the configuration options related to display output in the target firmware; Specifically, polling all devices through the target firmware program to determine the available values under the target firmware program includes: Determination Steps: Determine whether the currently polled device is a display output device by using the third device information of the currently polled device, wherein the third device information includes: the device category code of the currently polled device; Adding step: If the currently polled device is the display output device, add the third device information to the list variable, wherein the list variable is a variable generated by the target firmware program when the server starts; Update steps: If all devices have not been polled, update the currently polled device to any device that has not been polled among all devices; The determination step, the addition step, and the update step are executed repeatedly until all devices have been polled, and all the third device information included in the list variable is determined as the optional value under the target firmware program.
4. The method for displaying server information according to claim 1, characterized in that, Before determining, via the target firmware and target microcontroller, whether a selected first display output device exists for displaying server information, the method further includes one of the following: Receive a setting command sent by the target object to the target microcontroller, wherein the setting command is used to add the first device information of the first display output device to the target microcontroller; A selection operation is determined for the target object to select optional values under the target firmware program, wherein the selection operation is used to determine the first device information of the first display output device from the optional values.
5. The method for displaying server information according to claim 1, characterized in that, The list of display devices allowed to be used by the server is determined by using the second device information and the first device information of each device, including: If each device is determined to be a display output device by means of the device category code in the second device information, the specified device requirements set in the preset variables are determined, wherein the specified device requirements are requirements for devices that are allowed to display output; If the specified device request indicates that a single device display output is allowed, compare the device address in the first device information with the device address in the second device information. If the device address in the first device information is the same as the device address in the second device information, the second device information is added to the display device list.
6. The method for displaying server information according to claim 5, characterized in that, After determining the specified device requirements set in the preset variables, the method further includes: If the specified device requests permission for similar devices to display output, the device identifier in the first device information and the device identifier in the second device information are compared; wherein, the device identifier includes: a supplier identifier and a device identifier; If the device identifier in the first device information and the device identifier in the second device information are the same, the second device information is added to the display device list.
7. The method for displaying server information according to claim 1, characterized in that, After determining, through the target firmware and the target microcontroller, whether a selected first display output device exists for displaying server information, the method further includes: If no first display output device is selected, all devices associated with the server are polled. The server information is displayed by selecting the device whose device category code matches the target value from among all the devices.
8. A device for displaying server information, characterized in that, include: The first determining module is used to determine, through the target firmware program and the target microcontroller, whether there exists a selected first display output device for displaying server information, wherein both the target firmware program and the target microcontroller are allowed to be pre-written with first device information of the first display output device; the server corresponding to the server information includes the target microcontroller, the first display output device is associated with the server through a preset interface, and the target firmware program runs on the server; The writing module is used to write the first device information into a preset variable when a selected first display output device exists; The second determining module is used to poll all devices associated with the server based on the preset variables, and determine the list of display devices that the server is allowed to use by using the second device information and the first device information of each device. The display module is used to display the server information through a second display output device in the list of display devices.
9. An electronic device, characterized in that, include: Memory, used to store computer programs; A processor, configured to implement the steps of the method for displaying server information as described in any one of claims 1 to 7 when executing the computer program.
10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program, wherein the computer program, when executed by a processor, implements the steps of the method for displaying server information as described in any one of claims 1 to 7.