What is power management in linux

Three tasks involved

Though power management will deal with these, the objectives of the tasks do not solely lie in power management. It may be adviseable to rely on tools specialized for their tasks, instead of implementing an incomplete power management utility.

Planned work for Lucid

Handling hardware events

The acpi-support package should be deprecated; however, new homes need to be found for its current contents.

  • /etc/acpi/start.d: these are currently launched by the init script, which has no equivalent in other packages currently
    • 10-save-dmidecode: superseded by /sys interfaces
    • 60-asus-wireless-led: should be moved to the kernel (cf. https://bugs.edge.launchpad.net/bugs/22795)
    • 90-hdparm.sh: init script in pm-utils? udev rule on each HD would be preferred (/lib/udev/hdparm already exists)

    DeviceKit-power quirks

    Previously, hal had a suspend/resume quirks database that was used to construct a correct commandline for pm-suspend. devicekit-power doesn’t have this; it needs to be implemented.

    Power management packages

    Foremost there is the apm and acpi support in the linux kernel.

    They make those kind of «hard» events like the end of battery power or the pressing of the suspend or other (laptop) buttons available to our software world.

    Then there are event manager daemons apmd and acpid

    They provide means to execute commands on these external events. They run the scripts they find in their config directory tree under /etc/acpi, or /etc/apm respectively.

    The package acpi-support provides a set of such scripts under /etc/acpi that deal with handling special acpi buttons on laptops.

    The package pm-utils provides the pm-action, pm-hibernate, pm-suspend and pm-suspend-hybrid commands. They allow to trigger hard power management events by software. The pm-tools also provide script directories to hook-in other software when switching power (saving) states.

    The gnome-power-manager is a program with a graphical user interface that subscribes itself to power events and acts on them. It shows you the battery status on laptops and dims down the screen if on battery for example. It will also shutdown or hibernate the computer after some idle time or before the battery runs out, if a user is logged in.

    Disk idling

    A separate task is allowing harddisks to idle, so they can be parked and spun-down for long enough periods of time. This is done by a package that is a little bit misleadingly called laptop-mode-tools but not «disk-idle». Disk idling has to deal with things like reading ahead and postponing disk activity. The program got its name from a kernel feature that is called laptop_mode and allows Linux to chunk up writes to filesystems and not write in between. But to really let a disk idle one has to manage other parts of the system that are relevant to letting disks idle also, like drive parameters, mount options, filesystem settings, cache sizes, sync logging programs etc. «laptop_mode» will do all that.

    Disk idling is commonly needed, thus laptop-mode enabled, when laptops operate on batteries to extend the battery times. But for example in vehicles with external power supply disk idling may be needed even on AC. Not necessarily to leave the disk spun down, but to leave the heads parked for shock protection.

    Disk spin-down and head parking should not be activated without controlled disk idling. The regular uncoordinated logging or journaling activity may spin up the disks back up almost immediately after spinning down and lead to excessive load cycling.

    Power (saving) states

    The Common power (saving) states are awake, standby, suspend and hibernate.

    During the awake state all components of the computer are running.

    During standby the CPU keeps running your programs but some components like the monitor and harddisks may be turned off. When you touch the mouse or keyboard or a harddisk is accessed by software they quickly wake up again.

    In both the awake and the standby state the speed of modern CPUs may be throttled down,though. For example if not in use.

    During suspend however the CPU is always stopped. In modern PCs even all other components except the RAM memory can be turned off. The RAM will hold the state.

    During hibernation the state is written to harddisk and the whole computer is turned off.

    Architecture

    power-management.png

    This diagram shows how the kernel, hal, hal-info, pm-utils, and gnome-power-manager are plumbed together:

    Please see Hotkeys/Architecture about the details of «Hotkey handling».

    How to get disks to spin down and idle correctly (without excessive load cycling)

    10.04

    The laptop-mode-tools (disk idleing) package does not get installed by default any more, but just installing it should make disk idleing work (on battery) right away now.

    8.10 to 9.10

    8.04 (Hardy)

    Unfortunately, ubuntu has mangled disk idling into event handling and power state switching in the past. And this did not deliver idle disks but break disk idling (laptop-mode) features by leaving undefined (factory default) apm settings in place.

Оцените статью
Adblock
detector