Before a driver can be used, the system must be informed that it exists. The add_drv(1M) utility must be used to correctly install the device driver. After the driver is installed, it can be loaded and unloaded from memory without using add_drv(1M) again.
Device drivers reside in different directories depending on the platform they run on and whether they are needed at boot time. Platform-dependent device drivers reside in the following locations:
/platform/`uname -i`/kernel/drv - Contains 32-bit drivers that run only on a specific platform, such as the UltraTM 2
/platform/`uname -m`/kernel/drv - Contains 32-bit drivers that run on a family of platforms. This directory might not be present on some platforms.
Platform-independent drivers reside in either of these directories:
/usr/kernel/drv - Contains 32-bit drivers not required for system booting
/kernel/drv - Contains 32-bit drivers required for booting
64-bit SPARC drivers reside in the drv/sparcv9 directory in the module path
To install a 32-bit driver, the driver and its configuration file must be copied to a drv directory in the module path. For example, to copy a driver to /usr/kernel/drv, type:
$ su# cp xx /usr/kernel/drv# cp xx.conf /usr/kernel/drv
To install a 64-bit SPARC driver, copy the driver to a drv/sparcv9 directory in the module path. Copy the driver configuration file to the drv directory in the module path. For example, to copy a driver to /usr/kernel/drv, type:
$ su# cp xx /usr/kernel/drv/sparcv9# cp xx.conf /usr/kernel/drv
If the driver creates minor nodes that do not represent disks, tapes, or ports (terminal devices), /etc/devlink.tab can be modified to cause devfsadm(1M) to create logical device names in /dev.
Alternatively, logical names can be created by a program run at driver installation time.
Run add_drv(1M) to install the driver in the system. If the driver installs successfully, add_drv(1M) will run devfsadm(1M) to create the logical names in /dev.
# add_drv xx
This is a simple case in which the device identifies itself as xx and the device special files will have default ownership and permissions (0600 root sys). add_drv(1M) also allows additional names for the device (aliases) to be specified. See add_drv(1M) to determine how to add aliases and set file permissions explicitly.
add_drv(1M) should not be run when installing a STREAMS module. See the STREAMS Programming Guide for details.