Frank Che wrote: > 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.
So you want this to go into a Solaris 10 Update? Why? I would have expected "minor" for the release binding since you have a dependency on the IPS project. > 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. How often will the database be updated? Who is responsible for updating the database? Who is responsible for ensuring that the information in the database is accurate? > 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. What if the driver is for a network device, and the system has no other network interface installed? What information will be provided to the user so that they can get the driver via other means? > 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. I like the sound of this. Will there be just one URL to point both the database queries and submission towards, or will there be multiple locations? If there are multiple locations, how will the information be collated for the database, and how will it be propagated to the other locations? How will you handle secure sites? > 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 One final question - is the project team writing this from scratch, or are they leveraging the work of the existing HCTS tool? James C. McPherson -- Senior Kernel Software Engineer, Solaris Sun Microsystems http://blogs.sun.com/jmcp http://www.jmcp.homeunix.com/blog