I'm sponsoring this fast track for Bill Yan. Requested release binding is patch/micro for OpenSolaris. Timer is set to 08/13/2008.
Note that this project depends on the IPS project (PSARC 2008/190) which is still under development now. Frank. 4. Technical Description Summary The intent of this project is to propose the integration of Device Driver Utility to OpenSolaris OS. Motivation to propose this project is to fulfill the increasing requirement from the customer about easily view hardware information in Solaris OS and install missing device driver(s), thus contribute to the adoption of OpenSolaris OS. This project requests a patch/micro release binding to OpenSolaris. 4.1 Proposal 4.1.1 Introduction to Device Driver Utility Device Driver Utility provides information about the devices of the user's native system. Device Driver Utility enables the user to connect to the Image Packaging System (IPS) [1] to search for the device drivers for the devices that do not have a driver attached with it. By using the Device Driver Utility application, the user can do the following: * Get the information of the devices installed on your native system and their corresponding device driver availability status. The following information are displayed on the GUI: - Device name and attributes(device path, vendor ID, device ID etc.) - Device driver availability - Device driver name and status(instance number, attached/detached etc.) * Check the device driver availability for your system devices on IPS. * Download and install the device drivers from IPS for those devices that do not have an attached driver. * Report system configurations to the OpenSolaris Hardware Compatibility List (HCL). 4.1.2 Device Driver Utility components To achieve the above functions, the following components will be implemented: 4.1.2.1 Device information fetcher. This component is designed to probe current system via the libdevinfo interface, walk through device tree and get information of all detected devices and driver information of each device. 4.1.2.2 Solaris driver database. The Solaris driver database is a mapping table between device identifier(normally vendor ID and device ID) and name of Solaris driver. This database includes three sets of information: drivers that are bundle with OpenSolaris, third-party drivers that can be downloaded from an IHV website, drivers that can be downloaded from OpenSolaris community. This database is only used when a device doesn't have a driver. Solaris driver information is extracted from the /etc/driver_aliases file. Third-party and OpenSolaris driver information is manually collected and added to the driver database. The driver database must be updated periodically because new hardware and new Solaris drivers are continually created. 4.1.2.3 User interface. Consider the target user of this tool are most likely don't have much knowledge of Solaris system administration, only graphical user interface is available, written in Python. The user reads device information from this informative GUI, instruct Device Driver Utility to download and install missing driver(s) automatically through a few simple mouse-click, submit hardware information to OpenSolaris HCL using this GUI. 4.1.2.4 Core engine. This component stays in the center of Device Driver Utility. It completes the following fundamental operations: (1) Get device information from device information fetcher. If there is device that missing driver in current OpenSolaris OS, then look up Solaris driver database for the driver name. Pass all these information to GUI for display. (2) Check IPS for driver availability through pkg(1M) command. Search for package on IPS that contains needed driver based on driver name. Download and install certain driver package(s) according to user's instruction. (3) Read hardware-related information from SMBIOS as much as possible, then automatically fill in to OpenSolaris HCL submission table, ask the user to provide other necessary information, then format all these information and pass to OpenSolaris HCL server if the user want to do a submission. Submission is done through HTTPS post method. The user can see what data will be transferred to Sun before the submission is done. 4.1.3 Limitations There are a few limitations in current plan: (1) The following functionality depend on network connectivity to Sun servers: * Check device driver availability via IPS. * Dynamically add driver from IPS. * Submit system configuration to OpenSolaris HCL. (2) If the Solaris driver database is not updated in time(for example, there is driver which can be found in IPS but not in Solaris driver database), the driver search result may not be correct. However, if IPS enables the user to search for a driver package through supported vendor ID and device ID, this limitation will not exist any more. 4.2 Interfaces 4.2.1 Exported Interfaces Exported Interface| Stability | Description ------------------+-------------+---------------------------------------- /usr/bin/ddu | Committed | Device Driver Utility startup script ------------------+-------------+---------------------------------------- SUNWddu | Uncommitted | Package name for Device Driver Utility ------------------------------------------------------------------------- 4.2.2 Imported Interfaces Imported Interface| Stability | Description ------------------+-------------+---------------------------------------- Python 2.4.x | Volatile | PSARC/2005/532 ------------------+-------------+---------------------------------------- libdevinfo.so.1 | Uncommitted | PSARC/1997/127 ------------------+-------------+---------------------------------------- /dev/smbios | Uncommitted | PSARC/2005/483 ------------------+-------------+---------------------------------------- pkg(5): image | Uncommitted | PSARC 2008/190 packaging system | | ------------------------------------------------------------------------- 4.3 References [1] IPS is a repository for OpenSolaris packages where the user can find suitable drivers for the devices. 6. Resources and Schedule 6.4 Steering Committee Requested Information 6.4.1 Consolidation C-team Name: None 6.5 ARC review type: Fast Track 6.6 ARC exposure: Open