Dynamic device matching using driver candidate lists
First Claim
1. In a computer system having a processor coupled to a communication bus, a memory unit coupled to said communication bus, and devices coupled to said communication bus, a method for configuring a particular device of said devices with a device driver, said method comprising the computer implemented steps of:
- reporting a device name associated with said particular device;
scanning a first set of available drivers within said computer system to determine a second set of drivers individually having a driver name that matches with said device name;
for each individual driver of the second set of drivers, scanning a first set of families available within the computer system to determine a second set of families comprising at least one family, each family of the second set of families having category information which matches category information associated with the individual driver of the second set of drivers;
installing at least one family of the second set of families;
sequentially attempting installation of individual drivers of said second set of drivers with said particular device to determine a matching driver of said second set of drivers that properly configures said particular device; and
reporting said matching driver of said set of drivers that properly configures said particular device upon an indication by said step of sequentially attempting installation.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and mechanism for automatically correlating a device to its appropriate driver and family within a computer system utilizing candidate matching. A device tree indicating devices coupled to a computer system is available from an operating system. Within the device tree are device nodes which specify a particular device'"'"'s name (device name) and a property which indicates compatible device names (compatible names) to the particular device. Drivers and corresponding families for devices can be located in RAM, ROM, or in another storage media (such as disk drive). Drivers can include a data field indicating a driver name indicative of a corresponding device with which they operate. For a particular device, the system constructs a candidate list of drivers by comparing (1) the device name and (2) the compatible names from the device tree against all the driver names of data fields of all known drivers. The candidate list is sorted so that matches by device name and proper version number are higher priority. Corresponding families are then determined and loaded. The system then sequentially attempts installation of the drivers from the candidate list to the particular device (based on priority order) to determine the appropriate driver (e.g., probing the device using diagnostic operations). Drivers are skipped that cause an error or that do not properly configure the device. The process can be repeated for all devices in the computer system. The process is dynamic in that it is operable on boot up and upon any system change that allows more drives to be recognized.
-
Citations
22 Claims
-
1. In a computer system having a processor coupled to a communication bus, a memory unit coupled to said communication bus, and devices coupled to said communication bus, a method for configuring a particular device of said devices with a device driver, said method comprising the computer implemented steps of:
-
reporting a device name associated with said particular device; scanning a first set of available drivers within said computer system to determine a second set of drivers individually having a driver name that matches with said device name; for each individual driver of the second set of drivers, scanning a first set of families available within the computer system to determine a second set of families comprising at least one family, each family of the second set of families having category information which matches category information associated with the individual driver of the second set of drivers; installing at least one family of the second set of families; sequentially attempting installation of individual drivers of said second set of drivers with said particular device to determine a matching driver of said second set of drivers that properly configures said particular device; and reporting said matching driver of said set of drivers that properly configures said particular device upon an indication by said step of sequentially attempting installation. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. In a computer system having a processor coupled to a communication bus, a memory unit coupled to said communication bus, and devices coupled to said communication bus, a method for configuring a particular device of said devices, said method comprising the computer implemented steps of:
-
reporting a set of device names associated with said particular device; scanning a first set of available drivers within said computer system to determine a second set of drivers individually having a driver name that matches with any name of said set of device names; for each individual driver of the second set of drivers, scanning a first set of families available within the computer system to determine a second set of families comprising at least one family, each family of the second set of families having category information which matches category information associated with the individual driver of the second set of drivers; sorting said second set of drivers by a priority of compatibility with said particular device; installing at least one family of the second set of families; sequentially attempting installation of individual drivers of said second set of drivers with said particular device to determine a first matching driver of said second set of drivers that properly configures said particular device; and installing said first matching driver with said particular device upon an indication by said step of sequentially attempting installation. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
-
16. A computer readable medium storing instructions for a digital processing system having a processor coupled to a bus and a particular device coupled to said bus, wherein when said instructions are executed by said processor, said system is caused to perform the steps of:
-
reporting a device name associate with said particular device; scanning a first set of available drivers within said system to determine a second set of drivers individually having a driver name that matches with said device name; for each individual driver of the second set of drivers, scanning a first set of families available within the system to determine a second set of families comprising at least one family, each family of the second set of families having category information which matches category information associated with the individual driver of the second set of drivers; installing at least one family of the second set of families; sequentially attempting installation of individual drivers of said second set of drivers with said particular device to determine a matching driver that properly configures said particular device; and reporting said matching driver of said set of drivers that properly configures said particular device upon an indication by said step of sequentially attempting installation. - View Dependent Claims (17, 18, 19, 20)
-
-
21. A digital processing system comprising:
-
a bus; a processor coupled to said bus; a particular device coupled to said bus; a memory coupled to said bus, said memory storing a first set of drivers and storing a first set of families, said processor scanning said first set of drivers to determine a second set of drivers comprising at least one driver that has a driver name that matches a device name associated with said particular device, said processor scanning said first set of families to determine a second set of families comprising at least one family having a category information which matches category information associated with said one driver, said processor installing said at least one family and attempting installation of said at least one driver with said particular device to determine a matching driver that properly configures said particular device. - View Dependent Claims (22)
-
Specification