I am sponsoring this FastTrack for Phi Tran.
Template Version: @(#)sac_nextcase 1.64 07/13/07 SMI
This information is Copyright 2008 Sun Microsystems
1. Introduction
1.1. Project/Component Working Name:
GNOME Power Management Support
1.2. Name of Document Author/Supplier:
Author: Phi Tran
1.3 Date of This Document:
14 January, 2008
4. Technical Description
1. Introduction
1.1. Project/Component Working Name:
GNOME Power Manager Support
1.2. Name of Document Author/Supplier:
Author: Phi Tran
1.3 Date of This Document:
1/10/07
4. Technical Description
4.1 Details
This project enhances the battery driver (PSARC/2006/601) and
HAL (PSARC/2005/399) to provide lid, brightness, power button,
suspend, and hibernate support for Gnome Power Manager (LSARC/2007/702).
Lid
---
GPM allows the user to set actions for lid close such as suspend,
hibernate, and shutdown. Suspend and hibernate actions will be
available if supported by the system. In addition, the actions
will be allowed if the user is the console owner or has the appropriate
RBAC authorization.
ACPI lid event notifications will be handled by the driver to trigger
lid sysevents if the lid is closed or opened. HAL is notified by
the sysevents, and GPM communicates with HAL through D-BUS.
LCD Brightness Control
----------------------
There will be two methods implemented to control LCD brightness.
The first way to control LCD brightness is by pressing the laptop
brightness hotkeys which will generate ACPI events for brightness
up or down that the battery driver will handle to change the brightness.
The driver will also generate sysevents to notify HAL about the
brightness change. GPM communicates with HAL through D-BUS.
The second method to change brightness is through the GPM brightness
applet. Support for the applet is handled through the HAL interfaces
which call driver ioctls to set and get the brightness levels.
In both methods, setting the brightness level will be allowed for
the user who is the console owner or has the RBAC authorization.
Power Button
------------
GPM allows for the configuration of power button actions such as
shutdown, suspend, and hibernate. These actions will be allowed
if the system supports the action, and the user is either the console
owner or has the RBAC authorization.
Currently, power button support is handled by the power driver and
powerd. powerd polls for the button action. To enable GPM power
button actions, the polling will be replaced by sysevents and
HAL will handle the sysevent to notify GPM through D-BUS. powerd
will no longer handle the power button press.
4.2 Interface
HAL interfaces
--------------
Interface level: Volatile
Method Name Return Parameters Comments
---------------------------------------------------------------------------
GetBrightness int status Get the current brightness.
SetBrightness int level Set the current brightness.
Suspend int status Put the system into ACPI S3
state.
Hibernate int status Put the system into ACPI S4
state.
Shutdown int status
Reboot int status
---------------------------------------------------------------------------
Interface Type Comments
--------------------------------------------------------------------------
can.suspend bool The ability to suspend as determined
by uadmin(2).
can.hibernate bool The ability to hibernate as determined
by uadmin(2).
button.type string Identifies buttons such as lid or power.
button.has_state bool True if button maintains state, e.g. can be
toggled on/off.
button.state.value bool State of the button, TRUE if it is enabled.
ButtonPressed string Emitted when a button is pressed such as
power, lid, brightness-up, or brightness-down.
laptop_panel.num_levels int The brightness levels supported by the
adapter.
--------------------------------------------------------------------------
More information can be found in hal-spec.html of the materials
directory.
Brightness Ioctls
-----------------
Interface level: Project Private
BATT_IOC_GET_BRIGHTNESS
BATT_IOC_SET_BRIGHTNESS
Sysevents
---------
Interface level: Project Private
The EC_ACPIEV class defined in PSARC/2006/601 Battery Project will
be extended to include the following subclasses.
ESC_ACPIEV_BRIGHTNESS_UP
ESC_ACPIEV_BRIGHTNESS_DOWN
ESC_ACPIEV_POWER_BUTTON
The event attributes will be the same as existing EC_ACPIEV subclasses.
Security
--------
Interface level: Volatile
The following RBAC authorizations and profiles will be added.
Authorization Names:
solaris.system.power.:::System Power Management::help=SystemPowerMgmt.html
solaris.system.power.suspend::: Suspend the System::help=Suspend.html
solaris.system.power.suspend.ram::: Suspend to RAM::help=SuspendToRam.html
solaris.system.power.brightness::: Control LCD Brightness::help=Brightness.html
Profiles:
System Power:::For authorized users to manage system power:
auths=solaris.system.power;help=RtSystemPowerMngmnt.html
Suspend:::For authorized users to Suspend system:
auths=solaris.system.power.suspend;help=RtSuspend.html
SuspendToRam:::For authorized users to Suspend to RAM:
auths=solaris.system.power.suspend.ram;help=RtSuspendToRam.html
Brightness:::For authorized users to Control LCD Brightness:
auths=solaris.system.power.brightness;help=RtBrightness.html
*Will consult with the audit team to enable auditing.
libpolkit interfaces
--------------------
Interface level: Volatile
The following privileges are mapped to RBAC authorizations for the solaris
backend.
hal-power-suspend
hal-power-hibernate
hal-power-shutdown
hal-power-cpu
hal-power-brightness
4.3 References
LSARC/2007/702 Gnome Power Manager
PSARC/2007/679 CPUFreq HAL
PSARC/2006/601 Battery Project
LSARC/2006/368 D-BUS Message Bus System
PSARC/2005/399 Tamarack: Removable Media Enhancements in Solaris
HAL specification http://people.freedesktop.org/~david/hal-spec/hal-spec.html
ACPI 3.0b http://www.acpi.info/spec.htm
6. Resources and Schedule
6.4. Steering Committee requested information
6.4.1. Consolidation C-team Name:
ON
6.5. ARC review type: FastTrack
6.6. ARC Exposure: open
6. Resources and Schedule
6.4. Steering Committee requested information
6.4.1. Consolidation C-team Name:
ON
6.5. ARC review type: FastTrack
6.6. ARC Exposure: open