Device driver overview

Installation and configuration

Device drivers execute as part of the kernel itself, so special steps are required to install and configure drivers into the kernel. This involves populating a set of files known as the Driver Software Package (DSP) with information about the driver and device, then running a set of utilities referred to as idtools (install driver tools) such as idinstall and idbuild. The idtools can be run manually, but the most efficient methodology is to develop the packaging tools for the driver along with the driver code and DSP files. This way, the packaging tools can do all the steps that are required to install and configure the driver and device and you can test and debug the packaging tools at the same time as the rest of the driver.

Driver configuration has evolved over the years, in response to the increasingly sophisticated hardware that is available. In the early days of the UNIX operating system, driver configuration consisted largely of populating files with information about the fixed parameters of the device, which were set with physical switches and jumpers. Most modern devices support some level of autodetection (the operating system detects the hardware that is attached to the system) and autoconfiguration (the operating system selects configuration parameters such as the IRQ, I/O address space, and memory space for all the configured devices). The driver configuration process has evolved to accomodate the new hardware features. This means that the format of the files that control driver configuration have changed; consult the manual pages for detailed information about the formats supported for different interfaces and operating system releases.

The driver writer must populate a set of data files that are used by tools such as idinstall and idbuild to install and configure the drivers. For a complete overview of this subject, see ``Installing, configuring, and packaging SVR5 drivers''.

The files that control driver installation and configuration are called the Driver Software Package (DSP). The primary ones for SVR5 are:

Contains the compiled driver source code.

Describes the driver to the system.

Provides configuration information about devices that are controlled by this driver.

Drvmap(DSP/4dsp) (SVR5 only)
Provides information used to dynamically load a driver into the kernel.

Describes the special device files to be created in the /dev directory for the devices supported by this driver.

SCO OpenServer 5 drivers use similarly-named DSP files, but the manual pages cannot be hotlinked from this documentation. Use the man command on an SCO OpenServer 5 system or the SCO OpenServer 5 Scohelp browser to access information about the SCO OpenServer 5 DSP files.

All DDI 8 and SVR5 MDI drivers as well as many drivers written for DDI 7 and earlier versions are dynamically loaded. Loadable drivers are initialized into the kernel while the system is running, without rebooting the system and rebuilding the kernel. See ``Dynamically-loadable kernel modules (DLKM)'' for a description of the loadable driver installation and configuration procedures.

For SCO OpenServer 5 drivers and non-loadable drivers written for DDI versions 7 and earlier, driver configuration and initialization is invoked by shutting down and rebooting the system. During the reboot, the system uses information from the modified system configuration files to create special device files under the /dev tree, and the entries for the new driver in the system initialization tables, switch tables, and interrupt vector tables.

© 2005 The SCO Group, Inc. All rights reserved.
OpenServer 6 and UnixWare (SVR5) HDK - June 2005