|
Devices whose drivers use the new automatic device power management
interfaces (as evident by existence of pm-components(9P)
property) are automatically power managed if enabled by the autopm entry described below.
When a component has been idle at a given power level for its threshold time, the power level of the component will be reduced
to the next lower power level of that component, if any. For devices which
implement multiple components, each component is power-managed independently.
Default thresholds for components of automatically power managed devices
are computed by the power management framework based on the system idleness threshold. By default, all components of the device are powered
off if they have all been idle for the system's idleness threshold. The default system idleness threshold
is determined by the applicable United States Environmental Protection Agency's
(EPA) Energy Star Memorandum of Understanding. See
the NOTES section of this manual page for more
information.
To set the system idleness threshold, use
one of the following entries:
| |
system-threshold threshold
|
| |
system-threshold always-on
|
where threshold is the value of the system
idleness threshold in hours, minutes or seconds as indicated by a trailing h, m or s (defaulting to seconds
if only a number is given). If always-on is specified,
then by default, all devices will be left at full power.
To override the default device component thresholds assigned by the
power management framework, a device-thresholds entry may
be used. A device-thresholds entry sets thresholds for
a specific automatically power-managed device or disables automatic power
management for the specific device.
A device-thresholds entry has the form:
| |
device-thresholds phys_path (threshold ...) ...
|
or
| |
device-thresholds phys_path threshold
|
or
| |
device-thresholds phys_path always-on
|
where phys_path specifies the physical path
(libdevinfo(3))
of a specific device. For example, /pci@8,600000/scsi@4/ssd@w210000203700c3ee,0 specifies the physical path of a disk. A symbolic link into the /devices tree, for example /dev/dsk/c1t1d0s0,
is also accepted. The thresholds apply (or keeping the device always on applies)
to the specific device only.
In the first form above, each threshold value
represents the number of hours, minutes or seconds, depending on a trailing h, m or s with a default to
seconds, to spend idle at the corresponding power level before power will
be reduced to the next lower level of that component. Parentheses are used
to group thresholds per component, with the first (leftmost) group being applied
to component 0, the next to component 1,
and the like. Within a group, the last (rightmost) number represents the time
to be idle in the highest power level of the component before going to the
next-to-highest level, while the first (leftmost) number represents the time
to be idle in the next-to-lowest power level before going to the lowest power
level.
If the number of groups does not match the number of components exported
by the device (by means of pm-components(9P)
property), or the number of thresholds in a group is not one less than the
number of power levels the corresponding component supports, then an error
message will be printed and the entry will be ignored.
For example, assume a device called xfb exports
the components Frame Buffer and Monitor.
Component Frame Buffer has two power levels: Off and On. Component Monitor
has four power levels: Off, Suspend, Standby,
and On.
The following device-thresholds entry:
| |
device-thresholds /pci@f0000/xfb@0 (0) (3m 5m 15m)
|
would set the threshold time for the Monitor component of the specific xfb card
to go from On to Standby in 15 minutes,
the threshold for Monitor
to go from Standby to Suspendin 5 minutes,
and the threshold for Monitor
to go from Suspend to Off in 3 minutes.
The threshold for Frame Buffer to go from On to Off will be 0 seconds.
In the second form above, where a single threshold
value is specified without parentheses, the threshold value
represents a maximum overall time within which the entire device should be
powered down if it is idle. Because the system does not know about any internal
dependencies there may be among a device's components, the device may actually
be powered down sooner than the specified threshold,
but will not take longer than the specified threshold,
provided that all device components are idle.
In the third form above, all components of the device are left at full
power.
Device power management entries are only effective if there is no user
process controlling the device directly. For example, X Window systems directly
control frame buffers and the entries in this file are effective only when
X Windows are not running.
Dependencies among devices may also be defined. A device depends upon
another if none of its components may have their power levels reduced unless
all components of the other device are powered off. A dependency may be indicated
by an entry of the form:
| |
device-dependency dependent_phys_path phys_path [ phys_path ... ]
|
where dependent_phys_path is the path name
(as above) of the device that is kept up by the others, and the phys_path entries specify the devices that keep it up. A symbolic
link into the /devices tree, such as /dev/fb, is also accepted. This entry is needed only for logical dependents
for the device. A logical dependent is a device that is not physically connected
to the power managed device (for example, the display and the keyboard). Physical
dependents are automatically considered and need not be included.
In addition to listing dependents by physical path, an arbitrary group
of devices can be made dependent upon another device by specifying a property
dependency using the following syntax:
| |
device-dependency-property property phys_path [phys_path ...]
|
where each device that exports the property property
will be kept up by the devices named by phys_path(s).
A symbolic link into the /devices tree (such as /dev/fb) is accepted as well as a pathname for phys_path.
For example, the following entry:
| |
# This entry keeps removable media from being powered down unless the
# console framebuffer and monitor are powered down
# (See removable-media(9P))
#
device-dependency-property removable-media /dev/fb
|
ensures that every device that exports the boolean property named removable-media will be kept up when the console framebuffer is
up. See removable-media(9P).
An autopm entry may be used to enable or disable
automatic device power management on a system-wide basis. The format of the autopm entry is:
Acceptable behavior values and their meanings are:
-
default
- The behavior of the system will depend upon its model. Desktop models
that fall under the United States Environmental Protection Agency's Energy Star Memorandum of Understanding #3 will have automatic
device power management enabled, and all others will not. See the NOTES
section of this manual page for more information.
-
enable
- Automatic device power management will be started when this entry is
encountered.
-
disable
- Automatic
device power management will be stopped when this entry is encountered.
|