The following sections provide overview information about features that manage devices in the Solaris OS. For information about accessing devices, see Accessing 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 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).
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.
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).
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).
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.
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. | |
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 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.
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.
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 # |
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) . . . |