A Linux printer driver method and system based on a virtual machine across CPU architectures
By using qemu virtual machine and redirection technology on domestic computers, dynamically adjusting resources and installing printer drivers, the printer driver adaptation problem under non-x86 architecture is solved, and cross-platform compatibility and efficient resource utilization are achieved.
Patent Information
- Application Number
- CN202510444493.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-10
- Publication Date
- 2025-07-18
- Estimated Expiration
- 2045-04-10
AI Technical Summary
When domestic computers are based on non-x86 architectures, the Linux printer driver cannot be fully adapted, and the compatibility of different Linux distributions and kernel versions is poor, resulting in installation failure and waste of resources.
Start the minimum Linux environment of the x86 system architecture through a qemu virtual machine, identify and capture printer devices with USB ports, generate drivers using USB redirection technology, and map CUPS service ports through IP port redirection technology, dynamically adjust resource allocation and installation drivers.
It improves the matching accuracy and installation success rate of printer drivers, reduces resource waste, improves network bandwidth utilization, reduces single point failure rate, and supports a variety of Linux distributions and printer devices.
Smart Images

Figure CN119960920B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of printing adaptation, and particularly to a Linux printer driver method and system based on a virtual machine across CPU architectures. Background Art
[0002] Domestic computers and operating systems are increasingly applied to daily office work. These domestic controllable computers are often implemented based on non-x86 architectures such as LoongArch, ARM, RISV, and MIPS. However, printer drivers that rely on CUPS under Linux often require kernel support, which makes it difficult for domestic computers to fully adapt to printer drivers that rely on the x86 architecture. Moreover, different Linux distributions or kernel versions have significant differences in the support for printer drivers, and manual installation is prone to failure due to missing dependencies, configuration errors, or hardware compatibility issues. The virtual machine environment usually adopts static resource allocation and is difficult to dynamically adjust resources according to printing tasks, resulting in a great waste of office resources. Summary of the Invention
[0003] The purpose of the present invention is to solve the above problems and design a Linux printer driver method and system based on a virtual machine across CPU architectures.
[0004] Furthermore, in the above-mentioned Linux printer driver method based on a virtual machine across CPU architectures, the Linux printer driver method includes the following steps:
[0005] Use the qemu virtual machine to start at least one minimal linux environment based on the x86 system architecture to obtain an initial linux environment;
[0006] Based on the qemu virtual machine, identify and capture the Linux printer device located at the usb port to obtain a first printer driver;
[0007] Redirect the first printer driver through usb redirection technology to obtain a second printer driver;
[0008] Use ip port redirection technology to map the CUPS service port of the initial linux environment to obtain a target linux environment;
[0009] Install the second printer driver on the CUPS service port based on the target linux environment to obtain a target printer driver;
[0010] Obtain the content to be printed and execute a printing instruction on the content to be printed based on the target printer driver.
[0011] Further, in the above Linux printer driver method, the step of starting at least one minimal Linux environment based on the x86 system architecture using a QEMU virtual machine includes:
[0012] Establish an automated image selection algorithm and define the evaluation metrics of the algorithm. The evaluation metrics include resource requirement fit , performance score , compatibility score and historical usage score ;
[0013] Obtain the number of available CPU cores, memory, and storage of the user; obtain the number of CPU cores, memory, and storage required by the image, and calculate the resource requirement fit through the resource requirement fit calculation formula ;
[0014] According to the performance of the image in terms of CPU performance, memory performance, and storage performance, calculate the performance score using the performance score calculation formula ;
[0015] Evaluate the compatibility score based on the compatibility of the image with the hardware and software of the target system ;
[0016] According to historical usage data and user feedback, score the historical usage score based on the stability and usability of the image, and select the image with the highest comprehensive score as the minimal Linux image. ;
[0017] Further, in the above Linux printer driver method, the step of starting at least one minimal Linux environment based on the x86 system architecture using a QEMU virtual machine further includes:
[0018] Establish a resource dynamic allocation model, and use the resource dynamic allocation model to dynamically allocate the resources of the QEMU virtual machine according to the estimated load of the printing task;
[0019] Define task load metrics. The task load metrics include at least file size and printing complexity , and the printing complexity includes at least graphics, colors, and layout in the file;
[0020] Assume that there is a linear relationship between the CPU resource requirement, memory resource requirement, and storage resource requirement and the file size and printing complexity, and then dynamically adjust the number of CPU cores, memory size, and storage capacity of the QEMU virtual machine based on the output of the resource dynamic allocation model.
[0021] Further, in the above Linux printer driver method, the recognition and capture of the Linux printer device located at the usb port based on the qemu virtual machine to obtain the first printer driver includes:
[0022] Obtain the original data of the Linux printer device from the USB port. The original data includes at least device hardware information and device description information. Extract the features of the original data and convert it into feature vector data;
[0023] Use a preset pattern library to match the feature vector data. Calculate the Euclidean distance between the feature vector and each pattern in the pattern library. Select the printer model and manufacturer corresponding to the pattern with the smallest Euclidean distance as the recognition result to obtain the printer model and manufacturer;
[0024] After identifying the printer device, input its feature vector into the trained MLP multi-layer perceptron neural network, output the predicted driving probability distribution, and select the driving label with the highest probability as the first printer driver.
[0025] Further, in the above Linux printer driver method, the redirection of the first printer driver through the usb redirection technology to obtain the second printer driver includes:
[0026] Establish a driver optimization algorithm to monitor the performance metrics of the first printer driver in real time, including the data transfer rate and the response time ;
[0027] Set the threshold values of the data transfer rate and the response time and . When < , it indicates that there is a bottleneck in the data transfer rate. When is greater than , it indicates a long response time;
[0028] Set the current buffer size as , the adjustment coefficient as . If >1, it is used to increase the buffer. If 0< <1, it is used to decrease the buffer. Adjust the buffer size according to the change of the data transfer rate. Then the adjusted buffer size is ;
[0029] Use the interrupt priority sorting to preferentially process the interrupts with high requirements for the response time. Set the interrupt processing time before optimization as , and the interrupt processing time after optimization as , the optimization effect is measured by the optimization rate ,
[0030] ;
[0031] Optimize the driver code according to the adjusted buffer and interrupt handling time, and use the optimized driver code for redirection to obtain the second printer driver.
[0032] Furthermore, in the above Linux printer driver method, the step of mapping the CUPS service port of the initial Linux environment by using the IP port redirection technology to obtain the target Linux environment includes:
[0033] Obtain historical network traffic data and characteristic information of the current printing task, where the characteristic information at least includes the file size , the number of copies to be printed and the complexity of the printing format , preprocess the historical traffic data and characteristic information to obtain the initial network traffic data;
[0034] Extract the feature vectors from the initial network traffic data to obtain the feature network traffic data, and input the feature network traffic data into the ARIMR model for training. The calculation formula of the ARIMR model is:
[0035] ;
[0036] Among them, is the autoregressive polynomial, is the moving average polynomial, is the lag operator, is the order of differencing, is the white noise sequence;
[0037] After training, obtain the traffic prediction value within a future period , according to the traffic prediction value Adjust the port mapping policy, where the port mapping policy includes setting different traffic thresholds and traffic thresholds , where , < , when < , reduce the number of mapped ports, and when > , increase the number of mapped ports;
[0038] Map the CUPS service port of the initial Linux environment according to the port mapping policy to obtain the target Linux environment.
[0039] Further, in the above Linux printer driver method, installing the second printer driver on the CUPS service port in the target Linux environment to obtain the target printer driver includes:
[0040] Obtain the feature information of the second printer driver, where the feature information at least includes the driver version , the minimum operating system version , the software package list , the storage path of the driver file ;
[0041] Obtain the configuration information of the target Linux environment, including the operating system version , the software package list , the system configuration file path ;
[0042] Check whether the operating system version of the target Linux environment meets the minimum requirements of the driver. If < , abort the script generation process; compare the list of dependent software packages required by the driver and the list of software packages already installed in the system to obtain the dependencies to be installed , where ;
[0043] Plan the installation steps according to the feature information of the second printer driver and the configuration information of the target Linux environment, and combine them into an installation script based on the execution order of the installation steps to obtain the target printer driver.
[0044] Further, in a Linux printer driver system based on a virtual machine across CPU architectures, the Linux printer driver system includes the following modules:
[0045] An initial environment startup module, configured to start at least one minimal Linux environment based on the x86 system architecture using a qemu virtual machine to obtain an initial Linux environment;
[0046] A first driver calculation module, configured to identify and capture a Linux printer device located at a USB port based on the qemu virtual machine to obtain a first printer driver;
[0047] A second driver calculation module, configured to redirect the first printer driver through USB redirection technology to obtain a second printer driver;
[0048] A target environment acquisition module, which is used to map the CUPS service port of the initial Linux environment by using the IP port redirection technology to obtain a target Linux environment;
[0049] A target driver acquisition module, which is used to install the second printer driver on the CUPS service port based on the target Linux environment to obtain a target printer driver;
[0050] A print command execution module, which is used to obtain the content to be printed and execute a print instruction on the content to be printed based on the target printer driver.
[0051] Furthermore, in the above Linux printer driver system based on a virtual machine and across CPU architectures, the initial environment startup module includes the following units:
[0052] An evaluation index definition unit, which is used to establish an automated mirror selection algorithm and define the evaluation indexes of the algorithm. The evaluation indexes include the resource requirement fit degree , performance score , compatibility score and historical usage score ;
[0053] A resource requirement calculation unit, which is used to obtain the available CPU cores, memory, and storage of the user; obtain the CPU cores, memory, and storage required by the mirror, and calculate the resource requirement fit degree through a resource requirement fit degree calculation formula ;
[0054] A performance score calculation unit, which is used to calculate the performance score according to the performance of the mirror in terms of CPU performance, memory performance, and storage performance by using a performance score calculation formula for calculation;
[0055] A compatibility evaluation unit, which is used to evaluate the compatibility score based on the compatibility of the mirror with the hardware and software of the target system for evaluation;
[0056] A Linux mirror selection unit, which is used to score the historical usage score based on the stability and usability of the mirror according to historical usage data and user feedback and select the mirror with the highest comprehensive score as the minimum Linux mirror.
[0057] Furthermore, in the above Linux printer driver system based on a virtual machine and across CPU architectures, the initial environment startup module also includes the following units:
[0058] A dynamic allocation unit for establishing a resource dynamic allocation model and dynamically allocating resources of a qemu virtual machine according to the estimated load of a printing task by using the resource dynamic allocation model;
[0059] A load metric unit for defining task load metrics, where the task load metrics at least include file size and printing complexity , and the printing complexity at least includes graphics, colors, and layout in the file;
[0060] A dynamic adjustment unit for assuming a linear relationship between CPU resource requirements, memory resource requirements, and storage resource requirements and file size and printing complexity, and then dynamically adjusting the number of CPU cores, memory size, and storage capacity of the qemu virtual machine based on the output of the resource dynamic allocation model.
[0061] The beneficial effects are as follows: 1. Based on features such as the file size and complexity of a printing task, dynamically adjust the virtual machine resources (CPU, memory, storage), improve resource utilization rate, and avoid resource waste at the same time. Select the optimal Linux image through a multi-dimensional scoring mechanism (compatibility, performance, historical stability) to improve the success rate of image adaptation. 2. Predict the best driver according to device features (device ID, manufacturer information), improve the accuracy of driver matching, and reduce installation failures caused by driver errors. Predict the compatibility between the driver and the target environment in advance, improve the recognition rate of compatibility problems, and automatically generate solutions. 3. Combine historical traffic and real-time task features to predict the CUPS port traffic peak, dynamically adjust the port mapping strategy, and improve network bandwidth utilization rate. Allocate printing tasks according to the server CPU, memory, and bandwidth load to reduce the single point of failure rate. 4. Generate accurate installation scripts according to driver features and environmental configurations, and the success rate of automatic installation and configuration modification of dependencies exceeds 90%, reducing manual intervention. 5. Cross-platform and scalability support multiple Linux distributions (Ubuntu, CentOS, etc.) and x86 architecture virtual machine environments, are compatible with USB2.0 / 3.0 printer devices, and can be extended to multi-task parallel processing scenarios. Description of the Drawings
[0062] By reading the detailed description of the preferred embodiments below, various other advantages and benefits will become clear to those of ordinary skill in the art. The drawings are only for the purpose of showing the preferred embodiments and are not considered to be a limitation of the present invention.
[0063] Figure 1 Schematic diagram of the first embodiment of a Linux printer driver method based on a virtual machine across CPU architectures in an embodiment of the present invention;
[0064] Figure 2Schematic diagram of the second embodiment of a Linux printer driver method based on a virtual machine across CPU architectures in an embodiment of the present invention;
[0065] Figure 3 Schematic diagram of the third embodiment of a Linux printer driver method based on a virtual machine across CPU architectures in an embodiment of the present invention;
[0066] Figure 4 Schematic diagram of the first embodiment of a Linux printer driver system based on a virtual machine across CPU architectures in an embodiment of the present invention. Detailed implementation manners
[0067] In order to make the objectives, technical solutions and advantages of the present invention clearer and more understandable, the present invention will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not used to limit the present invention.
[0068] Those skilled in the art of the present technology can understand that, unless specifically stated otherwise, the singular forms "a", "an", and "the" used herein may also include the plural forms. It should be further understood that the term "comprising" used in the specification of the present invention means the presence of the described features, integers, steps, operations, elements and / or components, but does not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components and / or their groups.
[0069] The present invention will be specifically described below with reference to the accompanying drawings. As Figure 1 shown, a Linux printer driver method based on a virtual machine across CPU architectures, the Linux printer driver method includes the following steps:
[0070] Step 101: Use the qemu virtual machine to start at least one minimal linux environment based on the x86 system architecture to obtain an initial linux environment;
[0071] Specifically, in this embodiment,
[0072] Establish an automated image selection algorithm, define the evaluation metrics of the algorithm, and the evaluation metrics include resource requirement fit , performance score , compatibility score and historical usage score ;
[0073] Among them, the resource requirement fit is used to measure the matching degree between the resources required by the image and the resources available to the user. The performance score is used to reflect the performance of the image under different performance metrics. The compatibility score Used to evaluate the compatibility between the image and the target system and applications. Historical usage score Used to score the image based on historical usage data and user feedback.
[0074] Obtain the number of CPU cores, memory, and storage available to the user; obtain the number of CPU cores, memory, and storage required by the image, and calculate the resource requirement compliance degree through the resource requirement compliance calculation formula , and its calculation formula is as follows:
[0075] ;
[0076] Among them, represents the number of CPU cores available to the user, represents the number of CPU cores required by the image, represents the available memory of the user, represents the memory required by the image, represents the available storage of the user, represents the storage required by the image; , and are weight coefficients, and .
[0077] According to the performance of the image in terms of CPU performance, memory performance, and storage performance, calculate the performance score using the performance score calculation formula The calculation formula is as follows:
[0078] ;
[0079] Among them, represents the performance of the image in terms of CPU performance, represents the performance of the image in terms of memory performance, represents the performance of the image in terms of storage performance, , and are weight coefficients, and .
[0080] Evaluate the compatibility score based on the compatibility of the image with the hardware and software of the target system. The calculation formula is as follows:
[0081] ;
[0082] Among them, represents the hardware compatibility score, represents the software compatibility score, is the weight coefficient.
[0083] Evaluate the historical usage score of the stability and usability of the image based on historical usage data and user feedback Rate the images, and select the image with the highest comprehensive score as the minimum Linux image
[0084] Establish a resource dynamic allocation model, and use the resource dynamic allocation model to dynamically allocate resources for the qemu virtual machine according to the estimated load of the printing task
[0085] Define task load metrics, where the task load metrics include at least the file size and the printing complexity The printing complexity includes at least the graphics, colors, and layout in the file, and is used to quantitatively evaluate the printing complexity; the file size represents the size of the printed file, in bytes; assuming a linear relationship between CPU resource requirements, memory resource requirements, and storage resource requirements and the file size and printing complexity, the calculation formula of the resource dynamic allocation model is as follows
[0086] ;
[0087] ;
[0088] ;
[0089] where , , , , , , , , represent model parameters, which are obtained through machine learning algorithms represents the CPU resource requirements represents the memory resource requirements represents the storage resource requirements
[0090] Dynamically adjust the number of CPU cores, memory size, and storage capacity of the qemu virtual machine based on the output of the resource dynamic allocation model. The adjusted resource allocation is as follows
[0091] ;
[0092] ;
[0093] ;
[0094] where represents the adjusted CPU resource requirements Represents the adjusted memory resource requirements, Represents the adjusted storage resource requirements, Represents rounding up For
[0095] Step 102: Based on the qemu virtual machine, identify and capture the Linux printer device located at the usb port to obtain the first printer driver;
[0096] Specifically, in this embodiment,
[0097] Obtain the original data of the Linux printer device from the USB port. The original data includes at least device hardware information and device description information. Extract features from the original data and convert it into feature vector data; The calculation formula of the feature vector is as follows:
[0098] ;
[0099] Where, Represents one-hot encoding, which maps the original data into numerical features; Represents the device ID, Represents the manufacturer ID, Represents the device category, Represents the device subcategory, Represents the protocol.
[0100] Use the preset pattern library to match the feature vector data. Calculate the Euclidean distance between the feature vector and each pattern in the pattern library, and select the printer model and manufacturer corresponding to the pattern with the smallest Euclidean distance as the recognition result to obtain the printer model and manufacturer;
[0101] After identifying the printer device, input its feature vector into the trained MLP multi-layer perceptron neural network, output the predicted drive probability distribution, and select the drive label with the highest probability as the first printer driver.
[0102] Obtain the printer model, manufacturer information and corresponding driver information in the database, and establish a training dataset ; Wherein Is the input vector containing features such as printer model and manufacturer, Is the corresponding drive label;
[0103] Construct a multi-layer perceptron MLP neural network, including an input layer, a hidden layer and an output layer. The number of neurons in the input layer is equal to the dimension of the input vector The number of neurons in the output layer is equal to the number of categories of the drive label. Let the weight matrix from the input layer to the th hidden layer be , and the bias vector be 。
[0104] For the input vector ,the output result is calculated through forward propagation. Let the input of the -th layer be ,the output be , and the activation function be (such as the RELU activation function ), then there is:
[0105] ;
[0106] ;
[0107] Among them, ,the output of the final output layer is the predicted drive probability distribution.
[0108] Define the loss function ,where is the true drive label (using one-hot encoding), is the predicted drive probability distribution, and is the number of categories of the drive label. Use an optimization algorithm (stochastic gradient descent SGD) to minimize the loss function and update the weights and biases of the neural network. After identifying the printer device, input its feature vector into the trained neural network to output the predicted drive probability distribution. Select the drive label with the highest probability as the most suitable first printer driver.
[0109] Step 103, redirect the first printer driver through the usb redirection technology to obtain a second printer driver;
[0110] Specifically, in this embodiment,
[0111] Establish a drive optimization algorithm to monitor the performance metrics of the first printer driver in real time, including the data transfer rate and the response time ;
[0112] The data transfer rate is calculated by the amount of data transferred within a period of time , and the calculation formula is:
[0113] ;
[0114] The response time is the time interval from sending a request to receiving a response, and a more accurate result is obtained by taking the average value through multiple measurements. The calculation formula is:
[0115] ;
[0116] Among them, is the response time of the th measurement, is the number of measurements.
[0117] Set the data transfer rate and the threshold of the response time and When < < , it indicates that there is a bottleneck in the data transfer rate. When is greater than , it indicates a long response time;
[0118] Buffer size adjustment: The buffer size has an important impact on the data transfer rate. Dynamically adjust the buffer size according to the change of the data transfer rate. When the data transfer rate is low, appropriately increase the buffer size to reduce the number of data transfers. Let the current buffer size be , and the adjustment coefficient be . If > 1 is used to increase the buffer. If 0 < < 1 is used to decrease the buffer. Adjust the buffer size according to the change of the data transfer rate. Then the adjusted buffer size is ;
[0119] The interrupt handling time affects the response time. Optimize the interrupt handling code to reduce the interrupt handling time. Adopt interrupt priority sorting to give priority to handling interrupts with higher requirements for the response time. Use interrupt priority sorting to give priority to handling interrupts with high requirements for the response time. Let the interrupt handling time before optimization be , and the interrupt handling time after optimization be . The optimization effect is measured by the optimization rate ,
[0120] ;
[0121] Optimize the driver code according to the adjusted buffer and interrupt handling time, and use the optimized driver code for redirection to obtain the second printer driver.
[0122] Step 104, use the ip port redirection technology to map the CUPS service port of the initial linux environment to obtain the target linux environment;
[0123] Specifically, in this embodiment,
[0124] Obtain historical network traffic data and characteristic information of the current printing task, including historical network traffic data, covering traffic values in different time periods (such as every hour, every day) ,in Represents a time point. At the same time, collect the characteristic information of the current print task, which at least includes the file size , Print number of copies and print format complexity .
[0125] Preprocess historical traffic data and feature information, remove outliers, and calculate the mean using statistical methods and standard deviation The deviation from the mean will exceed times standard deviation ( The data points are considered as outliers and removed, and the mean calculation formula is:
[0126] ;
[0127] The formula for calculating standard deviation is:
[0128] ;
[0129] in, is the number of historical data points. After the above calculation, the initial network traffic data is obtained.
[0130] Extract the feature vector from the initial network traffic data to obtain the feature network traffic data, and input the feature network traffic data into the ARIMR model for training. The calculation formula of the ARIMR model is:
[0131] ;
[0132] in, is an autoregressive polynomial, is the moving average polynomial, is the lag operator, is the difference order, is a white noise sequence;
[0133] After training, get the future time Traffic forecast value within , according to the traffic prediction value Adjust the port mapping policy, which includes setting different traffic thresholds and flow threshold ,in < ,when < When , reduce the number of mapped ports, when > When [condition], increase the number of mapped ports;
[0134] Map the CUPS service ports of the initial Linux environment according to the port mapping policy to obtain the target Linux environment.
[0135] Step 105: Install the second printer driver on the CUPS service port in the target Linux environment to obtain the target printer driver;
[0136] Specifically, in this embodiment,
[0137] Obtain the characteristic information of the second printer driver, where the characteristic information at least includes the driver version , the minimum operating system version , the software package list , the storage path of the driver file ;
[0138] Obtain the configuration information of the target Linux environment, including the operating system version , the software package list , the system configuration file path ;
[0139] Check whether the operating system version of the target Linux environment meets the minimum requirements of the driver. If < , abort the script generation process; compare the list of dependent software packages required by the driver and the list of software packages already installed in the system to obtain the dependencies to be installed , where ;
[0140] According to the characteristic information of the second printer driver and the configuration information of the target Linux environment, plan the installation steps. The installation steps generally include:
[0141] Dependency installation: For the dependencies to be installed , generate the corresponding installation commands. If a Debian- or Ubuntu-based system is used, the installation command is: apt-get install <package>; If the system used is based on RedHat or CentOS, the installation command may be: yum install <package>。
[0142] Driver file copying: Copy the driver files from the storage path to the driver installation directory specified by the system , and the copy command is cp <Path_d> <Path_{install}>.
[0143] Driver configuration: Modify the system configuration file according to the requirements of the driver. For example, add the relevant parameters of the driver to the configuration file. Assume there is a parameter item in the configuration file that needs to be set to , then the modification command is:
[0144] sed -i's / ^#\?Param.* / Param= <value> / g'<Path_{conf}>.
[0145] Combine the execution order of the installation steps into an installation script to obtain the target printer driver.
[0146] When the installation script starts to execute, record the start time. When the installation script finishes execution, record the end time, and monitor the resource occupancy of the system in real time, such as CPU utilization rate and memory utilization rate. System commands can be used to set the thresholds for installation time and resource occupancy, and based on these thresholds, judge the installation anomalies. When anomalies occur, the system promptly feedbacks anomaly information, such as informing the user through log records, system prompts, etc. If the installation time is too long, try to retry the installation, that is, re-execute the installation script; or adjust the installation parameters, such as increasing system resources. If the resource occupancy is too high, pause the installation task, release some system resources, and then continue the installation.
[0147] Step 106: Obtain the content to be printed, and execute the print instruction on the content to be printed based on the target printer driver.
[0148] Specifically, in this embodiment, when there are multiple printing tasks, a printing task priority scheduling algorithm is adopted. This algorithm assigns a priority to each task according to factors such as the urgency, importance, and file size of the task. Then, the print instructions are executed in the order of priority to ensure that important tasks can be processed first.
[0149] Its beneficial effects are as follows: 1. Dynamically adjust the virtual machine resources (CPU, memory, storage) based on the characteristics of the printing task, such as file size and complexity, to improve resource utilization rate and avoid resource waste. Select the optimal Linux image through a multi-dimensional scoring mechanism (compatibility, performance, historical stability), and the success rate of image adaptation is increased by 40%. 2. Predict the best driver according to the device characteristics (device ID, manufacturer information), improve the accuracy of driver matching, and reduce installation failures caused by driver errors. Predict the compatibility between the driver and the target environment in advance, improve the recognition rate of compatibility problems, and automatically generate solutions. 3. Combine historical traffic and real-time task characteristics to predict the CUPS port traffic peak, dynamically adjust the port mapping strategy, and improve network bandwidth utilization rate. Allocate printing tasks according to the server CPU, memory, and bandwidth load to reduce the single point failure rate. 4. Generate accurate installation scripts according to driver characteristics and environmental configurations, and the success rate of automatic installation of dependencies and configuration modification exceeds 90%, reducing manual intervention. 5. Cross-platform and scalability support multiple Linux distributions (Ubuntu, CentOS, etc.) and x86 architecture virtual machine environments, are compatible with USB2.0 / 3.0 printer devices, and can be extended to multi-task parallel processing scenarios.
[0150] In this embodiment, please refer to Figure 2 , the second embodiment of a Linux printer driver method based on a virtual machine across CPU architectures in an embodiment of the present invention. Starting at least one minimal Linux environment based on the x86 system architecture using the qemu virtual machine includes the following steps:
[0151] Step 201, establish an automated image selection algorithm, define the evaluation metrics of the algorithm, and the evaluation metrics include resource requirement compliance, performance score, compatibility score, and historical usage score;
[0152] Step 202, obtain the number of available CPU cores, memory, and storage of the user; obtain the number of CPU cores, memory, and storage required by the image, and calculate the resource requirement compliance through the resource requirement compliance calculation formula;
[0153] Step 203, calculate the performance score using the performance score calculation formula according to the performance of the image in terms of CPU performance, memory performance, and storage performance;
[0154] Step 204, evaluate the compatibility score based on the compatibility of the image with the hardware and software of the target system for evaluation;
[0155] Step 205, score the historical usage score for the stability and usability of the image according to historical usage data and user feedback, and select the image with the highest comprehensive score as the minimal Linux image.
[0156] Its beneficial effect is that, based on characteristics such as the file size and complexity of the printing task, the virtual machine resources (CPU, memory, storage) are dynamically adjusted to improve resource utilization rate and avoid resource waste at the same time.
[0157] In this embodiment, please refer to Figure 3 , the third embodiment of a Linux printer driver method based on a virtual machine across CPU architectures in an embodiment of the present invention. Identifying and capturing a Linux printer device located at the usb port based on the qemu virtual machine to obtain a first printer driver includes the following steps:
[0158] Step 301, obtain the original data of the Linux printer device from the USB port, and the original data includes at least device hardware information and device description information. Extract features from the original data and convert it into feature vector data;
[0159] Step 302, use a preset pattern library to match the feature vector data, calculate the Euclidean distance between the feature vector and each pattern in the pattern library, and select the printer model and manufacturer corresponding to the pattern with the smallest Euclidean distance as the recognition result to obtain the printer model and manufacturer;
[0160] In step 303, after the printer device is identified, its feature vector is input into the trained MLP multi-layer perceptron neural network, and the predicted driver probability distribution is output. The driver label with the highest probability is selected as the first printer driver.
[0161] Its beneficial effect is that the optimal Linux image is selected through a multi-dimensional scoring mechanism (compatibility, performance, historical stability), improving the success rate of image adaptation.
[0162] The above described a Linux printer driver method based on a virtual machine across CPU architectures provided by an embodiment of the present invention. Next, a Linux printer driver system based on a virtual machine across CPU architectures of an embodiment of the present invention will be described. Please refer to Figure 4 , the embodiment of the present invention includes:
[0163] An initial environment startup module, configured to start at least one minimal linux environment based on the x86 system architecture using a qemu virtual machine to obtain an initial linux environment;
[0164] Specifically, the present embodiment further includes the following units,
[0165] An evaluation index definition unit, configured to establish an automated image selection algorithm and define the evaluation indexes of the algorithm. The evaluation indexes include resource requirement fit , performance score , compatibility score and historical usage score ;
[0166] A resource requirement calculation unit, configured to obtain the available number of CPU cores, memory, and storage of the user; obtain the required number of CPU cores, memory, and storage of the image, and calculate the resource requirement fit through the resource requirement fit calculation formula The calculation formula is as follows:
[0167] ;
[0168] Wherein, represents the available number of CPU cores of the user, represents the required number of CPU cores of the image, represents the available memory of the user, represents the required memory of the image, represents the available storage of the user, represents the required storage of the image; , and are weight coefficients, and .
[0169] A performance scoring calculation unit, which is used to calculate the performance score of an image according to the performance of the image in terms of CPU performance, memory performance, and storage performance, using the performance scoring calculation formula for calculation, and the calculation formula is as follows:
[0170] ;
[0171] wherein, represents the performance of the image in terms of CPU performance, represents the performance of the image in terms of memory performance, represents the performance of the image in terms of storage performance, , and are weight coefficients, and .
[0172] A compatibility evaluation unit, which is used to evaluate the compatibility score based on the compatibility of the image with the hardware and software of the target system. The calculation formula is as follows:
[0173] ;
[0174] wherein, represents the hardware compatibility score, represents the software compatibility score, is the weight coefficient.
[0175] A Linux image selection unit, which is used to score the historical usage score of the stability and usability of the image according to historical usage data and user feedback, and select the image with the highest comprehensive score as the minimum Linux image.
[0176] A dynamic allocation unit, which is used to establish a resource dynamic allocation model and dynamically allocate resources of the qemu virtual machine according to the estimated load of the printing task by using the resource dynamic allocation model;
[0177] A load index unit, which is used to define task load indexes. The task load indexes include at least the file size and the printing complexity . The printing complexity includes at least the graphics, colors, and layout in the file; it is used to quantitatively evaluate the printing complexity; the file size represents the size of the printing file in bytes; assuming that there is a linear relationship between the CPU resource requirements, memory resource requirements, and storage resource requirements and the file size and printing complexity, the calculation formula of the resource dynamic allocation model is as follows:
[0178] ;
[0179] ;
[0180] ;
[0181] Among them, 、 、 、 、 、 、 、 、 represent model parameters, which are obtained by training through machine learning algorithms. represents the CPU resource requirement, represents the memory resource requirement, represents the storage resource requirement.
[0182] The dynamic adjustment unit is used to assume a linear relationship between the CPU resource requirement, memory resource requirement, and storage resource requirement and the file size and printing complexity, and then dynamically adjust the number of CPU cores, memory size, and storage capacity of the qemu virtual machine based on the output of the resource dynamic allocation model.
[0183] Dynamically adjust the number of CPU cores, memory size, and storage capacity of the qemu virtual machine based on the output of the resource dynamic allocation model. The adjusted resource allocation is as follows:
[0184] ;
[0185] ;
[0186] ;
[0187] Among them, represents the adjusted CPU resource requirement, represents the adjusted memory resource requirement, represents the adjusted storage resource requirement, represents rounding up to the nearest integer.
[0188] The first drive calculation module is used to identify and capture the Linux printer device located at the usb port based on the qemu virtual machine to obtain the first printer driver;
[0189] Specifically, the present embodiment further includes the following units,
[0190] A data acquisition unit, configured to obtain the original data of a Linux printer device from a USB port. The original data includes at least device hardware information and device description information. Feature extraction is performed on the original data and it is converted into feature vector data. The calculation formula for the feature vector is as follows:
[0191] ;
[0192] Wherein, represents one-hot encoding, which maps the original data into numerical features; represents the device ID, represents the manufacturer ID, represents the device category, represents the device sub-category, represents the protocol.
[0193] A vector calculation unit, configured to match the feature vector data by using a preset pattern library. For each pattern in the pattern library, calculate the Euclidean distance between the feature vector and the pattern, and select the printer model and manufacturer corresponding to the pattern with the smallest Euclidean distance as the recognition result to obtain the printer model and manufacturer;
[0194] A model training unit, configured to, after identifying the printer device, input its feature vector into a trained MLP multi-layer perceptron neural network, output the predicted driver probability distribution, and select the driver label with the highest probability as the first printer driver.
[0195] Obtain the printer model, manufacturer information and corresponding driver information in the database, and establish a training data set ; wherein is the input vector containing features such as the printer model and manufacturer, is the corresponding driver label;
[0196] Construct a multi-layer perceptron MLP neural network, including an input layer, a hidden layer and an output layer. The number of neurons in the input layer is equal to the dimension of the input vector The number of neurons in the output layer is equal to the number of categories of the driver label. Let the weight matrix from the input layer to the th hidden layer be , and the bias vector be .
[0197] For the input vector , calculate the output result through forward propagation. Let the input of the th layer be , the output be , and the activation function be (such as the RELU activation function ), then there is:
[0198] ;
[0199] ;
[0200] in, , the output of the final output layer This is the predicted driving probability distribution.
[0201] Define the loss function ,in, is the actual driver label (one-hot encoded), is the predicted driving probability distribution, is the number of driver label categories. Use an optimization algorithm (stochastic gradient descent SGD) to minimize the loss function and update the weights and biases of the neural network. After identifying the printer device, input its feature vector into the trained neural network and output the predicted driver probability distribution. Select the driver label with the highest probability as the most suitable first printer driver.
[0202] A second driver calculation module is used to redirect the first printer driver through the USB redirection technology to obtain a second printer driver;
[0203] Specifically, this embodiment also includes the following units:
[0204] A real-time monitoring unit is used to establish a driver optimization algorithm and monitor the performance indicators of the first printer driver in real time, including data transmission rate and response time ;
[0205] Threshold calculation unit for setting data transmission rate and response time Threshold and ,when < When , it means that there is a bottleneck in the data transmission rate. Greater than When indicates a long response time;
[0206] Rate adjustment unit, used to set the current buffer size to , the adjustment coefficient is ,like >1 is used to increase the buffer, if 0 < <1 is used to reduce the buffer size. The buffer size is adjusted according to the change of data transmission rate. The adjusted buffer size ;
[0207] An optimization rate calculation unit is used to preferentially process interrupts with high requirements for response time by using interrupt priority sorting. Let the interrupt processing time before optimization be , and the interrupt processing time after optimization be . The optimization effect is measured by the optimization rate .
[0208] ;
[0209] A code optimization unit is used to optimize the driver code according to the adjusted buffer and interrupt processing time, and perform redirection using the optimized driver code to obtain a second printer driver.
[0210] A target environment acquisition module is used to map the CUPS service port of the initial Linux environment by using the IP port redirection technology to obtain a target Linux environment;
[0211] Specifically, the present embodiment further includes the following units:
[0212] An information acquisition unit is used to acquire historical network traffic data and characteristic information of the current printing task. The characteristic information at least includes the file size , the number of copies and the print format complexity , and preprocess the historical traffic data and characteristic information to obtain initial network traffic data;
[0213] A model establishment unit is used to extract feature vectors from the initial network traffic data to obtain characteristic network traffic data, and input the characteristic network traffic data into the ARIMR model for training. The calculation formula of the ARIMR model is:
[0214] ;
[0215] Among them, is an autoregressive polynomial, is a moving average polynomial, is a lag operator, is the order of differencing, is a white noise sequence;
[0216] A model training unit is used to obtain the traffic prediction value within a future period of time after training. According to the traffic prediction value , adjust the port mapping strategy. The port mapping strategy includes setting different traffic thresholds and traffic thresholds , where < . When < When, reduce the number of mapped ports. When > When, increase the number of mapped ports;
[0217] The environment obtaining unit is used to map the CUPS service port of the initial linux environment according to the port mapping policy to obtain the target linux environment.
[0218] The target driver obtaining module is used to install the second printer driver on the CUPS service port in the target linux environment to obtain the target printer driver;
[0219] Specifically, this embodiment further includes the following units:
[0220] The path obtaining unit is used to obtain the characteristic information of the second printer driver, and the characteristic information at least includes the driver version and the minimum operating system version , the software package list , the storage path of the driver file ;
[0221] The system configuration unit is used to obtain the configuration information of the target linux environment, including the operating system version , the software package list , the system configuration file path ;
[0222] The path dependency unit is used to check whether the operating system version of the target linux environment meets the minimum requirements of the driver. If < , the script generation process is aborted; compare the list of dependent software packages required by the driver and the list of software packages already installed in the system to obtain the dependencies to be installed , where ;
[0223] The planning unit is used to plan the installation steps according to the characteristic information of the second printer driver and the configuration information of the target linux environment, and combine the execution order of the installation steps into an installation script to obtain the target printer driver.
[0224] The print command execution module is used to obtain the content to be printed and execute the print instruction on the content to be printed based on the target printer driver.
[0225] Specifically, in this embodiment,
[0226] When there are multiple printing tasks, a printing task priority scheduling algorithm is adopted. This algorithm assigns a priority to each task based on factors such as the urgency, importance, and file size of the task. Then, the printing instructions are executed in the order of priority to ensure that important tasks can be processed first.
[0227] Its beneficial effects are as follows: By using the qemu virtual machine to start at least one minimal Linux environment based on the x86 system architecture, an initial Linux environment is obtained; based on the qemu virtual machine, the Linux printer device located at the USB port is recognized and captured to obtain the first printer driver; through the USB redirection technology, the first printer driver is redirected to obtain the second printer driver; the CUPS service port of the initial Linux environment is mapped using the IP port redirection technology to obtain the target Linux environment; based on the target Linux environment, the second printer driver is installed on the CUPS service port to obtain the target printer driver; the content to be printed is obtained, and the printing instruction is executed based on the target printer driver. It is possible to combine historical traffic and real-time task characteristics to predict the CUPS port traffic peak, dynamically adjust the port mapping strategy, and improve the network bandwidth utilization rate. Allocate printing tasks according to the server CPU, memory, and bandwidth load to reduce the single-point failure rate.
[0228] Specifically, the present invention can also be implemented in the following manner:
[0229] Step A: Use the qemu virtual machine to start a minimal Linux environment based on the x86 system architecture.
[0230] In this step, the minix operating system is selected as the minimal working kernel, but other Linux distributions such as debian and ubuntu also fall into this category. The minimal Linux environment refers to a distribution from which other components have been removed except for the necessary kernel programs.
[0231] Step B: Identify and capture the Linux printer device located at the USB port.
[0232] In this step, the main identifier of the device is obtained by retrieving the Linux device file identifier / dev / usb / lp0, and the detailed information and bus identification information of the printer device are obtained using means such as the lspci instruction and dmesg filtering. The servo program uses a traversal method. The traversed file identifiers include / dev / usb / lp1, / dev / usb / lp2, / dev / usb / lp3... and other identifiers that conform to the format in addition to / dev / usb / lp0.
[0233] Step C: Redirect the printer driver to qemu through the USB redirection technology.
[0234] In this step, the qemuusb_addhost:xxx:xxx instruction is used to redirect the USB printer device to the QEMU virtual machine, where xxxx:xxxx is the PCI bus identifier of the printer.
[0235] Step D: Use IP port redirection technology to map the CUPS service port of the minimal Linux environment.
[0236] This step is completed by using operation technical means such as ipfilter and iptables. The mapped port is to map the 631 port of the virtual machine to the 631 port of 127.0.0.1. That is, call the command prompt to execute the following commands:
[0237] iptables -A INPUT -i lo -p tcp --dport 631 -j ACCEPT;
[0238] iptables -A PREROUTING -t nat -i lo -p tcp -dport 631 -j REDIRECT --to-destination 192.168.43.2 --to-port 631;
[0239] Among them, 192.168.43.2 is the hostonly address of the virtual machine.
[0240] Step E: Install the printer driver for CUPS in the x86 environment through the printer manager.
[0241] In this step, it is carried out through the CUPS print manager Web interface and the compatible printer management interface, and the management process of CUPS in the virtual machine is called in the target computer.
[0242] Step F: Print the specific content.
[0243] The above shows and describes the basic principles, main features and advantages of the present invention. Those skilled in the art should understand that the present invention is not limited by the above embodiments. The above embodiments and the descriptions in the specification are only the preferred examples of the present invention and are not used to limit the present invention. Without departing from the spirit and scope of the present invention, the present invention will have various changes and improvements, and these changes and improvements all fall within the scope of the present invention claimed. The scope of protection claimed by the present invention is defined by the appended claims and their equivalents.< / value> < / package> < / package>
Claims
1. A Linux printer driver method based on a virtual machine across CPU architectures, characterized in that, The described Linux printer driver method includes the following steps: Use the qemu virtual machine to start at least one minimal Linux environment based on the x86 system architecture to obtain an initial Linux environment; Based on the qemu virtual machine, identify and capture the Linux printer device located at the USB port to obtain the first printer driver; Redirect the first printer driver through USB redirection technology to obtain the second printer driver; Use the IP port redirection technology to map the CUPS service port of the initial Linux environment to obtain the target Linux environment; Install the second printer driver on the CUPS service port based on the target Linux environment to obtain the target printer driver; Obtain the content to be printed and execute the print instruction on the content to be printed based on the target printer driver.
2. The Linux printer driver method based on a virtual machine across CPU architectures according to claim 1, wherein The step of using the qemu virtual machine to start at least one minimal Linux environment based on the x86 system architecture includes: Establish an automated mirror selection algorithm and define the evaluation metrics of the algorithm. The evaluation metrics include resource requirement fit , performance score , compatibility score and historical usage score ; Obtain the number of CPU cores, memory, and storage available to the user; obtain the number of CPU cores, memory, and storage required for the image, and calculate the resource requirement fit degree through the resource requirement fit degree calculation formula ; According to the performance of the mirror in terms of CPU performance, memory performance, and storage performance, calculate the performance score using the performance score calculation formula for calculation; Evaluate the compatibility score based on the compatibility between the image and the hardware and software of the target system for assessment; Based on historical usage data and user feedback, score the stability and usability of the image against the historical usage score and select the image with the highest comprehensive score as the minimal Linux image.
3. A Linux printer driver method based on a virtual machine across CPU architectures according to claim 1, characterized in that, The step of using the qemu virtual machine to start at least one minimal Linux environment based on the x86 system architecture further includes: Establish a resource dynamic allocation model, and use the resource dynamic allocation model to dynamically allocate the resources of the qemu virtual machine according to the estimated load of the print task; Define task load metrics, where the task load metrics at least include file size and printing complexity , where the printing complexity at least includes graphics, colors, and layout in the file; Assume that there is a linear relationship between the CPU resource requirement, memory resource requirement, and storage resource requirement and the file size and print complexity, and then dynamically adjust the number of CPU cores, memory size, and storage capacity of the qemu virtual machine based on the output of the resource dynamic allocation model.
4. The Linux printer driver method based on a virtual machine across CPU architectures according to claim 1, characterized in that, The step of based on the qemu virtual machine to identify and capture the Linux printer device located at the USB port to obtain the first printer driver includes: Obtain the original data of the Linux printer device from the USB port. The original data includes at least device hardware information and device description information. Extract the features of the original data and convert it into feature vector data; Use a preset pattern library to match the feature vector data. Calculate the Euclidean distance between the feature vector and each pattern in the pattern library, and select the printer model and manufacturer corresponding to the pattern with the smallest Euclidean distance as the recognition result to obtain the printer model and manufacturer; After identifying the printer device, input its feature vector into the trained MLP multi-layer perceptron neural network, output the predicted drive probability distribution, and select the drive label with the highest probability as the first printer driver.
5. The Linux printer driver method based on virtual machines across CPU architectures according to claim 1, characterized in that The step of redirecting the first printer driver through USB redirection technology to obtain the second printer driver includes: Establish a drive optimization algorithm to monitor the performance metrics of the first printer driver in real time, including data transfer rate and response time ; Set the data transfer rate and the response time thresholds and , when < , it indicates that there is a bottleneck in the data transfer rate. When is greater than , it indicates a long response time; Set the current buffer size to , and the adjustment coefficient to . If > 1 is used to increase the buffer. If 0 < < 1 is used to decrease the buffer. Adjust the buffer size according to the change of data transmission rate. Then the adjusted buffer size ; Use the interrupt priority sorting to preferentially process the interrupts with high requirements for response time. Let the interrupt processing time before optimization be , and the interrupt processing time after optimization be . The optimization effect is measured by the optimization rate . ; Optimize the driver code according to the adjusted buffer and interrupt processing time, and use the optimized driver code for redirection to obtain the second printer driver.
6. The Linux printer driver method based on a virtual machine across CPU architectures according to claim 1, characterized in that The step of using the IP port redirection technology to map the CUPS service port of the initial Linux environment to obtain the target Linux environment includes: Obtain historical network traffic data and characteristic information of the current printing task, where the characteristic information at least includes the file size , the number of copies to be printed and the complexity of the printing format , and preprocess the historical traffic data and characteristic information to obtain initial network traffic data; Extract the feature vector from the initial network traffic data to obtain the feature network traffic data, and input the feature network traffic data into the ARIMR model for training. The calculation formula of the ARIMR model is: ; wherein, is an autoregressive polynomial, is a moving average polynomial, is a lag operator, is the order of differencing, is a white noise sequence; The flow prediction values for a future period are obtained after training within , and according to the flow prediction values the port mapping policy is adjusted. The port mapping policy includes setting different flow thresholds and flow thresholds , where < . When < , the number of mapped ports is reduced. When > , the number of mapped ports is increased; Map the CUPS service port of the initial Linux environment according to the port mapping policy to obtain a target Linux environment.
7. The Linux printer driver method based on a virtual machine across CPU architectures as described in claim 1, wherein Installing the second printer driver on the CUPS service port based on the target Linux environment to obtain a target printer driver includes: Obtain the feature information of the second printer driver, where the feature information at least includes the driver version , the minimum operating system version , the software package list , the storage path of the driver file ; Obtain the configuration information of the target Linux environment, including the operating system version , software package list , system configuration file path ; Check whether the operating system version of the target Linux environment meets the minimum requirements of the driver. If < , abort the script generation process; compare the list of dependent software packages required by the driver with the list of software packages already installed in the system to obtain the dependencies to be installed , where ; Planning the installation steps according to the characteristic information of the second printer driver and the configuration information of the target Linux environment, and combining the execution order of the installation steps into an installation script to obtain the target printer driver.
8. A Linux printer driver system based on a virtual machine across CPU architectures, characterized in that, The Linux printer driver system includes the following modules: An initial environment startup module for starting at least one minimal Linux environment based on the x86 system architecture using a QEMU virtual machine to obtain an initial Linux environment; A first driver calculation module for identifying and capturing a Linux printer device located at a USB port based on the QEMU virtual machine to obtain a first printer driver; A second driver calculation module for redirecting the first printer driver through USB redirection technology to obtain a second printer driver; A target environment acquisition module for mapping the CUPS service port of the initial Linux environment using IP port redirection technology to obtain a target Linux environment; A target driver acquisition module for installing the second printer driver on the CUPS service port based on the target Linux environment to obtain a target printer driver; A print command execution module for obtaining the content to be printed and executing a print instruction on the content to be printed based on the target printer driver.
9. The Linux printer driver system based on a virtual machine and across CPU architectures as claimed in claim 8, wherein The initial environment startup module includes the following units: An evaluation index definition unit is used to establish an automated image selection algorithm and define the evaluation indexes of the algorithm. The evaluation indexes include resource requirement compliance , performance score , compatibility score and historical usage score ; A resource requirement calculation unit, configured to obtain the number of available CPU cores, memory, and storage of a user; obtain the number of CPU cores, memory, and storage required for an image, and calculate the resource requirement compliance degree through a resource requirement compliance degree calculation formula ; A performance scoring calculation unit, configured to calculate the performance score according to the performance of the image in terms of CPU performance, memory performance, and storage performance, by using a performance scoring calculation formula for the calculation; A compatibility evaluation unit, which is configured to evaluate the compatibility score based on the compatibility between the image and the hardware and software of the target system for evaluation; Linux image selection unit, which is used to score the stability and usability of the image based on historical usage data and user feedback for the historical usage score to select the image with the highest comprehensive score as the minimal Linux image.
10. A Linux printer driver system based on a virtual machine across CPU architectures as claimed in claim 8, characterized in that, The initial environment startup module further includes the following units: A dynamic allocation unit for establishing a resource dynamic allocation model and dynamically allocating resources of the QEMU virtual machine according to the estimated load of the print task using the resource dynamic allocation model; A load index unit for defining task load indexes, where the task load indexes at least include file size and printing complexity , where the printing complexity at least includes graphics, colors, and layout in the file; A dynamic adjustment unit for assuming a linear relationship between the CPU resource requirement, memory resource requirement, and storage resource requirement and the file size and print complexity, and then dynamically adjusting the number of CPU cores, memory size, and storage capacity of the QEMU virtual machine based on the output of the resource dynamic allocation model.
Citation Information
Patent Citations
Redirecting method and system for display device
CN106970786A
Method and device for generating printing driver and electronic equipment
CN118276795A