| Power Management Interface |
| |
| |
| The power management subsystem provides a unified sysfs interface to |
| userspace, regardless of what architecture or platform one is |
| running. The interface exists in /sys/power/ directory (assuming sysfs |
| is mounted at /sys). |
| |
| /sys/power/state controls system power state. Reading from this file |
| returns what states are supported, which is hard-coded to 'standby' |
| (Power-On Suspend), 'mem' (Suspend-to-RAM), and 'disk' |
| (Suspend-to-Disk). |
| |
| Writing to this file one of those strings causes the system to |
| transition into that state. Please see the file |
| Documentation/power/states.txt for a description of each of those |
| states. |
| |
| |
| /sys/power/disk controls the operating mode of the suspend-to-disk |
| mechanism. Suspend-to-disk can be handled in several ways. The |
| greatest distinction is who writes memory to disk - the firmware or |
| the kernel. If the firmware does it, we assume that it also handles |
| suspending the system. |
| |
| If the kernel does it, then we have three options for putting the system |
| to sleep - using the platform driver (e.g. ACPI or other PM |
| registers), powering off the system or rebooting the system (for |
| testing). The system will support either 'firmware' or 'platform', and |
| that is known a priori. But, the user may choose 'shutdown' or |
| 'reboot' as alternatives. |
| |
| Reading from this file will display what the mode is currently set |
| to. Writing to this file will accept one of |
| |
| 'firmware' |
| 'platform' |
| 'shutdown' |
| 'reboot' |
| |
| It will only change to 'firmware' or 'platform' if the system supports |
| it. |
| |
| /sys/power/image_size controls the size of the image created by |
| the suspend-to-disk mechanism. It can be written a string |
| representing a non-negative integer that will be used as an upper |
| limit of the image size, in bytes. The suspend-to-disk mechanism will |
| do its best to ensure the image size will not exceed that number. However, |
| if this turns out to be impossible, it will try to suspend anyway using the |
| smallest image possible. In particular, if "0" is written to this file, the |
| suspend image will be as small as possible. |
| |
| Reading from this file will display the current image size limit, which |
| is set to 500 MB by default. |
| |
| /sys/power/pm_trace controls the code which saves the last PM event point in |
| the RTC across reboots, so that you can debug a machine that just hangs |
| during suspend (or more commonly, during resume). Namely, the RTC is only |
| used to save the last PM event point if this file contains '1'. Initially it |
| contains '0' which may be changed to '1' by writing a string representing a |
| nonzero integer into it. |
| |
| To use this debugging feature you should attempt to suspend the machine, then |
| reboot it and run |
| |
| dmesg -s 1000000 | grep 'hash matches' |
| |
| CAUTION: Using it will cause your machine's real-time (CMOS) clock to be |
| set to a random invalid time after a resume. |