You are not logged in.
I'm not a big fan of complicated power management systems like TLP or laptop-mode-tools. IMO, they tend to override too many things at once (like TLP's rfkill state auto-save) and require careful reading and introspection to determine what exactly do you need. Or you may just say that I've got a NIH syndrome.
As a result, I've been using pm-powersave (part of pm-utils) with custom hooks to manage various kernel tunables. With systemd advent, pm-suspend / pm-hibernate turned useless, and I've felt that it would be good to split pm-powersave into a separate entity and rewrite it to make use of systemd.
Release early, release often... So here it is, on github and AUR.
It consists of:
a bunch of shell-written hooks, ran on battery events via udev rule -> systemd target -> systemd templated unit -> shell-written wrapper
a bunch of other udev rules, configuring per-device things like PCI runtime power management
Current hooks include:
HDD standby timeout and APM via hdparm
filesystem readahead via blockdev
cpufreq governor via sysfs interface (works with intel_pstate as well as acpi_cpufreq: tries conservative/ondemand, then falls back to powersave/performance)
x86 performance bias via cpupower
journal commit time on ext2/3/4 filesystems via mount -o remount,commit=%d
module remove/insert (by default, uvcvideo is removed, override this if you use webcam while on battery)
WLAN power saving via iw dev %s set power_save
PCI Express ASPM via sysfs interface (make sure to pass pcie_aspm=force to your kernel cmdline if you have a broken ACPI implementation (you probably do))
SATA ALPM via sysfs interface
sysctl tunables (by default, vm.laptop_mode and xfs tunables are touched)
Current udev rules include:
PCI and USB runtime power management via /sys/bus/{pci,usb}/devices/**/power/control
USB autosuspend via /sys/bus/usb/devices/**/power/autosuspend, the default timeout is 150 seconds
Wake-on-LAN via ethtool (for now, WOL is unconditionally disabled, you may want to override this). I'm planning to make this "disable when on battery" at some point.
The default settings are rather prototypish, so I'm ready for suggestions.
Last edited by intelfx (2014-06-07 14:17:08)
Offline