apmsleep - go into suspend or standby mode and wake-up later
apmsleep [-sSnwhVd] [--suspend] [--standby] [--noapm] [--wait] [--pre-
cise] [--help] [--version] [--debug] [+]hh:mm
Some computers, especially laptops, can wake-up from a low-power sus-
pend to DRAM mode using the Real-time-clock (RTC) chip. Apmsleep can
be used to set the alarm time in the RTC and to go into suspend or
standby mode. An interrupt from the RTC causes the computer to wake-up.
The program detects this event, by waiting for a leap in the kernel
time and terminates successfully. If no time leap occurs within one
minute, or something goes wrong, the exit value will be non-zero.
The wake-up time can be specified in two formats:
+hh:mm specifies a relative offset to the current time. The computer
will suspend for exactly hh hours and mm minutes plus a few seconds to
wake up. On some laptops, the timing is not completely accurate so it
may be a few minutes (or more?) late.
hh:mm specifies absolute local time in 24-hour format. The time stored
in the RTC is not important. You may change the time zone used, with
the TZ environment variable as usual. Daylight saving time is not
obeyed in this version, but might be in a future release. WARNING: Do
not close cover of laptop after suspending the laptop with apmsleep.
Most laptops overheat when running with closed cover.
Energy conservation with APM is little for a desktop. Turning of the
screen will save 1/2, going into standby with drives turned off will
save another 1/6th of the current.
Print the apmsleep program version and exit immediately.
Put the machine into suspend mode if possible (default). On my
laptop, suspend mode turns off everything except the memory.
Put the machine into standby mode if possible. On my laptop,
standby mode turns off screen, hard disk, and CPU.
Wait indefinitely for the time leap.
Wait for alarm time to match actual time. Do not wait for time
leap. This might be useful even without APM.
Do not call apm bios to suspend computer, just set the alarm
clock and wait for time leap indefinitely.
Print some information about what is going on.
REQUIRED SYSTEM CONFIGURATION
Kernel The special character device /dev/rtc must exist and the Linux
kernel needs to be compiled with APM and RTC support
(CONFIG_RTC, and relevant CONFIG_APM* options).
BIOS The computer must have the 'suspend to RAM' feature enabled in
the BIOS; 'suspend to Disk' will not work, because the computer
is turned off completely. You do not need to enable the ALARM
timer, it will be activated by apmsleep. On some boards, you can
configure which interrupts can be used to awake from suspend
mode. If you have such a board, you might want to make sure that
keyboard (IRQ 1) and RTC (IRQ 8) are among those interrupts. If
your computer does not wake up, try to enable 'modem ring' in
the BIOS, even if you do not have a modem.
The program must be run as root or have the SUID attribute set
Apmsleep cannot detect which event terminated the suspension. Possible
events are: keyboard or mouse activity, modem ring, alarm from RTC, any
other interrupt. Sometimes, the time leap is not detected properly
(causing a wrong exit value).
Should use APM BIOS calls to set alarm clock (not yet supported by ker-
This program was tested on a Winbook XL laptop (Pentium) only. It may
not function on your hardware.
Written by Peter Englmaier (email@example.com) and may be freely dis-
tributed under the terms of the GNU General Public License. The code
is based on Paul Gortmacher's RTC test/example program. There is ABSO-
LUTELY NO WARRANTY for this program. The current maintainer is Peter
xapm(1), apmd(8),rtc.txt(Linux Kernel Documentation)
APM sleep in APM suspend/standby mode APMSLEEP(1)