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



Reply via email to