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

Document Information

Preface

1.  Managing Removable Media (Tasks)

2.  Writing CDs and DVDs (Tasks)

3.  Managing Devices (Tasks)

What's New in Device Management?

Support for USB 3.0 Devices

Where to Find Additional Device Management Tasks

Managing Devices in Oracle Solaris

x86: 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

Disks With Direct Controllers

Disks With Bus-Oriented Controllers

Logical Tape Device Names

Logical Removable Media Device Names

4.  Dynamically Configuring Devices (Tasks)

5.  Managing USB Devices (Tasks)

6.  Using InfiniBand Devices (Overview/Tasks)

7.  Managing Disks (Overview)

8.  Managing Disk Use (Tasks)

9.  Administering Disks (Tasks)

10.  Setting Up Disks (Tasks)

11.  Configuring Storage Devices With COMSTAR (Tasks)

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

13.  The format Utility (Reference)

14.  Managing File Systems (Overview)

15.  Creating and Mounting File Systems (Tasks)

16.  Configuring Additional Swap Space (Tasks)

17.  Copying Files and File Systems (Tasks)

18.  Managing Tape Drives (Tasks)

Index

Managing Devices in Oracle Solaris

The following sections provide overview information about features that manage devices in Oracle Solaris:

For information about accessing devices, see Accessing Devices.

x86: 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 http://www.oracle.com/webfolder/technetwork/hcl/hcts/device_detect.jsp.

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 DVD writer.

Other commonly used devices include the following:

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

A device driver is a low-level program that enables 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 -vu
    sd, instance #1
               Admin properties:
                   name='retries' type=int items=1
                       value=00000004

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 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 kernel modules are described in the following table.

Table 3-2 Description of Solaris Kernel Modules

Location
Directory Contents
/platform/`uname -m`/kernel
Platform-specific kernel components
/kernel
Kernel components common to all platforms that are needed for booting the system
/usr/kernel
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 4, Dynamically Configuring Devices (Tasks).

What You Need for Unsupported Devices

Device drivers that are 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

The following table describes the three commands that are used to display system and device configuration information.

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

For information about 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 these 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
AVAILABLE DISK SELECTIONS:
       0. c1t0d0 <FUJITSU-MAY2073RCSUN72G-0401 cyl 8921 alt 2 hd 255 sec 63>
          /pci@0,0/pci1022,7450@2/pci1000,3060@3/sd@0,0
          /dev/chassis/SYS/HD0/disk
       1. c1t1d0 <FUJITSU-MAY2073RCSUN72G-0401-68.37GB>
          /pci@0,0/pci1022,7450@2/pci1000,3060@3/sd@1,0
          /dev/chassis/SYS/HD1/disk
Specify disk (enter its number): 0
selecting c1t0d0
[disk formatted]
/dev/dsk/c1t0d0s0 is part of active ZFS pool rpool. Please see zpool(1M).


FORMAT MENU:
.
.
.

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 includes pseudo devices, loadable modules, and selected kernel parameters.

Example 3-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):

i86pc
    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
*
  29f10b4d
*
* 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 that follow 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 fmadm command. For ZFS device problem or failure information, see Chapter 10, Oracle Solaris ZFS Troubleshooting and Pool Recovery, in Oracle Solaris 11.1 Administration: ZFS File Systems.

  1. Identify the faulted device with the fmadm faulty command. For example:
    # fmadm faulty
    --------------- ------------------------------------  -------------- ---------
    TIME            EVENT-ID                              MSG-ID SEVERITY
    --------------- ------------------------------------  -------------- ---------
    Jun 20 16:30:52 55c82fff-b709-62f5-b66e-b4e1bbe9dcb1  ZFS-8000-LR Major
    
    Problem Status    : solved
    Diag Engine       : zfs-diagnosis / 1.0
    System
        Manufacturer  : unknown
        Name          : ORCL,SPARC-T3-4
        Part_Number   : unknown
        Serial_Number : 1120BDRCCD
        Host_ID       : 84a02d28
    
    ----------------------------------------
    Suspect 1 of 1 :
       Fault class : fault.fs.zfs.open_failed
       Certainty   : 100%
       Affects     : zfs://pool=86124fa573cad84e/vdev=25d36cd46e0a7f49/
    pool_name=pond/vdev_name=id1,sd@n5000c500335dc60f/a
       Status      : faulted and taken out of service
    
       FRU
         Name             : "zfs://pool=86124fa573cad84e/vdev=25d36cd46e0a7f49/
    pool_name=pond/vdev_name=id1,sd@n5000c500335dc60f/a"
            Status        : faulty
    
    Description : ZFS device 'id1,sd@n5000c500335dc60f/a' in pool 'pond' failed to
                  open.
    
    Response    : An attempt will be made to activate a hot spare if available.
    
    Impact      : Fault tolerance of the pool may be compromised.
    
    Action      : Use 'fmadm faulty' to provide a more detailed view of this event.
                  Run 'zpool status -lx' for more information. Please refer to the
                  associated reference document at
                  http://support.oracle.com/msg/ZFS-8000-LR for the latest service
                  procedures and policies regarding this diagnosis.
  2. Replace the faulty or retired device or clear the device error. For example:
    # zpool clear pond c0t5000C500335DC60Fd0

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

  3. Clear the FMA fault. For example:
    # fmadm repaired zfs://pool=86124fa573cad84e/vdev=25d36cd46e0a7f49/ \
    pool_name=pond/vdev_name=id1,sd@n5000c500335dc60f/a
    fmadm: recorded repair to of zfs://pool=86124fa573cad84e/vdev=25d36cd46e0a7f49/
    pool_name=pond/vdev_name=id1,sd@n5000c500335dc60f/a
  4. Confirm that the fault is cleared.
    # fmadm faulty

    If the error is cleared, the fmadm faulty command returns nothing.