System Administration Guide: Devices and File Systems
Previous Next

Managing Devices in the Solaris OS

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

Power Management of Devices

The United States Environmental Protection Agency created the Energy Star® guidelines for computer products to encourage the use of energy-efficient computer systems and to reduce air pollution associated with energy generation. To meet these guidelines, Sun hardware is designed to use power efficiently. In addition, power management software is provided to configure the power management settings.

For more information about power managing your system, see your specific hardware documentation or power.conf(4).

Power Management of Fibre Channel Devices

Power management of Sun systems has been provided in many previous Solaris releases. For example, the internal drives on the following systems are power managed by default:

  • SunBlade 1000 or 2000

  • SunBlade 100 or 150

  • SunBlade 2500 or 1500

The default settings in the /etc/power.conf file ensure Energy Star compliance and fully support power management of these systems.

The following adapters connect external Fibre Channel storage devices:

  • Sun StorEdge PCI Dual Fibre Channel Host Adapter

  • Sun StorEdge PCI Single Fibre Channel Network Adapter

If a combination of the above adapters and Sun systems are used to attach external Fibre Channel storage devices, the external storage devices will also be power managed by default.

Under the following conditions, power management should be disabled:

  • If the system has Fibre Channel attached disks that are connected to a storage area network (SAN)

  • If the system has Fibre Channel attached disks that are used in a multi-initiator configuration, such as with the SunCluster software

  • If the system is using IP over a Fibre Channel interface (see fcip(7D))

Power management should not be enabled when more than one Solaris system might share the same devices, as in the above conditions.

You can disable power management for the system by changing the autopm keyword in the /etc/power.conf file as follows:

autopm         disable

Then, reconfigure power management by running the pmconfig command or by rebooting the system.

For more information, see power.conf(4) and pmconfig(1M).

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:

  • CD-ROM drives

  • Printers and plotters

  • Light pens

  • Touch-sensitive screens

  • Digitizers

  • Tablet-and-stylus pairs

The 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.

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

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:

  • Main memory is used more efficiently because modules are loaded when needed.

  • There is no need to reconfigure the kernel when new devices are added to the system.

  • Drivers can be loaded and tested without having to rebuild the kernel and reboot the system.

Autoconfiguration is used when you add a new device (and driver) to the system. In previous Solaris releases, it was necessary to perform a reconfiguration boot if you added a device to a system that is shutdown. Starting in the Solaris Express 10/06 release, 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 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 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 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.

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 displayed by this command depends upon the type of system.

prtconf(1M)

sysdef

Displays device configuration information, including system hardware, pseudo devices, loadable modules, and selected kernel parameters.

sysdef(1M)

dmesg

Displays system diagnostic messages as well as a list of devices attached to the system since the last reboot.

dmesg(1M)

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.

How to Display System Configuration Information

Use the output of the prtconf and sysdef commands to identify which disk, tape, and CD-ROM 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.

  • Display system and device configuration information.
    • Display all the devices connected to a system.

      For example, the following prtconf -v output on a SunBlade 1000 identifies the disk devices connected to the system. The detailed disk information is described in the Device Minor Nodes section within the ssd/fp driver section.

      $ /usr/sbin/prtconf -v | more
      .
      .
      .
                  Device Minor Nodes:
                     dev=(118,8)
                        dev_path=/pci@8,600000/SUNW,qlc@4/fp@0,0/ssd@w210000
      2037bde864,0:a
                            spectype=blk type=minor
                            dev_link=/dev/dsk/c0t1d0s0
                        dev_path=/pci@8,600000/SUNW,qlc@4/fp@0,0/ssd@w210000
      2037bde864,0:a,raw
                            spectype=chr type=minor
                            dev_link=/dev/rdsk/c0t1d0s0
                     dev=(118,9)
                        dev_path=/pci@8,600000/SUNW,qlc@4/fp@0,0/ssd@w210000
      2037bde864,0:b
                            spectype=blk type=minor
                            dev_link=/dev/dsk/c0t1d0s1
                        dev_path=/pci@8,600000/SUNW,qlc@4/fp@0,0/ssd@w210000
      2037bde864,0:b,raw
      .
      .
      .
    • Display information about one specific device connected to the system.

      For example, the following prtconf output on a SunBlade 1000 displays the ssd instance number for /dev/dsk/c0t1d0s0.

      # prtconf -v /dev/dsk/c0t1d0s0
      ssd, instance #1
    • Display only the devices that are attached to the system.

      # prtconf | grep -v not
    • Display device usage information.

      For example, the following fuser command displays which processes are accessing the /dev/console device.

      # fuser -d /dev/console
      /dev/console:      346o     323o
      #
Example 5-1 Displaying System Configuration Information

The following prtconf output is displayed on a SPARC based system.

# prtconf
System Configuration:  Sun Microsystems  sun4u
Memory size: 512 Megabytes
System Peripherals (Software Nodes):

SUNW,Sun-Blade-1000
    scsi_vhci, instance #0
    packages (driver not attached)
        SUNW,builtin-drivers (driver not attached)
        deblocker (driver not attached)
        disk-label (driver not attached)
        terminal-emulator (driver not attached)
        obp-tftp (driver not attached)
        dropins (driver not attached)
        kbd-translator (driver not attached)
        ufs-file-system (driver not attached)
    chosen (driver not attached)
    openprom (driver not attached)
        client-services (driver not attached)
    options, instance #0
    aliases (driver not attached)
    memory (driver not attached)
    virtual-memory (driver not attached)
    SUNW,UltraSPARC-III, instance #0
    memory-controller, instance #0
    SUNW,UltraSPARC-III, instance #1
    memory-controller, instance #1
    pci, instance #0
        ebus, instance #0
            flashprom (driver not attached)
            bbc (driver not attached)
            ppm, instance #0
            i2c, instance #0
                dimm-fru, instance #0
                dimm-fru, instance #1
                dimm-fru, instance #2
                dimm-fru, instance #3
                nvram, instance #4
                idprom (driver not attached)
            i2c, instance #1
                cpu-fru, instance #5
                temperature, instance #0
                cpu-fru, instance #6
                temperature, instance #1
                fan-control, instance #0
                motherboard-fru, instance #7
                i2c-bridge (driver not attached)
            beep, instance #0
            rtc, instance #0
            gpio (driver not attached)
            pmc (driver not attached)
            floppy (driver not attached)
            parallel (driver not attached)
            serial, instance #0
        network, instance #0
        firewire, instance #0
        usb, instance #0
        scsi (driver not attached)
            disk (driver not attached)
            tape (driver not attached)
        scsi (driver not attached)
            disk (driver not attached)
            tape (driver not attached)
    pci, instance #1
        SUNW,qlc, instance #0
            fp (driver not attached)
                disk (driver not attached)
            fp, instance #1
                ssd, instance #1
                ssd, instance #0 (driver not attached)
                ssd, instance #2 (driver not attached)
                ssd, instance #3 (driver not attached)
                ssd, instance #4 (driver not attached)
                ssd, instance #5 (driver not attached)
                ssd, instance #6 (driver not attached)
    upa, instance #0
        SUNW,ffb, instance #0 (driver not attached)
    ppm, instance #0
    pseudo, instance #0

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)
.
.
.
Previous Next