JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Oracle Solaris Administration: Devices and File Systems     Oracle Solaris 11 Information Library
search filter icon
search icon

Document Information

About This Book

1.  Managing Removable Media (Overview)

2.  Managing Removable Media (Tasks)

3.  Accessing Removable Media (Tasks)

4.  Writing CDs and DVDs (Tasks)

5.  Managing Devices (Overview/Tasks)

What's New in Device Management?

Customizing Driver Configuration

Solaris PCI Resource Manager

New InfiniBand Administration Features

New InfiniBand Diagnostic Tools and Commands

New Ethernet Over InfiniBand Devices

New Hot Plugging Features

Device Naming Enhancements

Support for PCI Express (PCIe)

Where to Find Additional Device Management Tasks

Managing Devices in the Oracle Solaris OS

Identifying Device Support

About Device Drivers

How to Customize a Driver Configuration

Automatic Configuration of Devices

Features and Benefits of Autoconfiguration

What You Need for Unsupported Devices

Displaying Device Configuration Information

driver not attached Message

In-Use Device Error Checking

How to Display System Configuration Information

Resolving Faulty Devices

How to Resolve a Faulty Device

Adding a Peripheral Device to a System

How to Add a Peripheral Device

How to Add a Device Driver

Accessing Devices

How Device Information Is Created

How Devices Are Managed

Device Naming Conventions

Logical Disk Device Names

Specifying the Disk Subdirectory

Direct and Bus-Oriented Controllers

x86: Disks With Direct Controllers

Disks With Bus-Oriented Controllers

Logical Tape Device Names

Logical Removable Media Device Names

6.  Dynamically Configuring Devices (Tasks)

7.  Using USB Devices (Overview)

8.  Using USB Devices (Tasks)

9.  Using InfiniBand Devices (Overview/Tasks)

10.  Managing Disks (Overview)

11.  Administering Disks (Tasks)

12.  SPARC: Setting Up Disks (Tasks)

13.  x86: Setting Up Disks (Tasks)

14.  Configuring Storage Devices With COMSTAR

15.  Configuring and Managing the Oracle Solaris Internet Storage Name Service (iSNS)

16.  The format Utility (Reference)

17.  Managing File Systems (Overview)

18.  Creating and Mounting File Systems (Tasks)

19.  Configuring Additional Swap Space (Tasks)

20.  Copying Files and File Systems (Tasks)

21.  Managing Tape Drives (Tasks)


Managing Devices in the Oracle Solaris OS

The following sections provide overview information about features that manage devices in the Oracle Solaris OS. For information about accessing devices, see Accessing Devices.

Identifying Device Support

You can use the device detection tool to identify whether your x86 hardware is supported in this Oracle Solaris release. For more information, go to the following site:

About Device Drivers

A computer typically uses a wide range of peripheral devices and mass-storage devices. Your system, for example, probably has a disk drive, a keyboard and a mouse, and some kind of magnetic backup medium. Other commonly used devices include the following:

The Oracle Solaris software does not directly communicate with all these devices. Each type of device requires different data formats, protocols, and transmission rates.

A device driver is a low-level program that allows the operating system to communicate with a specific piece of hardware. The driver serves as the operating system's “interpreter” for that piece of hardware.

How to Customize a Driver Configuration

In the Oracle Solaris 11 release, driver customizations are made in the /etc/driver/drv directory rather than in the /kernel directory as in previous releases. This improvement means that your driver customizations are not overwritten when the system is upgraded. The files in the /etc/driver/drv directory are preserved during the upgrade.

Customizing a driver configuration usually means that a per-device parameter or global property that impacts all devices is added or modified.

  1. Become an administrator.
  2. Copy the original vendor supplied driver.conf file to the /etc/driver/drv directory. For example:
    # cp /kernel/drv/sd.conf /etc/driver/drv/sd.conf
  3. Modify the parameter entry and save the file.

    For example, the sd.conf includes the following entry for sd device at target 0, lun 0:

    name="sd" class="scsi" target=0 lun=0;

    To add the retries parameter for this device, modify the existing entry as follows:

    name="sd" class="scsi" target=0 lun=0 retries=4;
  4. Display the customized property value. For example:
    # prtconf -u
    sd, instance #1
               Admin properties:
                   name='retries' type=int items=1

Automatic Configuration of Devices

The kernel consists of a small generic core with a platform-specific component and a set of modules. The kernel is configured automatically in the Oracle Solaris release.

A kernel module is a hardware or software component that is used to perform a specific task on the system. An example of a loadable kernel module is a device driver that is loaded when the device is accessed.

The platform-independent kernel is /kernel/genunix. The platform-specific component is /platform/`uname -m`/kernel/unix.

The kernel modules are described in the following table.

Table 5-2 Description of Solaris Kernel Modules

Directory Contents
/platform/`uname -m`/kernel
Platform-specific kernel components
Kernel components common to all platforms that are needed for booting the system
Kernel components common to all platforms within a particular instruction set

The system determines what devices are attached to it at boot time. Then, the kernel configures itself dynamically, loading needed modules into memory. At this time, device drivers are loaded when devices, such as disk devices and tape devices, are accessed. This process is called autoconfiguration because all kernel modules are loaded automatically when they are needed.

You can customize the way in which kernel modules are loaded by modifying the /etc/system file. For instructions on modifying this file, see system(4).

Features and Benefits of Autoconfiguration

The benefits of autoconfiguration are as follows:

Autoconfiguration is used when you add a new device (and driver) to the system. In previous releases, it was necessary to perform a reconfiguration boot if you added a device to a system that is shutdown. Device configuration enhancements make a reconfiguration boot unnecessary when a device is added to a system that is shutdown.

You can add, remove, or replace devices in the Oracle Solaris OS while the system is still running, if the system components support hot-plugging. For information about hot-plugging devices, see Chapter 6, Dynamically Configuring Devices (Tasks).

What You Need for Unsupported Devices

Device drivers needed to support a wide range of standard devices are included in the Oracle Solaris release. These drivers can be found in the /kernel/drv and /platform/`uname -m`/kernel/drv directories.

However, if you have purchased an unsupported device, the manufacturer should provide the software that is needed for the device to be properly installed, maintained, and administered.

At a minimum, this software includes a device driver and its associated configuration (.conf) file. The .conf files reside in the drv directories. This software might also include custom maintenance and administrative utilities because the device might be incompatible with Oracle Solaris utilities.

For more information about what you need for unsupported devices, contact your device manufacturer.

Displaying Device Configuration Information

Three commands are used to display system and device configuration information.

Man Page
Displays system configuration information, including the total amount of memory and the device configuration as described by the system's device hierarchy. The output displayed by this command depends upon the type of system.
Displays device configuration information, including system hardware, pseudo devices, loadable modules, and selected kernel parameters.
Displays system diagnostic messages as well as a list of devices attached to the system since the last reboot.

For information on the device names that are used to identify devices on the system, see Device Naming Conventions.

driver not attached Message

The following driver-related message might be displayed by the prtconf and sysdef commands:

device, instance #number (driver not attached)

This message does not always mean that a driver is unavailable for this device. This message means that no driver is currently attached to the device instance because no device exists at this node or the device is not in use. Drivers are loaded automatically when the device is accessed. They are unloaded when the device is not in use.

In-Use Device Error Checking

The following utilities detect when a specified device is in use:

These enhancements mean that the above utilities might detect some of the following usage scenarios:

For example, if you attempt to use the format utility to access an active device, you will see a message similar to the following:

# format
Searching for disks...done
       0. c1t0d0 <FUJITSU-MAY2073RCSUN72G-0401 cyl 8921 alt 2 hd 255 sec 63>
       1. c1t1d0 <FUJITSU-MAY2073RCSUN72G-0401-68.37GB>
Specify disk (enter its number): 0
selecting c1t0d0
[disk formatted]
/dev/dsk/c1t0d0s0 is part of active ZFS pool rpool. Please see zpool(1M).


How to Display System Configuration Information

Use the output of the prtconf and sysdef commands to identify which disk, tape, and DVD devices are connected to the system. The output of these commands displays the driver not attached messages next to the device instances. Because these devices are always being monitored by some system process, the driver not attached message is usually a good indication that no device exists at that device instance.

Use the sysdef command to display system configuration information that include pseudo devices, loadable modules, and selected kernel parameters.

Example 5-1 Displaying System Configuration Information

The following prtconf output is displayed on an x86 based system.

# prtconf
System Configuration:  Oracle Corporation  i86pc
Memory size: 8192 Megabytes
System Peripherals (Software Nodes):

    scsi_vhci, instance #0
    pci, instance #0
        pci108e,4843, instance #0
        pci8086,25e2, instance #0
            pci8086,3500, instance #7
                pci8086,3510, instance #9
                pci8086,3518, instance #10
                    pci108e,4843, instance #0
                    pci108e,4843, instance #1
            pci8086,350c, instance #8
        pci8086,25e3 (driver not attached)
        pci8086,25f8, instance #2
            pci108e,286, instance #0
                disk, instance #0
                disk, instance #2
                disk, instance #3
                disk, instance #1
        pci8086,25e5 (driver not attached)
        pci8086,25f9 (driver not attached)
        pci8086,25e7 (driver not attached)
        pci108e,4843, instance #0 (driver not attached)
        pci108e,4843, instance #1
        pci108e,4843, instance #2 (driver not attached)
        pci108e,4843 (driver not attached)
        pci108e,4843 (driver not attached)
        pci108e,4843 (driver not attached)
        pci108e,4843 (driver not attached)
        pci8086,2690, instance #6
            pci108e,125e, instance #2
            pci108e,125e, instance #3
        pci108e,4843, instance #0
        pci108e,4843, instance #1
            device, instance #0
                keyboard, instance #0
                mouse, instance #1
        pci108e,4843, instance #2
        pci108e,4843, instance #3
        pci108e,4843, instance #0
            storage, instance #0
                disk, instance #4

The following sysdef output is displayed from an x86 based system.

# sysdef
* Hostid
* i86pc Configuration
* Devices
+boot (driver not attached)
memory (driver not attached)
aliases (driver not attached)
chosen (driver not attached)
i86pc-memory (driver not attached)
i86pc-mmu (driver not attached)
openprom (driver not attached)
options, instance #0
packages (driver not attached)
delayed-writes (driver not attached)
itu-props (driver not attached)
isa, instance #0
    motherboard (driver not attached)
    pnpADP,1542, instance #0
    asy, instance #0
    asy, instance #1
    lp, instance #0 (driver not attached)
    fdc, instance #0
        fd, instance #0
        fd, instance #1 (driver not attached)
    kd (driver not attached)
    kdmouse (driver not attached)

Resolving Faulty Devices

A device retirement mechanism isolates a device as faulty by the fault management framework (FMA). This feature allows faulty devices to be safely and automatically inactivated to avoid data loss, data corruption, or panics and system down time. The retirement process is done safely, taking into account the stability of the system after the device has been retired.

Critical devices are never retired. If you need to manually replace a retired device, use the fmadm repair command after the device replacement so that system knows that the device is replaced, in addition to the manual replacement steps.

For more information, see fmadm(1M).

A general message regarding device retirement is displayed on the console and written to the /var/adm/messages file so that you aware of a retired device. For example:

Aug 9 18:14 starbug genunix: [ID 751201 kern.notice] NOTICE: One or more I/O devices have been retired

You can use the prtconf command to identify specific retired devices. For example:

# prtconf
pci, instance #2
        scsi, instance #0
            disk (driver not attached)
            tape (driver not attached)
            sd, instance #3
            sd, instance #0 (retired)
        scsi, instance #1 (retired)
            disk (retired)
            tape (retired)
    pci, instance #3
        network, instance #2 (driver not attached)
        network, instance #3 (driver not attached)
    os-io (driver not attached)
    iscsi, instance #0
    pseudo, instance #0 

How to Resolve a Faulty Device

Use the steps below to resolve a faulty device or a device that has been retired.

You can also review ZFS device problem or failure information by using the zpool status or the fmdump command. For ZFS device problem or failure information, see Chapter 11, Oracle Solaris ZFS Troubleshooting and Pool Recovery, in Oracle Solaris Administration: ZFS File Systems.

  1. Identify the faulted device with the fmadm faulty command.
    # fmadm faulty
    --------------- ------------------------------------  -------------- ---------
    TIME            EVENT-ID                              MSG-ID         SEVERITY
    --------------- ------------------------------------  -------------- ---------
    May 06 03:38:06 0376b4b6-fce7-c0f0-ffd9-a0a685376284  ZFS-8000-D3    Major     
    Host        : neo-2
    Platform    : Sun-Fire-X4140    Chassis_id  : 0904QAD02C
    Product_sn  : 
    Fault class : fault.fs.zfs.device
    Affects     : zfs://pool=tank/vdev=c26c72a8ffcff889
                      faulted and taken out of service
    Problem in  : zfs://pool=tank/vdev=c26c72a8ffcff889
                      faulted and taken out of service
    Description : A ZFS device failed.  Refer to for
                  more information.
    Response    : No automated response will occur.
    Impact      : Fault tolerance of the pool may be compromised.
    Action      : Run 'zpool status -x' and replace the bad device.
  2. Replace the faulty or retired device or clear the device error.

    After a faulty device is replaced in a ZFS storage pool, clear the device error. For example:

    # zpool clear rpool c4t0d0s0

    If an intermittent device error occurred but the device was not replaced, you can attempt to clear the error as shown above.

  3. Clear the FMA fault.
    # fmadm repair 0376b4b6-fce7-c0f0-ffd9-a0a685376284
  4. Confirm that the fault is cleared.
    # fmadm faulty