Assigning a New Device to an Existing Driver in the Solaris OS

March 2007

This page explains how to add device support to the Solaris Operating System by attaching an existing Solaris driver to a new device. Many Solaris device drivers are written to be independent of the vendor and device IDs of that device. This allows the driver module to potentially support a larger number of similar devices that use the same vendor chipset but might present different OEM IDs.

If a device in your system does not seem to be supported by the Solaris OS, look for a Solaris driver that supports a similar device. If you do not find a Solaris driver that supports a similar device, look for a third-party driver. See Finding a Third-Party Driver below.

To find a candidate driver in the Solaris OS, first gather some information about your device. With the vendor name and model name of the device, you should be able to find the PCI ID and vendor ID of your device on SourceForge or on PCIDatabase.

Search the Solaris for x86 Device Support list for a device similar to yours. You can start by searching for the same vendor and then look for a similar PCI ID. Your device might be repackaged under a different vendor name, so you might want to search by device type and then look for a similar PCI ID. If you find a device similar to yours in this list, note the name of the driver for that similar device.

For more information about these drivers, see man pages section 7: Device and Network Interfaces or enter the following at the command line:


Search the /etc/driver_aliases file for the name of the candidate driver you found. The /etc/driver_aliases file is in the following format:

driver "

For example, you have an nVidia Corporation MCP51 High Definition Audio device with device ID pci10de,26c. You note from the Solaris for x86 Device Support list that the Solaris OS already supports the nVidia Corporation MCP55 High Definition Audio device with device ID pci10de,371 with the audiohd driver. Search for the audiohd driver in the /etc/driver_aliases file. You should see the following entry:

audiohd "pci10de,371"

You can create a similar entry for your device.

Note: You must be the root user to edit the /etc/driver_aliases file.

!Caution: If you make a mistake when you edit the /etc/driver_aliases file, you could cause your system to panic.

1. Save a copy of your current /etc/driver_aliases file.

2. As user root, edit the /etc/driver_aliases file.

Copy this line:

audiohd "pci10de,371"

Change it to be this line:

audiohd "pci10de,26c"

After editing the /etc/driver_aliases file, do the following steps to complete the update.

3. Use the update_drv(1M) command to update the driver configuration:


4. Use the devfsadm(1M) command to rebuild the /dev device tree:

/usr/sbin/devfsadm -i   

5. Reboot the system.

The driver should load the next time you access your device.

To load the driver explicitly, use the modload(1M) command.

modload drv/audiohd

Note: You must be the root user to use the modload(1M) command.

Report Your Success

If your device is now supported, please tell us the device ID and driver combination that worked. You can also submit the device to the Hardware Compatibility List (HCL) as Reported to Work. To submit as Reported to Work, answer "No" to the question whether you ran the HCTS (Hardware Certification Test Suite).

Finding a Third-Party Driver

If you are running the Solaris 10 OS or later and Java Runtime Environment (JRE) 1.4 or later, you can use Sun Device Detection Tool to identify a known third-party driver for your device. See the Sun Device Detection Tool web site for more information.

For additional Sun and third-party drivers and devices for the Solaris OS, see the following resources:

If you find a candidate third-party driver for your device, see the Device Driver Tutorial for instructions on installing the driver.

Unless otherwise licensed, code in all technical manuals herein (including articles, FAQs, samples) is provided under this License.