Kernel driver upgrade method, device, server and storage medium
By providing an adaptive upgrade method of kernel drivers in the server, the problems of limited scope of driver upgrades and high complexity in batch deployment in the prior art are solved, and efficient driver upgrades and reduced maintenance costs are achieved.
Patent Information
- Application Number
- CN202110157730.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-02-04
- Publication Date
- 2025-05-16
- Estimated Expiration
- 2041-02-04
AI Technical Summary
The prior art has problems such as limited scope of application and high batch deployment complexity when upgrading drivers in servers, resulting in low upgrade efficiency and high maintenance costs.
It provides an adaptive upgrade method for kernel drivers, which can obtain upgrade instructions, determine whether there is a matching driver package in the driver library, and automatically compile the adapted driver package when it does not exist for upgrading.
The server adaptively selects the appropriate upgrade plan, avoids the impact of driver risks on server stability, simplifies the operation process of batch deployment, improves the upgrade efficiency of drivers, and reduces the maintenance cost of server clusters.
Smart Images

Figure CN113741926B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the computer field, and in particular to a kernel driver upgrade method, device, server and storage medium. Background Art
[0002] The server contains many hardware devices, which can be called server components, such as network cards, array cards, accelerator cards, and graphics processing units (GPUs). Components are usually embedded with firmware, which is used to determine the functions and performance of the components and exists independently of the server's operating system. Figure 1 As shown, the driver of the component is installed in the operating system, which is equivalent to the interface of the component and is a bridge connecting the hardware (i.e., the component) and the kernel of the operating system for communication. For the same component, when the kernel version of the operating system is different, the driver is also different.
[0003] During the operation of the server, some components may have driver risks. To avoid the impact of driver risks on the stability of the server, the corresponding driver programs need to be upgraded in a timely manner. Summary of the invention
[0004] To solve the related technical problems, the embodiments of the present application provide a kernel driver upgrade method, device, server and storage medium.
[0005] The technical solution of the embodiment of the present application is implemented as follows:
[0006] The present application embodiment provides a kernel driver upgrade method, which is applied to a server and includes:
[0007] Obtaining an upgrade instruction; determining a driver to be upgraded based on the acquired upgrade instruction;
[0008] Determine whether there is a first driver package matching the driver to be upgraded in the driver library, and obtain a first determination result;
[0009] When the first judgment result indicates that the first driver package exists in the driver library, obtaining the first driver package from the driver library; and upgrading the driver to be upgraded by using the first driver package;
[0010] When the first judgment result indicates that the first driver package does not exist in the driver library, the server is controlled to automatically compile a second driver package; and the driver to be upgraded is upgraded using the second driver package.
[0011] In the above solution, the step of determining whether there is a first driver package matching the driver to be upgraded in the driver library includes:
[0012] Determine whether there is a target driver package with the same name as the driver to be upgraded in the driver library, and obtain a second determination result;
[0013] In the case where the second judgment result indicates that there is a target driver package with the same name as the driver to be upgraded in the driver library, judging whether the kernel version corresponding to the target driver package is the same as the kernel version of the server, to obtain a third judgment result;
[0014] When the third judgment result indicates that the kernel version corresponding to the target driver package is the same as the kernel version of the server, it is determined that the first driver package exists in the driver library; and the target driver package is determined to be the first driver package.
[0015] In the above solution, the step of determining whether there is a first driver package matching the driver to be upgraded in the driver library includes:
[0016] Determine whether there is a target driver package with the same name as the driver to be upgraded in the driver library, and obtain a second determination result;
[0017] In the case where the second judgment result indicates that there is a target driver package with the same name as the driver to be upgraded in the driver library, judging whether the kernel version corresponding to the target driver package is the same as the kernel version of the server, to obtain a third judgment result;
[0018] When the second judgment result indicates that there is no target driver package with the same name as the driver to be upgraded in the driver library, or when the third judgment result indicates that the kernel version corresponding to the target driver package is different from the kernel version of the server, it is determined that the first driver package does not exist in the driver library.
[0019] In the above solution, the kernel version corresponding to the driver to be upgraded does not match the kernel version of the server; and the step of controlling the server to automatically compile the second driver package includes:
[0020] Based on the kernel version of the server, the server is controlled to automatically compile a second driver package.
[0021] In the above solution, the step of controlling the server to automatically compile the second driver package based on the kernel version of the server includes:
[0022] In the case where it is determined based on the kernel version of the server that the kernel of the server is a standard kernel, obtaining a standard software warehouse corresponding to the standard kernel;
[0023] Based on the standard software warehouse, the server is controlled to automatically compile a second driver package.
[0024] In the above solution, the step of controlling the server to automatically compile the second driver package based on the kernel version of the server includes:
[0025] In the case where it is determined based on the kernel version of the server that the kernel of the server is a custom kernel, obtaining a custom software warehouse corresponding to the custom kernel;
[0026] Based on the custom software warehouse, the server is controlled to automatically compile a second driver package.
[0027] In the above scheme, the method further comprises:
[0028] When the driver to be upgraded is upgraded by using the first driver package, in case of upgrade failure, the server is controlled to automatically compile a second driver package; and the driver to be upgraded is upgraded by using the second driver package.
[0029] In the above scheme, the method further comprises:
[0030] When the driver to be upgraded is upgraded by utilizing the second driver package, if the upgrade is successful, the server is controlled to store the second driver package in the driver library.
[0031] In the above solution, the obtaining of the upgrade instruction includes one of the following:
[0032] Receiving an upgrade instruction sent by a monitoring device; the monitoring device is used to monitor the status of a kernel driver of each server among a plurality of servers;
[0033] Receiving the upgrade instruction sent by the terminal;
[0034] It is detected that the server has a kernel driver to be upgraded.
[0035] The embodiment of the present application also provides a kernel driver upgrade device, including:
[0036] An acquisition unit, used for acquiring an upgrade instruction; and determining a driver to be upgraded based on the acquired upgrade instruction;
[0037] A first processing unit, configured to determine whether there is a first driver package matching the driver to be upgraded in the driver library, and obtain a first determination result;
[0038] a second processing unit, configured to obtain the first driver package from the driver library if the first judgment result indicates that the first driver package exists in the driver library; and upgrade the driver to be upgraded by using the first driver package;
[0039] The third processing unit is used to control the server to automatically compile a second driver package when the first judgment result indicates that the first driver package does not exist in the driver library; and use the second driver package to upgrade the driver to be upgraded.
[0040] The embodiment of the present application also provides a server, comprising: a processor and a memory for storing a computer program that can be run on the processor;
[0041] Wherein, the processor is used to execute the steps of any of the above methods when running the computer program.
[0042] An embodiment of the present application further provides a storage medium, wherein the medium stores a computer program, and when the computer program is executed by a processor, the steps of any of the above methods are implemented.
[0043] The kernel driver upgrade method, device, server and storage medium provided in the embodiment of the present application obtain upgrade instructions; determine the driver to be upgraded based on the acquired upgrade instructions; determine whether there is a first driver package matching the driver to be upgraded in the driver library to obtain a first judgment result; when the first judgment result indicates that the first driver package exists in the driver library, obtain the first driver package from the driver library; use the first driver package to upgrade the driver to be upgraded; when the first judgment result indicates that the first driver package does not exist in the driver library, control the server to automatically compile the second driver package; use the second driver package to upgrade the driver to be upgraded. In the solution of the embodiment of the present application, the server adaptively upgrades the driver to be upgraded, that is, automatically selects a suitable upgrade solution to upgrade the driver to be upgraded; in this way, the influence of driver hidden dangers on the stability of the server can be avoided, and the operation process of upgrading the driver for each server can be simplified in the scenario of batch deployment of servers, thereby improving the upgrade efficiency of the driver and reducing the maintenance cost of the server cluster. BRIEF DESCRIPTION OF THE DRAWINGS
[0044] Figure 1 This is a kernel diagram for integrating drivers;
[0045] Figure 2 A flowchart of a method for upgrading a kernel driver according to an embodiment of the present application;
[0046] Figure 3 A schematic diagram of an application scenario of an application embodiment of the present application;
[0047] Figure 4 This is a schematic diagram of the process of adaptively upgrading the host driver according to the application embodiment of the present application;
[0048] Figure 5 A schematic diagram of the structure of the kernel driver upgrade device of the embodiment of the present application;
[0049] Figure 6 This is a schematic diagram of the structure of the server of the embodiment of the present application. DETAILED DESCRIPTION
[0050] In the related art, driver hidden dangers may cause server downtime (i.e., freeze phenomenon). In order to avoid or repair driver hidden dangers of components, the corresponding driver can be manually upgraded using the driver package released by the corresponding manufacturer. Of course, in the case of newly installing the operating system, reinstalling the operating system, or when there are vulnerabilities (which can be expressed as Bugs in English) in the online system, in order to ensure the stability of system operation, the corresponding driver can also be manually upgraded using the driver package released by the corresponding manufacturer.
[0051] Specifically, server manufacturers or upper-layer component suppliers will provide unified, compiled driver packages for some specified kernel versions. When the driver needs to be upgraded, it is necessary to manually check the server's original equipment manufacturer (OEM) information and the operating system's kernel information, and find the driver package provided (i.e., released) by the corresponding manufacturer. After verifying the found driver package (such as stability testing, functional testing, etc.), the corresponding driver can be manually upgraded.
[0052] However, manually upgrading the corresponding driver using the driver package provided by the corresponding manufacturer may have the following problems:
[0053] First, the scope of application of the driver packages provided by the corresponding manufacturers is limited.
[0054] Specifically, there are many types of operating systems and kernel versions of various operating systems. When there is a need to upgrade the driver, the corresponding manufacturer will only release driver packages for the main kernel (also known as the mainstream kernel, which is the standard kernel maintained by the official platform or obtained from the official platform) version of the mainstream operating system, and cannot provide driver packages for all kernel versions of each operating system in a timely manner. In this way, if the kernel type of the server is a customized kernel (i.e., a custom kernel) obtained by optimizing, cutting, etc. based on the mainstream kernel, it is impossible to upgrade the corresponding driver using the driver package provided by the corresponding manufacturer.
[0055] Second, in scenarios where servers are deployed in batches, such as data centers, the driver upgrade process is complex, deployment efficiency is low, and maintenance costs are high.
[0056] Specifically, for a large number of servers deployed in batches, if the driver is manually upgraded for each server, the entire upgrade process will be manually intervened, which will result in too much manual operation, making the upgrade difficult and inefficient. In addition, since the operating systems or kernel versions installed on these servers are different, for the same server component, a large number of matching relationships between kernel versions and driver packages need to be maintained; at the same time, since the driver packages provided by the corresponding manufacturers are usually in binary form, there are limitations in the form of driver packages, and a large number of compiled binary versions of driver packages need to be maintained.
[0057] Based on this, in various embodiments of the present application, the server adaptively upgrades the driver that needs to be upgraded, that is, automatically selects a suitable upgrade plan to upgrade the driver that needs to be upgraded; in this way, the impact of driver hidden dangers on the stability of the server can be avoided, and the operational process of upgrading the driver for each server can be simplified in the scenario of batch deployment of servers, thereby improving the upgrade efficiency of the driver and reducing the maintenance cost of the server cluster.
[0058] The present application embodiment provides a kernel driver upgrade method, which is applied to a server, such as Figure 2 As shown, the method includes:
[0059] Step 201: Obtain an upgrade instruction; determine a driver to be upgraded based on the acquired upgrade instruction;
[0060] Step 202: Determine whether there is a first driver package matching the driver to be upgraded in the driver library, and obtain a first determination result;
[0061] Step 203: when the first judgment result indicates that the first driver package exists in the driver library, obtaining the first driver package from the driver library; and upgrading the driver to be upgraded by using the first driver package;
[0062] Step 204: when the first judgment result indicates that the first driver package does not exist in the driver library, control the server to automatically compile a second driver package; and use the second driver package to upgrade the driver to be upgraded.
[0063] Among them, using the first driver package or the second driver package to upgrade the driver to be upgraded may include: using the first driver package or the second driver package to perform initial installation of the driver; or using the first driver package or the second driver package to perform overwriting installation of the driver.
[0064] Here, it should be noted that in various embodiments of the present application, the server may also be referred to as a host. Since the driver to be upgraded exists in the server, the server may also be referred to as a server to be upgraded or a host to be upgraded.
[0065] In actual application, the kernel driver upgrade method provided in the embodiment of the present application can be applied in scenarios where servers are deployed in batches, such as data centers, to upgrade the drivers of each server in a server cluster (also referred to as a host group).
[0066] In actual application, the method for determining whether the driver of each server in the server cluster needs to be upgraded can be set according to the needs. For example, a monitoring device that can communicate with each server in the server cluster can be set, and the monitoring device monitors whether the driver of each server in the server cluster needs to be upgraded by obtaining the configuration of each server and the relevant information of the driver. For another example, the terminal can monitor whether the driver of each server in the server cluster needs to be upgraded, or the user can directly indicate whether the driver of one or more servers needs to be upgraded through the terminal. Of course, the server can also monitor whether it has a kernel driver to be upgraded based on its own configuration and the relevant information of the driver.
[0067] Based on this, for step 201, in one embodiment, obtaining the upgrade instruction may include one of the following:
[0068] Receiving an upgrade instruction sent by a monitoring device; the monitoring device is used to monitor the status of a kernel driver of each server in a plurality of servers (i.e., a server cluster);
[0069] Receiving the upgrade instruction sent by the terminal;
[0070] It is detected that the server has a kernel driver to be upgraded.
[0071] Wherein, in actual application, for each of the multiple servers, the monitoring device can monitor the running state of the corresponding server and obtain the configuration and driver information of the corresponding server; the configuration and driver information can include: the component name of the corresponding server, the number of components of the corresponding server, the slot (in English, it can be expressed as Slot) information corresponding to the components of the corresponding server, the driver version information of the corresponding server, the firmware version information of the corresponding server, the operating system version information of the corresponding server, the kernel version information of the corresponding server, etc. The monitoring device can determine whether there is a kernel driver to be upgraded in the corresponding server according to the monitored running state of the corresponding server and the obtained configuration and driver information of the corresponding server, and send an upgrade instruction to the corresponding server when it is determined that there is a kernel driver to be upgraded in the corresponding server.
[0072] In actual application, the terminal may include a personal computer (PC), a mobile phone, a wearable smart device, etc.; the PC may include a desktop computer, a laptop computer, a tablet computer, a car computer, etc. The terminal may monitor the running status of the server and obtain the configuration and driver information of the server, and determine whether there is a kernel driver to be upgraded in the server according to the monitored running status of the server and the obtained configuration and driver information of the server, and send an upgrade instruction to the server when it is determined that there is a kernel driver to be upgraded in the server. Of course, the user can determine whether there is a kernel driver to be upgraded in the server according to the needs, and directly send the upgrade instruction to the server through the terminal.
[0073] In actual application, the server can monitor its own operating status and obtain relevant information of its own configuration and driver. According to its own operating status and the obtained relevant information of the configuration and driver, it can determine whether it has a kernel driver to be upgraded. When it is determined that it has a kernel driver to be upgraded, it can determine to obtain the upgrade instruction.
[0074] In step 202, in actual application, the driver package in the driver library can be set according to requirements, and the storage location of the driver library can also be set according to requirements. For example, the driver library can be stored locally on the server; for another example, the driver library can also be stored in the monitoring device. In the case where the driver library is stored in the monitoring device, the server can determine whether there is a first driver package matching the driver to be upgraded in the driver library by sending query information to the monitoring device.
[0075] In actual application, in order to successfully use the first driver package to upgrade the driver to be upgraded, the name of the first driver package needs to be the same as the name of the driver to be upgraded, and the kernel version corresponding to the first driver package also needs to be the same as the kernel version of the server.
[0076] Based on this, in one embodiment, the step of determining whether there is a first driver package matching the driver to be upgraded in the driver library may include:
[0077] Determine whether there is a target driver package with the same name as the driver to be upgraded in the driver library, and obtain a second determination result;
[0078] In the case where the second judgment result indicates that there is a target driver package with the same name as the driver to be upgraded in the driver library, judging whether the kernel version corresponding to the target driver package is the same as the kernel version of the server, to obtain a third judgment result;
[0079] Thus, when the third judgment result indicates that the kernel version corresponding to the target driver package is the same as the kernel version of the server, it can be determined that the first driver package exists in the driver library; and the target driver package is determined to be the first driver package;
[0080] When the second judgment result indicates that there is no target driver package with the same name as the driver to be upgraded in the driver library, or when the third judgment result indicates that the kernel version corresponding to the target driver package is different from the kernel version of the server, it can be determined that the first driver package does not exist in the driver library.
[0081] In actual application, when the driver library is stored (i.e., maintained) in the monitoring device, the determination of whether there is a first driver package matching the driver to be upgraded in the driver library may specifically include: sending query information to the monitoring device, the query information being used to instruct the monitoring device to determine whether there is a first driver package matching the driver to be upgraded in the driver library maintained by the monitoring device. After the monitoring device obtains the first determination result, the first determination result may be returned to the server, and then the server requests the first driver package from the monitoring device. Of course, the monitoring device may also directly return the first driver package to the server when the first determination result indicates that the first driver package exists in the driver library.
[0082] Correspondingly, in step 203, in actual application, obtaining the first driver package from the driver library may include: sending a request message for requesting the first driver package to the monitoring device, and receiving the first driver package returned by the monitoring device in response to the request message; or, directly receiving the first driver package sent by the monitoring device.
[0083] In actual application, the reasons why the driver to be upgraded needs to be upgraded may include: the kernel version corresponding to the driver to be upgraded does not match the kernel version of the server, the driver to be upgraded runs incorrectly, and the like.
[0084] Wherein, for step 204, in one embodiment, when the kernel version corresponding to the driver to be upgraded does not match the kernel version of the server, controlling the server to automatically compile the second driver package may include:
[0085] Based on the kernel version of the server, the server is controlled to automatically compile a second driver package.
[0086] In actual application, the kernel of the server can be a standard kernel or a custom kernel; the standard kernel can also be called a mainstream kernel, which is a kernel maintained by or obtained from an official platform; the custom kernel refers to a customized kernel obtained by optimizing, cutting, etc. on the basis of the standard kernel. Based on the different kernel types of the server, the specific process of controlling the server to automatically compile the second driver package is also different.
[0087] Based on this, in one embodiment, controlling the server to automatically compile the second driver package based on the kernel version of the server may include:
[0088] In the case where it is determined based on the kernel version of the server that the kernel of the server is a standard kernel, obtaining a standard software warehouse corresponding to the standard kernel;
[0089] Based on the standard software warehouse, the server is controlled to automatically compile a second driver package.
[0090] In one embodiment, controlling the server to automatically compile the second driver package based on the kernel version of the server may include:
[0091] In the case where it is determined based on the kernel version of the server that the kernel of the server is a custom kernel, obtaining a custom software warehouse corresponding to the custom kernel;
[0092] Based on the custom software warehouse, the server is controlled to automatically compile a second driver package.
[0093] In actual application, there may be a situation where the first driver package cannot be used to successfully upgrade the driver to be upgraded. In this case, the second driver package can be used to upgrade the driver to be upgraded.
[0094] Based on this, in one embodiment, the method may further include:
[0095] When the driver to be upgraded is upgraded by using the first driver package, in case of upgrade failure, the server is controlled to automatically compile a second driver package; and the driver to be upgraded is upgraded by using the second driver package.
[0096] In actual application, in order to improve the efficiency of upgrading the driver, after the driver to be upgraded is successfully upgraded by using the second driver package, the second driver package can be stored in the driver library.
[0097] Based on this, in one embodiment, the method may further include:
[0098] When the driver to be upgraded is upgraded by utilizing the second driver package, if the upgrade is successful, the server is controlled to store the second driver package in the driver library.
[0099] In actual application, when the driver library is not stored locally on the server, controlling the server to store the second driver package in the driver library may include: the server sends the second driver package to the target electronic device (such as the monitoring device); the target electronic device stores (i.e., maintains) the driver library; after receiving the second driver package, the target electronic device may store the second driver package in the driver library. In this way, when a driver to be upgraded that matches the name of the second driver package and the corresponding kernel version appears later, the server may directly obtain the second driver package from the driver library (at this time, the second driver package becomes the first driver package) to upgrade the driver to be upgraded.
[0100] The kernel driver upgrade method provided in the embodiment of the present application comprises the following steps: obtaining an upgrade instruction; determining the driver to be upgraded based on the obtained upgrade instruction; determining whether there is a first driver package matching the driver to be upgraded in the driver library, and obtaining a first judgment result; obtaining the first driver package from the driver library when the first judgment result indicates that the first driver package exists in the driver library; upgrading the driver to be upgraded using the first driver package; controlling the server to automatically compile a second driver package when the first judgment result indicates that the first driver package does not exist in the driver library; and upgrading the driver to be upgraded using the second driver package. In the solution of the embodiment of the present application, the server adaptively upgrades the driver to be upgraded, that is, automatically selects a suitable upgrade solution to upgrade the driver to be upgraded; in this way, the influence of driver hidden dangers on the stability of the server can be avoided, and the operation process of upgrading the driver for each server can be simplified in the scenario of batch deployment of servers, thereby improving the upgrade efficiency of the driver and reducing the maintenance cost of the server cluster.
[0101] The present application is further described in detail below in conjunction with application examples.
[0102] In this application example, Figure 3 As shown, multiple servers are deployed as a server cluster, which is called a host cluster; the servers in the server cluster include online servers (which can be understood as servers on which operating systems have been deployed) and servers on which operating systems are to be deployed, the online servers are called online hosts, and the servers on which operating systems are to be deployed are called hosts to be deployed; the monitoring device is called a monitoring system; the driver is referred to as a driver; and the driver package can be referred to as Pkg.
[0103] Combine the following Figure 3 This application example is described in detail.
[0104] 1) Monitoring system. The monitoring system is used to monitor the operating status of the online host and / or the host to be deployed in real time. Specifically, the monitoring system can monitor the operating status of the online host and / or the host to be deployed by acquiring the configuration information and operating version information of the online host and / or the host to be deployed in real time. The configuration information may include: the component name of the corresponding host, the number of components of the corresponding host, the slot information corresponding to the components of the corresponding host, the driver version information of the corresponding host, the firmware version information of the corresponding host, and other attribute information; the operating version information may include: the operating system version information of the corresponding host, the kernel version information of the corresponding host, the driver version information of the corresponding host, and the like.
[0105] Exemplarily, the operating system version information of the corresponding host may be Centos6.6, Centos7.4, Ubuntu16.4, etc.; the kernel version information of the corresponding host may be 2.6.32.504, 3.10.0-693, 3.10.693.11.6, 3.10.693.11.6.stack, 4.17.0.32, etc.; the driver version information of the corresponding host may include the network card driver version information of the corresponding host, the array card driver version information of the corresponding host, etc.; the network card driver version information of the corresponding host may be mlx5_core, ixgbe, i40e, etc.; the array card driver version information of the corresponding host may be mpt3sas, mega_raid, aacraid, hpsa, etc.
[0106] 2) Upgrade interface module. The upgrade interface module is used to record all component version information of the online system (i.e., the online host) and / or the offline system (i.e., the host to be deployed) in real time. Specifically, after the monitoring system obtains the configuration information and running version information of the online host and / or the host to be deployed in real time, the acquired information can be sent to the upgrade interface module. The upgrade interface module can be set inside or outside the monitoring system. Among them, the component version information of the online host may include component name, driver name, driver version number, component firmware, component health version, upgrade plan, upgrade file, business department to which the host belongs, the overall upgrade quantity of the component, upgrade progress, etc., and this information can be recorded in the corresponding database respectively. Exemplarily, the driver database classified by driver name can be as shown in Table 1.
[0107]
[0108] Table 1
[0109] 3) Business groups. The business groups are the actual users of online hosts. Their main characteristics are: large host resource scale, diversified operating system versions and kernel versions, and different driver requirements. Figure 3 In the example, the business groups are represented as Biz_A, Biz_B, ... Biz_X. Before the business group initiates the driver upgrade process for a batch of versions of a certain feature, it will consider factors such as the system version, kernel version, driver version, the number of hosts that need to upgrade the driver, cluster size, and upgrade strategy.
[0110] In order to enable the hosts in the business group to adaptively upgrade the driver, solve the problem of multiple versions of the system kernel, and automatically provide the online host with the driver of the current kernel version, such as Figure 4 As shown, the process of adaptively upgrading the host driver may include the following steps:
[0111] Step 401: Obtain an upgrade request; then execute step 402.
[0112] Specifically, the host in the service group obtains an upgrade request sent by the service group or the monitoring system.
[0113] Step 402: Determine whether the corresponding Pkg exists in the database; if so, execute step 403; if not, execute step 404.
[0114] Specifically, the host may determine whether there is a Pkg matching the driver corresponding to the upgrade request in the database maintained by the upgrade interface module by sending query information to the upgrade interface module.
[0115] Step 403: Obtain the corresponding Pkg; then execute step 409.
[0116] Step 404: Determine whether it is a custom kernel; if so, execute step 407; if not, execute step 405 or 406.
[0117] Specifically, the host can determine whether its own kernel is a custom kernel or a standard kernel; if it is a custom kernel, execute step 407; if it is a standard kernel, it can obtain the software warehouse through Repo (step 405) or obtain the software warehouse through Apt (step 406) based on its own operating system.
[0118] Step 405: Obtain standard & update Repo (ie, the software repository obtained through Repo); then execute step 408.
[0119] Step 406: Obtain standard & update Apt (ie, the software repository obtained through Apt); then execute step 408.
[0120] Step 407: Obtain the corresponding customized Repo; or, obtain the commercial development kernel Pkg; then execute step 408.
[0121] Specifically, after determining that its own kernel is a custom kernel, the host can obtain the custom Repo (i.e., a customized software warehouse) corresponding to the custom kernel; if the corresponding custom Repo is not obtained, the host can directly obtain the commercial development kernel Pkg corresponding to the custom kernel, and synchronously update the obtained commercial development kernel Pkg to the custom Repo for subsequent processing.
[0122] Step 408: Build the corresponding Pkg; then execute step 409.
[0123] Here, after building the corresponding Pkg using the standard & updated Repo, standard & updated Apt, customized Repo or commercially developed kernel Pkg, the obtained Pkg can be synchronously stored in the database maintained by the upgrade interface module for subsequent processing.
[0124] Step 409: Upgrade the driver.
[0125] Based on the above steps 401 to 409, taking the upgrading of the ixgbe driver as an example, the process of the host adaptively upgrading the driver is further described in detail.
[0126] The driver and kernel are highly related. The driver file is installed in the kernel and has a specified path. Therefore, first you need to query and compare whether the driver name ixgbe exists in the driver database of the upgrade interface module. If it exists, you can compare whether the driver version can be directly applied to the system kernel of the current host. For example, the driver applicable to the "2.6.32-504.el6.x86_64" kernel cannot be directly applied to "2.6.32-504.el6.x86_64_custom" or "2.6.32-651.el6.x86_64" or other kernels. Because each version of the ixgbe file, after being installed in the operating system, its related files will be stored in the path specified by the kernel. After installation, when the current kernel loads the driver, it will only load the driver in the kernel's own directory. Drivers that are not in this kernel directory cannot be called normally and loaded the next time the system is restarted. In actual application, you can query the storage path of the ixgbe driver through the following system command:
[0127]
[0128] In actual application, the startup module file called initramfs.img is responsible for loading the new driver the next time the operating system starts. Therefore, after updating the driver, you need to use tools such as mkinitrd or dracut to update the driver file to the new kernel startup initramfs.img file. For example, you can use the following system command to update the driver file to the new kernel startup initramfs.img file:
[0129] mkinitrd / boot / initramfs-`uname-r`.img`uname-r`.
[0130] After the driver upgrade is complete, you can use lsinitrd to check whether the upgraded driver core file is successfully written to initramfs. For example, the ixgbe driver query method under the kernel "3.10.0-327.28.3.el7.x86_64" is:
[0131] lsinitrd / boot / initramfs-3.10.0-327.28.3.el7.x86_64.img|grep ixgbe.
[0132] The results are as follows:
[0133]
[0134] If the upgrade fails or the upgrade interface does not have an upgrade driver for the corresponding kernel, the adaptive compilation upgrade process will be entered. Check whether the kernel currently running on the host is a standard upgraded kernel and prepare the environment for the custom compilation driver. In actual application, the standard native kernel and upgraded kernel can be found at http: / / vault.centos.org / , http: / / cdimages.ubuntu.com / or other open source sites.
[0135] For example, a standard upgraded kernel such as 3.10.0-327.36.3.el7.x86_64 can be found on the above official website, which is released and maintained by the open source community; while 3.10.0-327.36.4.el7.x86_64 cannot be found on the open source website, which means that the open source community has not released it and the corresponding development package. Instead, it is a kernel modified, optimized, and customized by users themselves. It is not universal and is only circulated in a small range. If this type of host operating system wants to upgrade any driver, it needs a suitable kernel development environment. To this end, all standard and custom software packages are stored in the corresponding software repository (such as Figure 4 Standard & Update Repo, Standard & Update Apt, and Custom Repo in .
[0136] If it is a standard kernel or an upgraded kernel of the standard kernel, you can directly enter the compilation phase through the yum command or apt-get command.
[0137] For example, when checking the custom kernel environment through the command kdev=`uname -r`, the possible output is as follows:
[0138] (1)kiaas1='3.10.0-327.36.4.el7.x86_64';
[0139] (2)kiaas2='3.10.0-693.21.2.el7.x86_64';
[0140] (3)kiaas3='4.13.7-1.el7.elrepo.x86_64';
[0141] (4)kiaas4='3.10.0-693.5.2.el7.jd_3313.x86_64' etc.
[0142] Here, (1), (2), (3) and (4) are not standard upgrade packages. At this time, the development environment package required by the corresponding host cannot be found in the standard Repo or Apt repository. It is a kernel that has been optimized, tailored, and customized by the user's business. For "3.10.0-327.36.X.el7.x86_64", when X is greater than 4, it means that this kernel is not a kernel publicly released by the open source community. It is different from all other standard kernels. Therefore, it is necessary to obtain the custom development package related to the kernel compiled at that time from the user's R&D department in advance (for example Figure 4 The "3.10.0-327.36.3.el7.x86_64" is a standard kernel, which can be found in Standard & Update Repo or Standard & Update Apt. For example, the following function can be used to determine whether the kernel is a standard kernel or a custom kernel:
[0143]
[0144] In actual application, when detecting (which can be understood as querying or judging) whether the upgrade interface module saves the Pkg corresponding to the current system kernel, if the upgrade interface has saved the Pkg corresponding to this version of the kernel, the corresponding Pkg can be directly downloaded to the current host operating system, and the ixgbe driver can be upgraded in the current operating system using upgrade instructions such as "rpm–ivh ixgbe.centos7.4.x86_64.rpm" and "idpkg-i ixgbe.x86_deb".
[0145] In actual application, after the current system completes the kernel development environment configuration, further install the development package tool that needs to compile the source code, and then compile the driver source code package (that is, build the corresponding Pkg) and install it. For example, the development package tool that needs to compile the source code can be installed by the following command:
[0146] yum install -y gcc python-devel libnl-devel valgrind-devel binutils-devel numactl-devel.
[0147] After installing the development environment and toolkit, some of the output results of the compilation process are as follows:
[0148]
[0149] In actual application, after the source code is compiled, an upgrade driver package suitable for the current kernel will be generated in the path specified by the operating system of the current host. When checking the file content of the upgrade package, you can use the "rpm-qpl ixgbe-5.5.3-1.x86_64.rpm" command to view it.
[0150] In actual application, when upgrading the corresponding driver under the operating system of the current host, you can use the following command to learn that the ixgbe package and the core driver ko file will be stored in the absolute path ". / 3.10.0-327.28.3.el7.x86_64 / updates / " of the current operating system, and will be integrated by initramfs and referenced by the next system restart. At the same time, other system files will also be stored in other directories of the system as required.
[0151]
[0152]
[0153] In actual application, the above results show that the compiled software package is only applicable to a specific kernel. If it is forcibly installed on other kernel versions, although no error is reported, it cannot be integrated into the startup file of other kernels and cannot really play a driving role. Finally, the current host can synchronize (i.e. store) the compiled software package to the driver database maintained by the upgrade interface module to facilitate the upgrade call of other hosts.
[0154] The solution provided by this application embodiment has the following advantages:
[0155] On the one hand, the host can automatically find a driver upgrade solution suitable for itself among a large number of driver and kernel matches. On the other hand, when deploying a host cluster, batch deployment of the adaptive driver upgrade solution of this application embodiment for multiple hosts can greatly improve deployment efficiency, simplify the operation process of driver upgrade, and reduce cluster maintenance costs.
[0156] In order to implement the method of the embodiment of the present application, the embodiment of the present application also provides a kernel driver upgrade device, which is set on the server, such as Figure 5 As shown, the device comprises:
[0157] The acquisition unit 501 is used to acquire an upgrade instruction; determine a driver to be upgraded based on the acquired upgrade instruction;
[0158] The first processing unit 502 is used to determine whether there is a first driver package matching the driver to be upgraded in the driver library, and obtain a first determination result;
[0159] The second processing unit 503 is configured to obtain the first driver package from the driver library through the obtaining unit 501 when the first judgment result indicates that the first driver package exists in the driver library; and upgrade the driver to be upgraded by using the first driver package;
[0160] The third processing unit 504 is configured to control the server to automatically compile a second driver package if the first judgment result indicates that the first driver package does not exist in the driver library; and use the second driver package to upgrade the driver to be upgraded.
[0161] In one embodiment, the acquisition unit 501 is specifically configured to perform one of the following operations:
[0162] Receiving an upgrade instruction sent by a monitoring device; the monitoring device is used to monitor the status of a kernel driver of each server among a plurality of servers;
[0163] Receiving the upgrade instruction sent by the terminal;
[0164] It is detected that the server has a kernel driver to be upgraded.
[0165] In one embodiment, the first processing unit 502 is specifically configured to:
[0166] Determine whether there is a target driver package with the same name as the driver to be upgraded in the driver library, and obtain a second determination result;
[0167] In the case where the second judgment result indicates that there is a target driver package with the same name as the driver to be upgraded in the driver library, judging whether the kernel version corresponding to the target driver package is the same as the kernel version of the server, to obtain a third judgment result;
[0168] When the third judgment result indicates that the kernel version corresponding to the target driver package is the same as the kernel version of the server, it is determined that the first driver package exists in the driver library; and the target driver package is determined to be the first driver package.
[0169] In one embodiment, the first processing unit 502 is specifically configured to:
[0170] Determine whether there is a target driver package with the same name as the driver to be upgraded in the driver library, and obtain a second determination result;
[0171] In the case where the second judgment result indicates that there is a target driver package with the same name as the driver to be upgraded in the driver library, judging whether the kernel version corresponding to the target driver package is the same as the kernel version of the server, to obtain a third judgment result;
[0172] When the second judgment result indicates that there is no target driver package with the same name as the driver to be upgraded in the driver library, or when the third judgment result indicates that the kernel version corresponding to the target driver package is different from the kernel version of the server, it is determined that the first driver package does not exist in the driver library.
[0173] In one embodiment, the kernel version corresponding to the driver to be upgraded does not match the kernel version of the server; the third processing unit 504 is specifically used to control the server to automatically compile the second driver package based on the kernel version of the server.
[0174] In one embodiment, the third processing unit 504 is specifically configured to:
[0175] In the case where it is determined based on the kernel version of the server that the kernel of the server is a standard kernel, obtaining a standard software warehouse corresponding to the standard kernel through the obtaining unit 501;
[0176] Based on the standard software warehouse, the server is controlled to automatically compile a second driver package.
[0177] In one embodiment, the third processing unit 504 is specifically configured to:
[0178] In the case where it is determined based on the kernel version of the server that the kernel of the server is a custom kernel, obtaining a custom software warehouse corresponding to the custom kernel through the obtaining unit 501;
[0179] Based on the custom software warehouse, the server is controlled to automatically compile a second driver package.
[0180] In one embodiment, the second processing unit 503 is further configured to:
[0181] When the driver to be upgraded is upgraded by using the first driver package, in case of upgrade failure, the server is controlled to automatically compile a second driver package; and the driver to be upgraded is upgraded by using the second driver package.
[0182] In one embodiment, the third processing unit 504 is further configured to:
[0183] When the driver to be upgraded is upgraded by utilizing the second driver package, if the upgrade is successful, the server is controlled to store the second driver package in the driver library.
[0184] In actual application, the acquisition unit 501 can be implemented by a processor in the device in combination with a communication interface; the first processing unit 502, the second processing unit 503 and the third processing unit 504 can be implemented by a processor in the device.
[0185] It should be noted that: when the device provided in the above embodiment upgrades the driver, only the division of the above program modules is used as an example. In actual application, the above processing can be assigned to different program modules as needed, that is, the internal structure of the device is divided into different program modules to complete all or part of the processing described above. In addition, the device provided in the above embodiment and the kernel driver upgrade method embodiment belong to the same concept, and the specific implementation process is detailed in the method embodiment, which will not be repeated here.
[0186] Based on the hardware implementation of the above program modules, and in order to implement the method of the embodiment of the present application, the embodiment of the present application also provides a server, such as Figure 6 As shown, the server 600 includes:
[0187] Communication interface 601, capable of exchanging information with other electronic devices;
[0188] A processor 602, connected to the communication interface 601 to implement information interaction with other electronic devices, and used to execute the method provided by one or more of the above technical solutions when running a computer program;
[0189] The memory 603 is used to store computer programs that can be run on the processor 602 .
[0190] Specifically, the processor 602 is configured to perform the following operations:
[0191] Obtaining an upgrade instruction; determining a driver to be upgraded based on the acquired upgrade instruction;
[0192] Determine whether there is a first driver package matching the driver to be upgraded in the driver library, and obtain a first determination result;
[0193] When the first judgment result indicates that the first driver package exists in the driver library, obtaining the first driver package from the driver library through the communication interface 601; and upgrading the driver to be upgraded by using the first driver package;
[0194] When the first judgment result indicates that the first driver package does not exist in the driver library, the server 600 is controlled to automatically compile a second driver package; and the driver to be upgraded is upgraded using the second driver package.
[0195] In one embodiment, the processor 602 is specifically configured to perform one of the following operations:
[0196] Receiving an upgrade instruction sent by a monitoring device through the communication interface 601; the monitoring device is used to monitor the status of a kernel driver of each server 600 in the plurality of servers 600;
[0197] Receiving an upgrade instruction sent by the terminal through the communication interface 601;
[0198] It is detected that the server 600 has a kernel driver to be upgraded.
[0199] In one embodiment, the processor 602 is further configured to perform the following operations:
[0200] Determine whether there is a target driver package with the same name as the driver to be upgraded in the driver library, and obtain a second determination result;
[0201] In the case where the second judgment result indicates that there is a target driver package with the same name as the driver to be upgraded in the driver library, judging whether the kernel version corresponding to the target driver package is the same as the kernel version of the server 600, to obtain a third judgment result;
[0202] When the third judgment result indicates that the kernel version corresponding to the target driver package is the same as the kernel version of the server 600, it is determined that the first driver package exists in the driver library; and the target driver package is determined to be the first driver package.
[0203] In one embodiment, the processor 602 is further configured to perform the following operations:
[0204] Determine whether there is a target driver package with the same name as the driver to be upgraded in the driver library, and obtain a second determination result;
[0205] In the case where the second judgment result indicates that there is a target driver package with the same name as the driver to be upgraded in the driver library, judging whether the kernel version corresponding to the target driver package is the same as the kernel version of the server 600, to obtain a third judgment result;
[0206] When the second judgment result indicates that there is no target driver package with the same name as the driver to be upgraded in the driver library, or when the third judgment result indicates that the kernel version corresponding to the target driver package is different from the kernel version of the server 600, it is determined that the first driver package does not exist in the driver library.
[0207] In one embodiment, the kernel version corresponding to the driver to be upgraded does not match the kernel version of the server 600; the processor 602 is further configured to perform the following operations:
[0208] Based on the kernel version of the server 600, the server 600 is controlled to automatically compile the second driver package.
[0209] In one embodiment, the processor 602 is further configured to perform the following operations:
[0210] In the case where it is determined based on the kernel version of the server 600 that the kernel of the server 600 is a standard kernel, obtaining a standard software warehouse corresponding to the standard kernel through the communication interface 601;
[0211] Based on the standard software warehouse, the server 600 is controlled to automatically compile a second driver package.
[0212] In one embodiment, the processor 602 is further configured to perform the following operations:
[0213] In the case where it is determined based on the kernel version of the server 600 that the kernel of the server 600 is a custom kernel, obtaining a custom software warehouse corresponding to the custom kernel through the communication interface 601;
[0214] Based on the custom software warehouse, the server 600 is controlled to automatically compile a second driver package.
[0215] In one embodiment, the processor 602 is further configured to perform the following operations:
[0216] When the driver to be upgraded is upgraded by using the first driver package, in case of upgrade failure, the server 600 is controlled to automatically compile a second driver package; and the driver to be upgraded is upgraded by using the second driver package.
[0217] In one embodiment, the processor 602 is further configured to perform the following operations:
[0218] When the driver to be upgraded is upgraded by using the second driver package, if the upgrade is successful, the server 600 is controlled to store the second driver package in the driver library.
[0219] It should be noted that: the specific process of the processor 602 performing the above operations is detailed in the method embodiment, which will not be repeated here.
[0220] Of course, in actual application, the various components in the server 600 are coupled together through the bus system 604. It can be understood that the bus system 604 is used to realize the connection and communication between these components. In addition to the data bus, the bus system 604 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, Figure 6 Various buses are labeled as bus system 604 .
[0221] The memory 603 in the embodiment of the present application is used to store various types of data to support the operation of the server 600. Examples of such data include: any computer program used to operate on the server 600.
[0222] The method disclosed in the above embodiment of the present application can be applied to the processor 602, or implemented by the processor 602. The processor 602 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the hardware integrated logic circuit or software instructions in the processor 602. The above processor 602 may be a general-purpose processor, a digital signal processor (DSP, Digital Signal Processor), or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, etc. The processor 602 can implement or execute the various methods, steps and logic block diagrams disclosed in the embodiments of the present application. The general-purpose processor may be a microprocessor or any conventional processor, etc. In combination with the steps of the method disclosed in the embodiment of the present application, it can be directly embodied as a hardware decoding processor to execute, or it can be executed by a combination of hardware and software modules in the decoding processor. The software module can be located in a storage medium, which is located in the memory 603, and the processor 602 reads the information in the memory 603 and completes the steps of the above method in combination with its hardware.
[0223] In an exemplary embodiment, the server 600 may be implemented by one or more application specific integrated circuits (ASICs), DSPs, programmable logic devices (PLDs), complex programmable logic devices (CPLDs), field programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers (MCUs), microprocessors, or other electronic components to execute the aforementioned method.
[0224] It can be understood that the memory 603 of the embodiment of the present application can be a volatile memory or a non-volatile memory, and can also include both volatile and non-volatile memories. Among them, the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), a magnetic random access memory (FRAM), a flash memory, a magnetic surface memory, an optical disc, or a compact disc read-only memory (CD-ROM); the magnetic surface memory can be a disk memory or a tape memory. The volatile memory can be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static random access memory (SRAM), synchronous static random access memory (SSRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM, SyncLink Dynamic Random Access Memory), and direct RAMbus random access memory (DRRAM, Direct Rambus Random Access Memory).The memory described in the embodiments of the present application is intended to include, but is not limited to, these and any other suitable types of memory.
[0225] In an exemplary embodiment, the present application also provides a storage medium, namely a computer storage medium, specifically a computer-readable storage medium, for example, a memory 603 storing a computer program, and the computer program can be executed by a processor 602 of a server 600 to complete the steps of the aforementioned method. The computer-readable storage medium can be a memory such as FRAM, ROM, PROM, EPROM, EEPROM, Flash Memory, magnetic surface storage, optical disk, or CD-ROM.
[0226] It should be noted that: "first", "second", etc. are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence.
[0227] In addition, the technical solutions described in the embodiments of the present application can be combined arbitrarily without conflict.
[0228] The above description is only a preferred embodiment of the present application and is not intended to limit the protection scope of the present application.
Claims
1. A method for upgrading a kernel driver, characterized in that: Applicable to servers, including: Obtaining an upgrade instruction; determining a driver to be upgraded based on the acquired upgrade instruction; Determine whether there is a first driver package matching the driver to be upgraded in the driver library, and obtain a first determination result; When the first judgment result indicates that the first driver package exists in the driver library, obtaining the first driver package from the driver library; and upgrading the driver to be upgraded by using the first driver package; When the first judgment result indicates that the first driver package does not exist in the driver library, controlling the server to automatically compile a second driver package; and upgrading the driver to be upgraded by using the second driver package; Wherein, in the case where the driver library is stored in the monitoring device, the determining whether there is a first driver package matching the driver to be upgraded in the driver library to obtain a first determination result includes: Sending query information to the monitoring device; the query information is used to instruct the monitoring device to determine whether there is a first driver package matching the driver to be upgraded in the driver library; The first judgment result is obtained by the monitoring device; the first judgment result is determined by the monitoring device according to the query information; Receive the first judgment result sent by the monitoring device.
2. The method according to claim 1, characterized in that The determining whether there is a first driver package matching the driver to be upgraded in the driver library includes: Determine whether there is a target driver package with the same name as the driver to be upgraded in the driver library, and obtain a second determination result; In the case where the second judgment result indicates that there is a target driver package with the same name as the driver to be upgraded in the driver library, judging whether the kernel version corresponding to the target driver package is the same as the kernel version of the server, to obtain a third judgment result; When the third judgment result indicates that the kernel version corresponding to the target driver package is the same as the kernel version of the server, it is determined that the first driver package exists in the driver library; and the target driver package is determined to be the first driver package.
3. The method according to claim 1, characterized in that The determining whether there is a first driver package matching the driver to be upgraded in the driver library includes: Determine whether there is a target driver package with the same name as the driver to be upgraded in the driver library, and obtain a second determination result; In the case where the second judgment result indicates that there is a target driver package with the same name as the driver to be upgraded in the driver library, judging whether the kernel version corresponding to the target driver package is the same as the kernel version of the server, to obtain a third judgment result; When the second judgment result indicates that there is no target driver package with the same name as the driver to be upgraded in the driver library, or when the third judgment result indicates that the kernel version corresponding to the target driver package is different from the kernel version of the server, it is determined that the first driver package does not exist in the driver library.
4. The method according to claim 1, characterized in that: The kernel version corresponding to the driver to be upgraded does not match the kernel version of the server; and the step of controlling the server to automatically compile a second driver package includes: Based on the kernel version of the server, the server is controlled to automatically compile a second driver package.
5. The method according to claim 4, characterized in that The step of controlling the server to automatically compile a second driver package based on the kernel version of the server includes: In the case where it is determined based on the kernel version of the server that the kernel of the server is a standard kernel, obtaining a standard software warehouse corresponding to the standard kernel; Based on the standard software warehouse, the server is controlled to automatically compile a second driver package.
6. The method according to claim 4, characterized in that The step of controlling the server to automatically compile a second driver package based on the kernel version of the server includes: In the case where it is determined based on the kernel version of the server that the kernel of the server is a custom kernel, obtaining a custom software warehouse corresponding to the custom kernel; Based on the custom software warehouse, the server is controlled to automatically compile a second driver package.
7. The method according to claim 1, characterized in that The method further comprises: When the driver to be upgraded is upgraded by using the first driver package, in case of upgrade failure, the server is controlled to automatically compile a second driver package; and the driver to be upgraded is upgraded by using the second driver package.
8. The method according to any one of claims 1 to 7, characterized in that: The method further comprises: When the driver to be upgraded is upgraded by utilizing the second driver package, if the upgrade is successful, the server is controlled to store the second driver package in the driver library.
9. The method according to any one of claims 1 to 7, characterized in that: The obtaining of the upgrade instruction includes one of the following: Receiving an upgrade instruction sent by a monitoring device; the monitoring device is used to monitor the status of a kernel driver of each server among a plurality of servers; Receiving the upgrade instruction sent by the terminal; It is detected that the server has a kernel driver to be upgraded.
10. A kernel driver upgrade device, characterized in that: include: An acquisition unit, used for acquiring an upgrade instruction; Determine the driver to be upgraded based on the acquired upgrade instruction; A first processing unit, configured to determine whether there is a first driver package matching the driver to be upgraded in the driver library, and obtain a first determination result; a second processing unit, configured to obtain the first driver package from the driver library if the first judgment result indicates that the first driver package exists in the driver library; Using the first driver package to upgrade the driver to be upgraded; a third processing unit, configured to control the server to automatically compile a second driver package if the first judgment result indicates that the first driver package does not exist in the driver library; Using the second driver package to upgrade the driver to be upgraded; The first processing unit is specifically configured to send query information to the monitoring device when the driver library is stored in the monitoring device; The query information is used to instruct the monitoring device to determine whether there is a first driver package matching the driver to be upgraded in the driver library; Obtaining the first judgment result through the monitoring device; The first judgment result is determined by the monitoring device according to the query information; Receive the first judgment result sent by the monitoring device.
11. A server, characterized in that: include: a processor and a memory for storing a computer program capable of being executed on the processor; Wherein, when the processor is used to run the computer program, it executes the steps of the method described in any one of claims 1 to 9.
12. A storage medium storing a computer program, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 9 are implemented.
Citation Information
Patent Citations
Drive program installing method and drive program installing device
CN104881314A