Powerdown is a bunch of scripts to take the hassle out of maximizing battery-life.

Powerdown is a bunch of scripts to take the hassle out of maximizing battery-life.

−

{{Note|Use at your own risk. It is recommended to read through all the tweaks in order to disable those that might not be compatible with your system.}}

+

{{Warning|Use at your own risk. It is recommended to read through all the tweaks in order to disable those that might not be compatible with your system.}}

==Installation==

==Installation==

−

Use your favourite AUR-helper to install {{AUR|powerdown}}, f.e.

+

{{AUR|powerdown-git}} is available from the [[AUR]].

−

# packer -S powerdown xorg-xset

−

Add the following options to your kernel boot-line (f.e. in grub's menu.lst):

+

{{Note|Powerdown tries disabling NMI watchdog on the fly. If this doesn't work for you, you'll see "Dazed and confused" messages when suspending. You can disable it completely by adding {{ic|1=nmi_watchdog=0}} to the kernel command line.

−

pcie_aspm=force i915.i915_enable_rc6=1

+

}}

−

Add the following lines to ~/.xinitrc to turn off your screen after 5 minutes of idling by default:

+

Add the following lines to {{ic|~/.xinitrc}} to turn off your screen after 5 minutes of idling by default:

−

# screen powersave

+

{{hc|~/.xinitrc|

−

xset +dpms

+

# screen powersave

−

xset dpms 0 0 300

+

xset +dpms

+

xset dpms 0 0 300

+

}}

−

{{Note|Resetting the dpms settings will probably enable the default blanking after 10 minutes. If you dislike this, add 'consoleblank&#61;0' to your boot parameters and run these xset commands (this would be a great addition to the powerdown scripts):

+

{{Note|The script. If unsatisfactory, add {{ic|1=consoleblank=0}} to the kernel command line and run the following {{ic|xset}} commands (this would be a great addition to the powerdown scripts):

xset s off

xset s off

xset s noblank

xset s noblank

Line 31:

Line 33:

}}

}}

−

The scripts are located at /usr/bin. Should you want to disable certain tweaks, you can easily comment them out by prepending '#'

+

The {{ic|powerdown}} shell script located in {{ic|/usr/bin}} can be customised to your needs. To disable any undesired features simply comment out its appropriate line.

==Usage==

==Usage==

Line 41:

Line 43:

|-

|-

| powerdown, powerup || Powers everything down or up.

| powerdown, powerup || Powers everything down or up.

+

|-

+

| powerdown-functions || Defines functions that are used by powerdown and powerup.

|-

|-

| powernow || Displays current power usage and settings.

| powernow || Displays current power usage and settings.

+

|-

+

| powerdown.rules || The Udev rule that loads powerdown or powerup.

|-

|-

| suspend-to-mem || Suspends to RAM.

| suspend-to-mem || Suspends to RAM.

Line 48:

Line 54:

| suspend-to-disk || Suspends to HDD, creates a 2GB swap file at the first time doing so.

| suspend-to-disk || Suspends to HDD, creates a 2GB swap file at the first time doing so.

|-

|-

−

| turn-off || Wrapper around poweroff.

+

| suspend-hybrid || First, suspends to RAM. After 10 minutes, wakes up and suspends to HDD.

−

|-

−

| usb-bind, usb-unbind || Both are probably called by the other scripts.

Installation

Note: Powerdown tries disabling NMI watchdog on the fly. If this doesn't work for you, you'll see "Dazed and confused" messages when suspending. You can disable it completely by adding nmi_watchdog=0 to the kernel command line.

Add the following lines to ~/.xinitrc to turn off your screen after 5 minutes of idling by default:

~/.xinitrc

# screen powersave
xset +dpms
xset dpms 0 0 300

Note: The script. If unsatisfactory, add consoleblank=0 to the kernel command line and run the following xset commands (this would be a great addition to the powerdown scripts):

xset s off
xset s noblank
xset s noexpose
xset c on
xset -dpms

The powerdown shell script located in /usr/bin can be customised to your needs. To disable any undesired features simply comment out its appropriate line.

Usage

The following table presents all scripts installed.

Name

Function

powerdown, powerup

Powers everything down or up.

powerdown-functions

Defines functions that are used by powerdown and powerup.

powernow

Displays current power usage and settings.

powerdown.rules

The Udev rule that loads powerdown or powerup.

suspend-to-mem

Suspends to RAM.

suspend-to-disk

Suspends to HDD, creates a 2GB swap file at the first time doing so.

suspend-hybrid

First, suspends to RAM. After 10 minutes, wakes up and suspends to HDD.

pm-is-supported, pm-powersave, pm-suspend, pm-hibernate

Wrappers with pm-utils syntax (for legacy support?).

After a reboot the scripts can now be run in a terminal.

Automatically running powerdown at power state changes

Powerdown is automatically loaded by a Udev rule, so no daemon, rc-script or service-file is necessary.

However, this doesn't work on every machine, so you might want to enable upower.service in systemd with

# systemctl enable upower.service

or add upower -e to your .xinitrc.

Configuration

As there are no config files for powerdown, you have to edit /usr/bin/powerdown by hand and adjust the values. Note, however, that these changes will be overwritten during an update!

FAQ

I do get more spinups and clicks from my HDD. Where is this setting stored in powerdown?

Set the following tweak to a higher value:

hdparm -B

Packages that are no longer necessary after installation

powertop, powertop2: these packages have no updates for at least 3-4 years. if you think kernel has no changes on power management for 3 or 4 years, go ahead and continue to use them. Replacement: powernow is included in new powerdown. it shows laptop power usage in mWh. the value is usually between 10000 to 25000.

laptop-mode-tools: this is a huge framework on power management. It has dozens of configs you need to setup, which normally no one knows how to control them. I think it is a "troubleware"; to use it properly, you have to google more. most of time, you dont even know what works or not. Replacement: powerdown shows what does not work right in the screen. it contains all the rules optimized that just work.

tuxonice, uswsusp, pm-utils: too hassle to set things up. again, they complicate suspend and resume. the default kernel already support suspends and resume pretty well. Replacement: ps2mem uses default kernel for ram suspend and resume. you just run "sudo suspend-to-mem"; no framework, no setup.

turn-off solves a bug in kernel(even in 3,4 rc that ehci_hcd messes up shutdown when it is set to powersave mode). This is a wrapper for 'poweroff'. You just call it to shut down your arch box.