Gentoo Logo

Disclaimer : Dit document is niet juist en is niet meer onderhouden.


EnergieBeheer Gids

Inhoud:

1.  Inleiding

De capaciteit en de levenstijd van laptop batterijen zijn veel verbeterd in de laatste jaren. Niettemin verbruiken de moderne processoren veel meer energie dan oudere modellen en elke laptop generatie introduceert meer apparaten die energie-hongerig zijn. Daarom is energiebeheer belangrijker dan ooit. Het verhogen van de werktijd van de batterij betekend niet noodzakelijk een andere batterij kopen. Veel kan worden bereikt met intelligente energiebeheer-beleid toe te passen.

Een snel overzicht

Merk op dat deze gids het energiebeheer voor laptops beschrijft. Terwijl sommige secties ook voor servers zouden kunnen geschikt zijn, anderen zijn het niet en kunnen zelfs kwaad veroorzaken. Gelieve op te passen met het toepassen van om het even wat van deze gids op een server tenzij u werkelijk weet wat u doet.

Aangezien deze gids vrij lang is geworden, vindt u hier een kort overzicht dat u kan helpen om uw weg door deze gids te vinden.

Het Eerste Vereisten hoofdstuk praat over sommige vereisten aan die moeten worden voldaan vóóraleer het volgen van enige hoofdstukken van deze gids. Dit omvat BIOS montages, pitconfiguratie en sommige vereenvoudigingen in gebruikersland. De volgende drie hoofdstukken concentreren zich op apparaten die typisch de meeste energie verbruiken namelijk: processor, beeld en harde schijf. Elk kan van elkaar geconfigureerd worden. CPU EnergieBeheer toont hoe men de frequentie van de processor kan aan passen om een maximum van energie te besparen zonder teveel prestaties te verliezen. Een paar verschillende trucs verhinderen uw harde schijf onnodig te werken in Harde Schijf Energie Beheer (die ook een dalend lawaainiveau als aardige bijwerking heeft). Sommige nota's over grafische kaarten, Draadloze LAN en USB beëindigen de apparatensectie in Energie Beheer voor Andere Apparaten terwijl een ander hoofdstuk tegewijd is aan (eerder experimenteel) slaap status. En als allerlaatste hebben wij een lijst uri Probleemoplossing van gemeenschappelijke problemen.

Energie-budget voor elke component


Figuur 1.1: Energie-budget voor elke component

Fig. 1: Welke componenten verbruiken het meetste energie?

Bijna elk component kan fungeren in verschillende statussen - uit, slaap, ruststand, actief om enkelen te noemen die - een verschillende hoeveelheid energie verbruiken. De belangrijke delen worden verbruikt door het LCD scherm, processor, chipset en de harde aandrijving. Vaak kan het OS-onafhankelijke energiebeheer in BIOS activeerd worden, maar een intelligente opstelling in het werkende systeem dat aan verschillende situaties aanpast kan veel meer bereiken.

2.  Benodigdheden

Vooraleer je discussieert over de details van het bewust laten worden van energiebeheer van de individuele toestellen moet je zorgen dat bepaalde vereisten ingevuld zijn. Na het controleren BIOS instellingen, worden sommige kernel opties best inschakeld - (ACPI), slaapstand en de processorsnelheid schalen. Aangezien de energiebesparing meestal samen met prestatiesverlies gepaard gaat, zou het slechts moeten worden toegelaten wanneer het loopt op batterijen. Dat waar een nieuwe opstartlevel batterij handig kan zijn. Voor we de details van elke apparaat-energiebeheer individueel bespreken, controleren we best of alle benodigdheden er zijn. Na controleren van de BIOS instellingen, hoeven enkele kernel-opties ingeschakelt te worden (acpi), slaapstand en de callibratie van de processorkloksnelheid. Omdat energie besparen ook gepaard gaat met prestatie-verlies of vertraagde reactietijd, het zou alleen mogen aanstaan als het op batterijen werkt. Hier is een nieuw opstartlevel batterij handig.

Het BIOS Deel

Laten we eerst es kijen in je BIOS energiebeheer instellingen. De beste manier is om het BIOS- en besturingsysteem-beleid te combineren, maar op het moment is het beter om het meeste van de BIOS uit te schakelen. Controleer als dit niet mengt met je beleid. Vergeet niet om iedere BIOS instelling die je hebt ingesteld te hercontroleren nadat je alles hebt ingesteld.

Instellen van de USE Flags

Controleer dat de acpi USE flag is ingesteld in /etc/make.conf. Andere interresante USE flags kunnen apm, lm_sensors, nforce2, nvidia, pmu zijn. Zie /usr/portage/profiles/use*.desc voor details. Als je vergeten bent om een van deze flags in te stellen, hercompileer dan de paketten met de --newuse optie in emerge, zie man emerge.

Instellen van de Kernel

ACPI (Advanced Configuration and Power Interface) ondersteuning in de kernel is nog altijd onder constructie. Een recente kernel gebruiken zal helpen om het meeste eruit te halen.

Er zijn verschillende kernel bronnen in de Portage. Ik raad gentoo-sources of suspend2-sources. De laatste bevat aanpassingen voor Software Suspend 2, zie het hoofdstuk over slaap status voor meer details. Tijdens het instellen van de kernel, activeer je best deze opties:

Codevoorbeeld 2.1: Minimum kernel opstelling voor Energiebeheer (Kernel 2.6)

Power Management Options --->
  [*] Power Management Support
  [ ] Software Suspend

  ACPI( Advanced Configuration and Power Interface ) Support --->
    [*] ACPI Support
    [ ]   Sleep States
    [ ]     /proc/acpi/sleep (deprecated)
    [*]   AC Adapter
    [*]   Battery
    <M>   Button
    <M>   Video
    [ ]   Generic Hotkey
    <M>   Fan
    <M>   Processor
    <M>     Thermal Zone
    < >   ASUS/Medion Laptop Extras
    < >   IBM ThinkPad Laptop Extras
    < >   Toshiba Laptop Extras
    (0)   Disable ACPI for systems before Jan 1st this year
    [ ]   Debug Statements
    [*]   Power Management Timer Support
    < >   ACPI0004,PNP0A05 and PNP0A06 Container Driver (EXPERIMENTAL)

  CPU Frequency Scaling --->
    [*] CPU Frequency scaling
    [ ]   Enable CPUfreq debugging
    < >   CPU frequency translation statistics
    [ ]     CPU frequency translation statistics details
          Default CPUFreq governor (userspace)
    <*>   'performance' governor
    <*>   'powersave' governor
    <*>   'ondemand' cpufreq policy governor
    <*>   'conservative' cpufreq governor
    <*>   CPU frequency table helpers
    <M> ACPI Processor P-States driver
    <*> CPUFreq driver for your processor

Beslis zelf als je Software Suspend en slaapstatus wil inschakelen (zie hieronder). Als jee een ASUS, Medion, IBM Thinkpad of Toshiba laptop hebt, schakel dan de aangewezen opties.

De kernel heeft de kennis om de callibratie van de processorkloksnelheid in te schakelen. Omdat elk type CPU een andere interface heeft, moet je de correcte driver voor je processor kiezen. Opgepast hier - bij het inschakelen van de Intel Pentium 4 clock modulation driver op een op een Pentium M systeem zal leiden tot vreemde resultaten. Raadpleeg de kernel documentatie als je neit zeker weet welke je hoeft te nemen.

Compileer je kernel, controleer dat de juiste modules geladen worden als uw pc opstart en herstart je pc op in je nieuwe ACPI-ingeschakelde kernel. Start vervolgens emerge sys-power/acpid om de acpi daemon. Deze informeerd je over evenementen zoals het omschakelen van AC naar batterij of het sluiten van de laptop. controleer dat de modules geladen worden als je ze niet hebt ingebakken in de kernel en start acpid door /etc/init.d/acpid start uit te voeren. voer rc-update add acpid default uit om acpid te laden als de pc start. Je zult binnenkort zien hoe je het kunt gebruiken.

Codevoorbeeld 2.2: Installeren van acpid

# emerge sys-power/acpid
# /etc/init.d/acpid start
# rc-update add acpid default

Creëren van het "battery" opstartlevel

Het standaard beleid zal enkel Energiebeheer in te schakelen als men het nodig heeft - op batterijspanning dus. Om de omschakeling tussen AC en batterijen gemakkelijk te maken, creëer een opstartlevel battery die alle start en stop scripts voor Energiebeheer bevat.

Nota: Je kan deze stap gemakkelijk overslaan als je het idee van een extra opstartlevel niet goed vind. Hoewel, dit het moeilijk zal maken om deze gids verder te kunnen volgen aangezien er verondersteld wordt dat er zo'n osptartlevel aanwezig is.

Codevoorbeeld 2.3: Creeren van een battery opstartlevel

# cd /etc/runlevels
# cp -a default battery

Voila. Het nieuwe opstartlevel battery bevat alles zoal het standaard (default), maar er is nog geen automatische overgang tussen de twee. Tijd om dit te veranderen.

Reageren op ACPI Gebeurtenis

Typische ACPI gebeurtenissen zijn het sluiten van het laptopscherm, veranderen van stroombron, of het induwen van de slaap-toets. Een belangrijke gebeurtenis is het veranderen van de stroombron, die een opstartlevel verandering zou moeten teweeg brengen. Een kleine script zal hiervoor zorgen.

Eerst heb je een script nodig die het opstartlevel van default naar battery (en visa versa) veranderd naar gelang de stroombron. Het script maakt gebruik van het on_ac_power commando van sys-power/powermgmt-base - Controleer dat dit pakket is geinstalleerd op je systeem.

Codevoorbeeld 2.4: Installeren van powermgt-base

# emerge powermgmt-base

Je kunt nu nakijken op welke voedingsbron je werkt door on_ac_power && echo AC available || echo Running on batteries uit te voeren in je terminal. Het onderstaande script is verantwoordelijk voor het veranderen van de opstartlevels, sla het op onder /etc/acpi/actions/pmg_switch_runlevel.sh.

Codevoorbeeld 2.5: /etc/acpi/actions/pmg_switch_runlevel.sh

#!/bin/bash

# BEGIN configuratie
RUNLEVEL_AC="default"
RUNLEVEL_BATTERY="battery"
# EINDE configuratie


if [ ! -d "/etc/runlevels/${RUNLEVEL_AC}" ]
then
    logger "${0}: Runlevel ${RUNLEVEL_AC} does not exist. Aborting."
    exit 1
fi

if [ ! -d "/etc/runlevels/${RUNLEVEL_BATTERY}" ]
then
    logger "${0}: Runlevel ${RUNLEVEL_BATTERY} does not exist. Aborting."
    exit 1
fi

if on_ac_power
then
    if [[ "$(</var/lib/init.d/softlevel)" != "${RUNLEVEL_AC}" ]]
    then
        logger "Switching to ${RUNLEVEL_AC} runlevel"
         /sbin/rc ${RUNLEVEL_AC}
    fi
elif [[ "$(</var/lib/init.d/softlevel)" != "${RUNLEVEL_BATTERY}" ]]
then
    logger "Switching to ${RUNLEVEL_BATTERY} runlevel"
    /sbin/rc ${RUNLEVEL_BATTERY}
fi

Vergeet niet om chmod +x /etc/acpi/actions/pmg_switch_runlevel.sh uit te voeren om het script uitvoerbaar te maken. Het laatste wat je nodig hebt is het aanroepen van het script wanneer je de krachtbron veranderd. Dat gebeurd door het opvangen van ACPI gebeurtenissen met de hulp van acpid. Allereerst moet je weten welke gebeurtenissen gegenereerd worden als je de voedingsbron veranderd. De gebeurtenissen worden ac_adapter en battery genoemt op de meeste laptops, maar dit kan op jouw laptop anders zijn.

Codevoorbeeld 2.6: Uitzoeken van ACPI gebeurtenissen voor het veranderen van de voedingsbron

# tail -f /var/log/acpid | grep "received event"

Voer het bovenstaande commando uit en trek de energiekabel uit Je zou iets moeten zien zoals dit:

Codevoorbeeld 2.7: Voorbeeld output van voedingsbron veranderingen

[Tue Sep 20 17:39:06 2005] received event "ac_adapter AC 00000080 00000000"
[Tue Sep 20 17:39:06 2005] received event "battery BAT0 00000080 00000001"

Het interresante stuk is het stuk tussen aanhalingtekens vlak na received event. Dit zal het zelfde zijn als de gebeurtenis lijn in de bestanden die je zoals hieronder zal creeren. Maak je geen zorgen als je systeem meerdere gebeurtenissen genereerd of altijd dezelfde. Zolang dat hij een gebeurtenis genereerd, zal het opstartlevel werken.

Codevoorbeeld 2.8: /etc/acpi/events/pmg_ac_adapter

# vervang "ac_adapter" hieronder met de gebeurtenis genereerd door je
laptop
# Bijvoorbeeld, ac_adapter.* zal overeenstemmen met ac_adapter
AC 00000080 00000000
event=ac_adapter.*
action=/etc/acpi/actions/pmg_switch_runlevel.sh %e

Codevoorbeeld 2.9: /etc/acpi/events/pmg_battery

# vervang "battery" hieronder met de gebeurtenis genereerd door je
laptop
# Bijvoorbeeld, battery.* zal overeenstemmen met battery
BAT0 00000080 00000001
event=battery.*
action=/etc/acpi/actions/pmg_switch_runlevel.sh %e

Ten slotte moet acpid herstart worden om de veranderingen te erkennen.

Codevoorbeeld 2.10: Afwerking: het wisselen van opstartlevel met acpid

# /etc/init.d/acpid restart

Probeer het eens uit: Plug AC in en uit en kijk naar de syslog voor het "Switching to AC mode" of "Switching to battery mode" bericht. Zie het Probleem Oplossing sectie als dit script niet de mogelijkheid heeft om de voedingsbroen correct te detecteren.

Uit nature zal het event mechanisme, je laptop opstarten in het default opstartlevel, op welke voedingsbron hij dan ook mag staan. Dit is goed wanneer hij op AC draaid, maar we zouden graag willen dat hij in het battery opstartlevel als dit nodig is. Een oplossing is het toevoegen van een optie aan de bootloader; namelijk de parameter softlevel=battery, maar waarschijnlijk zal dit vergeten worden om ervoor te kiezen. Een beter oplossing is een vals ACPI gebeurtenis genereren op het einde van het opstart-proces en het pmg_switch_runlevel.sh script laten beslissen of een opstartlevel verandering nodig is. Open /etc/conf.d/local.start in je favoriete editor en voeg de volgende lijnen toe:

Codevoorbeeld 2.11: Opstartlevel aanpassingen tijdens het opstarten door local.start aan te passen.

# Vervals acpi gebeurtenissen om het opstartlevel te veranderen als je
op batterijen werkt
/etc/acpi/actions/pmg_switch_runlevel.sh "battery/battery"

Voorbereid zoals dit kun je het Energiebeheer beleid activeren voor individuele apparaten.

3.  Processor Energiebeheer

Mobiele processors kunnen verscshillende kloksnelheden aannemen. Sommige staan het toe om de voltage aan te passen. Meestal hoeft je cpu niet aan volle snelheid werken en het schalen van de kloksnelheid zal veel energie besparen - meestal zonder enige prestatie verlies.

Enkele Technische Termen

Het schalen van de kloksnelheid kunnen enkele technische termen gebruiken die je niet kent. Hier is een snelle inleiding.

Allereerst moet de kernel de mogelijkheid hebben om de kloksnelheid van de processor aan te passen. De CPUfreq processor driver weet hoe hij dit moet toepassen op je cpu. Dus is het belangrijk om de juiste te kiezen in de kernel. knows the commands to do it on your CPU. Je zou reeds hierboven moeten gedaan hebben. Eenmaal de kernel weet hoe hij de kloksnelheid moet veranderen, moet het weten welke kloksnelheid het moet instellen. It wordt gedaan volgends het beleid (policy) die bestaat uit een CPUfreq policy en een governor. Een CPUfreq beleid is gewoon 2 nummers die een waaier van kloksnelheden waar de processor tussen moet blijven (dus de minimum en maximum kloksnelheid). The governor beslist nu welke beschikbare kloksnelheid tussen de minimum en maximum kloksnelheid hij moet kiezen. Bijvoorbeeld, de powersave governor kiest altijd de laagste kloksnelheid beschikbaar, de performance governor kiest de hoogste. De userspace governor maakt geen beslissing maar kiest (of een programma in userspace) wilt - wat betekend dat het de kloksnelheid van /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed leest.

Dit lijkt niet alsof dynamische kloksnelheid veranderd, en dat is ook zo. Dynamiteit kan wel bereikt worden door verschillende aanpakken. Bijvoorbeeld, de ondemand governor maakt zijn beslissing afhankelijk van het cpu-gebruik. Het zelfde wordt gedaan door vele andere hulpapplicaties zoals cpudyn, cpufreqd, powernowd en vele anderen. ACPI evenementen kunnen gebruikt worden voor het inschakelen en uitschakelen van dynamische kloksnelheid veranderingen afhankelijk van de stroombron.

De kloksnelheid manueel instellen

Het verminderen van de CPU snelheid en de voltage heeft twee voordelen: aan de ene kant is er minder energieverbruik en aan de andere kant is er temperatuursverbetering, aangezien je systeem niet zo warm wordt door op volle snelheid te werken. Het grootste nadeel is natuurlijk het verlies van prestatie. Het verminderen van de processorsnelheid is een strijd tussen prestaties-verlies en energie-besparing.

Nota: Niet iedere laptop ondersteund kloksnelheid-schaling. Als je onzeker bent, neem een kijkje op de lijst van ondersteunde processors in het Troubleshooting hoofdstuk, om te controleren of jouw processor ondersteund is.

Het wordt tijd om te testen welke kloksnelheid schaling werkt. Laten we een ander hulpmiddel installeren die erg handig is om fouten op te sporen: sys-power/cpufrequtils

Codevoorbeeld 3.1: De kloksnelheid controlen

# emerge cpufrequtils
# cpufreq-info

Hier is een voorbeeld output:

Codevoorbeeld 3.2: voorbeeld output van cpufreq-info

cpufrequtils 0.3: cpufreq-info (C) Dominik Brodowski 2004
Report errors and bugs to linux@brodo.de, please.
analyzing CPU 0:
  driver: centrino
  CPUs which need to switch frequency at the same time: 0
  hardware limits: 600 MHz - 1.40 GHz
  available frequency steps: 600 MHz, 800 MHz, 1000 MHz, 1.20 GHz, 1.40 GHz
  available cpufreq governors: conservative, ondemand, powersave, userspace, performance
  current policy: frequency should be within 924 MHz and 1.40 GHz.
    The governor "performance" may decide which speed to use
    within this range.
  current CPU frequency is 1.40 GHz.

Speel nu met de cpufreq-set om zeker te zijn dat het wisselen van kloksnelheid werkt. Start cpufreq-set -g ondemand bijvoorbeeld om het ondemand governor te activeren en de verandering te controleren met cpufreq-info. Als het niet werkt zoals het hoord, kun je hulp vinden in het Troubleshooting hoofdstuk in het einde van de gids.

Geautomatiseerde kloksnelheid aanpassing

Het bovenstaande ziet er goed uit, maar het is nietdoenbaar in het dagelijkse leven. Het is beter om je systeem de geschikte kloksnelheden automatisch in te stellen. Er zijn verschillende aanpakken voor dit. Er zijn verschillende aanpakken om dit te doen. De volgende tabel geeft een snel overzicht om je te helpen om een van die te kiezen. Het is ruw ingedeeld in drie categorieën; kernel voor aanpakken die alleen de kernel ondersteunen, daemon voor programma's die in de achtergrond starten en grafisch voor programma's die een GUI leveren voor gemakkelijke configuratie en veranderingen.

Naam Category Switch decision Kernel governors Further governors Commentaren
'ondemand' governor Kernel CPU load N.A. N.A. Kiest voor maximale kloksnelheid bij het laden van CPU load en daald langzaam wanneer de CPU niets aan het doen is. Verdere verbeteringen kun je in de /sys/devices/system/cpu/cpu0/cpufreq/ondemand/ volgende bestanden instellen. Dit vereist userland tools (programma's, scripts) als governor switching gewenst is.
'conservative' governor Kernel CPU load N.A. N.A. Anders dan de ondemand governor, conversative springt die niet tusssen de maximale kloksnelheid wanneer de nood hoog is, maar verhoogd de kloksnelheid stap per stap. Verdere verbeteringen door bestanden in /sys/devices/system/cpu/cpu0/cpufreq/ondemand/. Er is nog steeds nood (programmas, scripts) als de governer switching of gelijkaardig gewenst is.
cpudyn Daemon CPU load Prestatie, Energiebesparing Dynamisch Dit ondersteund ook harde schijf standby - die laat weten hoe de laptop mode in meeste gevallen een betere job zal doen.
cpufreqd Daemon Battery state, CPU load, temperature, running programs and more Alle beschikbare Geen Ingewikkeld ( maar ook een beetje verfijnde) installatie. Uitbreidbaar met behulp van plugins zoals sensor monitoring (lm_sensors) of het coördineren van enkele NVidia gebaseerde grafische kaarten en meer. Cpufreqd is bewust van SMP en kan optioneel manueel gecontroleerd worden op elk moment.
powernowd Daemon CPU load Geen Passief, sinus, aggressive Ondersteund SMP.
ncpufreqd Daemon Temperatuur Geen Krachtbesparing, prestaties Wisselt de gebruikte gouverneur tussen prestatie en energiebesparing afhankelijk van de systeem temperatuur. Erg handig bij laptops die warmteproblemen hebben.
speedfreq Daemon CPU load Geen Dynamisch, energiebesparing, prestatie, aangepaste snelheid Gemakkelijk te configureren met een goede client/server interface. Vereist een 2.6 kernel. Deze is momenteel niet meer onderhouden, gebroken en dus verwijderd van de portage. Gelieve te wisselen naar cpufreqd moest je deze nog steeds gebruiken.
gtk-cpuspeedy Grafisch Geen Geen Geen Gnome applicatie, een grafische tool om de kloksnelheid manueel in te stellen. Het levert geen automatisatie.
klaptopdaemon Grafisch Battery staat Alle beschikbare Geen Enkel geschikt voor KDE, 'ondemand' gouverneur vereist voor dynamische kloksnelheid schaling.

Tijdens het aanpassen van de kloksnelheid naar de huidige status lijkt simpel op het eerste zicht, het is geen zo'n gemakkelijke taak. Een slecht algoritme kan constant verwisselingen teweeg brengen tussen twee frequenties of het verliezen van energie wanneer de kloksnelheid staat ingesteld op een onnodig hoog level.

Welke moet je kiezen ? Als je geen idee hebt, probeer cpufreqd:

Codevoorbeeld 3.3: Installeren van cpufreqd

# emerge cpufreqd

cpufreqd kan geconfigureerd worden door het aanpassen van /etc/cpufreqd.conf. De standaart config kan wat verwarrend lijken. Daarom raad ik aan de die te vervangen met die van ontwikkelaar Handrik Brix Andersen (zie hieronder). Merk op dat je cpufreqd-2.0.0 of hoger nodig hebt. Oudere versies hebben een verschillende syntax voor deze config file.

Codevoorbeeld 3.4: /etc/cpufreqd.conf (cpufreqd-2.0.0 en later)

[General]
pidfile=/var/run/cpufreqd.pid
poll_interval=3
enable_plugins=acpi_ac, acpi_battery
enable_remote=1
remote_group=wheel
verbosity=5
[/General]

[Profile]
name=ondemand
minfreq=0%
maxfreq=100%
policy=ondemand
[/Profile]

[Profile]
name=conservative
minfreq=0%
maxfreq=100%
policy=conservative
[/Profile]

[Profile]
name=powersave
minfreq=0%
maxfreq=100%
policy=powersave
[/Profile]

[Profile]
name=performance
minfreq=0%
maxfreq=100%
policy=performance
[/Profile]

[Rule]
name=battery
ac=off
profile=conservative
[/Rule]

[Rule]
name=battery_low
ac=off
battery_interval=0-10
profile=powersave
[/Rule]

[Rule]
name=ac
ac=on
profile=ondemand
[/Rule]

Je kunt nu de cpufreqd daemon starten. Voeg het ook toe aan het default en battery opstartlevel.

Codevoorbeeld 3.5: Starten van cpufreqd

# rc-update add cpufreqd default battery
# rc

Soms kan het gewenst zijn om een andere beleid te kiezen dan het beleid waar de daemon voor kiest, bijvoorbeeld als de batterij bijna leeg is, maar je weet dat AC binnenkort beschikbaar is. In dit geval kun je cpufreqd's manuele mode selecteren met cpufreqd-set manual en een van je voorgeconfigureerde beleiden kiezen (beschikbaar in lijstje door cpufreqd-get). Je kunt manuele mode veralten door cpufreqd-set dynamic uit te voeren.

Waarschuwing: Start niet meer dan een bovenstaand programma op de zelfde tijd. Het kan verwarring creëeren, zoals het constant wisselen tussen twee frequenties.

Het resultaat controleren

Het laatste wat je wilt controlere is of je beleid het goed doet. Een gemakkelijke manier om dit te doen is controleren deprocessor snelheid controleren terwijl je werkt met laptop:

Codevoorbeeld 3.6: Bijhouden van de CPU snelheid

# watch grep \"cpu MHz\" /proc/cpuinfo

Als /proc/cpuinfo niet upgedate wordt (zie Troubleshooting), controleer de kloksnelheid met:

Codevoorbeeld 3.7: Alternatieve kloksnelheid controle

# watch x86info -mhz

Afhankelijk van de installatie, zou de kloksnelheid fel moeten verhogen bij zware processortaken, en sterk verminderen als er geen activiteit is of op het normale niveau werkt. Als je cpufreqd en verbosity ingesteld is op 5 of hoger in cpufreqd.conf zul je extra inforamtie krijgen over wat er gebeurd in syslog.

4.  LCD Energiebeheer

Zoals je kan zien in figuur 1.1, neemt het LCD scherm het grootste deel van de energie (Dit kan anders zijn voor niet-mobiele CPU's). Dus is het belangrijk niet alleen de display uit te schakelen wanneer die niet nodig is maar ook om de backlight te verminderen indien mogelijk. Meeste laptops offeren de mogelijkheid om de backligt te dimmen.

Standby instellingen

Het eerste dat je wilt controleren is de standby/suspend/uit tijden van het scherm. Dit omdat dit zwaar afhangt op je windowmanaager, Ik zal je dit zelf laten uitzoeken. Twee veelvoorkomende plaatsen: De terminal wit maken met setterm -blank <number-of-minutesM>, setterm -powersave on en setterm -powerdown <number-of-minutesM>. Voor X.org, pas /etc/X11/xorg.conf aan zoals onderstaand voorbeeld:

Codevoorbeeld 4.1: LCD suspend instellingen in in X.org en XFree86

Section "ServerLayout"
  Identifier  [...]
  [...]
  Option  "BlankTime"  "5"  # Blank the screen after 5 minutes (Fake)
  Option  "StandbyTime"  "10"  # Turn off screen after 10 minutes (DPMS)
  Option  "SuspendTime"  "20"  # Full suspend after 20 minutes
  Option  "OffTime"  "30"  # Turn off after half an hour
  [...]
EndSection

[...]

Section "Monitor"
  Identifier  [...]
  Option  "DPMS"  "true"
  [...]
EndSection

Dit is het zelfde voor XFree86 en /etc/X11/XF86Config.

Backlight dimmen

Wat waarschijnlijk belangrijker is, is het dimmen van de backlight. Als je toegang hebt tot de instellingen van het dimmen via een programma, schrijf dan een kleine script die de backligt dimt in batterij mode en plaats het in je battery opstartlevel. Het volgende script zou moeten werken op de meeste IBM Thinkpads en Toshiba laptops. Je moet wel de benodigde opties aanschakelen in je kernel (enkel voor IBM Thinkpads). Voor Toshiba laptops, installeer app-laptop/acpitool en sla de onderstaande configuratie van ibm_acpi over.

Waarschuwing: Ondersteuning voor helderheid instellingen is gemarkeerd als experimenteel in ibm-acpi. Het raadpleegt de hardware direct en kan schade aanrichten op je systeem. Gelieve de ibm-acpi website te lezen.

Om de mogelijkheid te hebben om de helderheid in te stellen, moet de ibm_acpi module geladen worden met de experimentele parameter.

Codevoorbeeld 4.2: automatisch laden van de ibm_acpi module

(Gelieve bovenstaande waarschuwingen te lezen vooraleer dit te
doen!)
# echo "options ibm_acpi experimental=1" >> /etc/modules.d/ibm_acpi
# /sbin/modules-update
# echo ibm_acpi >> /etc/modules.autoload.d/kernel-2.6
# modprobe ibm_acpi

Dit zou moeten wekren zonder fout-berichten en het bestand /proc/acpi/ibm/brightness zou moeten aangemaakt zijn ne hat laden van de module. Een init script zal er voor zorgen dat de correcte keuze gemaakt wordt afhankelijk van de energiebron.

Codevoorbeeld 4.3: /etc/conf.d/lcd-brightness

# Zie /proc/acpi/ibm/brightness voor beschikbare waarden
# Gelieve /usr/src/linux/Documentation/ibm-acpi.txt te lezen

# Helderheid level in ac mode. De standaard is 7.
BRIGHTNESS_AC=7

# Helderheid level in batterij mode. De standaard is 4.
BRIGHTNESS_BATTERY=4

Codevoorbeeld 4.4: /etc/init.d/lcd-brightness

#!/sbin/runscript

set_brightness() {
    if on_ac_power
    then
        LEVEL=${BRIGHTNESS_AC:-7}
    else
        LEVEL=${BRIGHTNESS_BATTERY:-4}
    fi

    if [ -f /proc/acpi/ibm/brightness ]
    then
        ebegin "Setting LCD brightness"
        echo "level ${LEVEL}" > /proc/acpi/ibm/brightness
        eend $?
    elif [[ -e /usr/bin/acpitool && -n $(acpitool -T | grep "LCD brightness") ]]
    then
        ebegin "Setting LCD brightness"
        acpitool -l $LEVEL >/dev/null || ewarn "Unable to set lcd brightness"
        eend $?
    else
        ewarn "Setting LCD brightness is not supported."
        ewarn "For IBM Thinkpads, check that ibm_acpi is loaded into the kernel"
        ewarn "For Toshiba laptops, you've got to install app-laptop/acpitool"
    fi
}

start() {
    set_brightness
}

stop () {
    set_brightness
}

Wanneer je dit hebt gedaan, controleer of de helderheid automatisch wordt aangepast door het toe te voegen aan het batterij opstartlevel.

Codevoorbeeld 4.5: Inschakelen van automatische helderheid aanpassingen

# chmod +x /etc/init.d/lcd-brightness
# rc-update add lcd-brightness battery
# rc

5.  Schijf Energiebeheer

Harde schijvern verbruiken minder energie in slaap-modues. Daarom is het logisch om energiebesparing in te schakelen, wanneer de harde schijf niet gebruikt is voor een bepaalde tijd. Ik zal je twee alternatieve mogelijkheden tonen, om dit te doen. ALlereerst zal laptop-mode veel energie besparen die aangegeven werden door verschillende metingen. De keerzijde van de medaille is hier dat door de vertraagde schrijftoegang een stroomonderbreking of kernel-crash nog gevaarlijker kan zijn voor dataverlies. Als je dit niet wil, moet je controleren dat er geen processen zijn die direct naar de harde schijf schrijven. Daarna kkun je energiebesparing inschakelen of je harde schijf met hdparm als tweede alternatief.

Verhogeven van de idle-tijd - laptop-mode

Recente kernels (2.6.6 en nieuwer, recente 2.4 kernels en andere met patches) bevatten de" zogenaamde laptop-mode. Als die geactiveerd is, worden buffers geschreven naar de harde schijf bij lees-opdrachten of na 10 minuten (in plaats van 30 seconden). Dit verkleint de tijd dat de harde schijf stroom verbruikt.

Codevoorbeeld 5.1: Geautomatiseerde start van laptop-mode

# emerge laptop-mode-tools

laptop-mode-tools 's configuratiebestanden zijn te vinden in /etc/laptop-mode/laptop-mode.conf. Pas het op de manier dat je wil, het is goed gecommentariseerd. Voer rc-update add laptop_mode battery om het automatisch te starten.

Recente versies (1.11 en nieuwer) van laptop-mode-tools bevatten een nieuw hulp-programma, namelijk lm-profiler. Het zal je systeem schijfgebruik en netwerk diensten in de gaten houden en zal voorstellen onnodige processen af te breken. Je kunt ze uitschakelen door laptop-mode-tools's ingebouwde opstartlevel ondersteuning (die zal worden aangepast naar Gentoo's /sbin/rc) of gebruik je default/battery opstartlevels (aangeraden).

Codevoorbeeld 5.2: Voorbeeld output van het starten van lm-profiler

# lm-profiler
Profiling session started.
Time remaining: 600 seconds
[4296896.602000] amarokapp
Time remaining: 599 seconds
[4296897.714000] sort
[4296897.970000] mv
Time remaining: 598 seconds
Time remaining: 597 seconds
[4296900.482000] reiserfs/0

Na het profileren van je systeem gedurende tien minuten, zal lm-profiler je een lijst van services voorstellen die voor schijf raadplegingen hebbben gezorgt tijdens die tijd.

Codevoorbeeld 5.3: lm-profiler stelt voor deze uit te schakelen

Program:     "atd"
Reason:      standard recommendation (program may not be running)
Init script: /etc/init.d/atd (GUESSED)


Do you want to disable this service in battery mode? [y/N]: n

Om atd uit te schakelen zoals voorgesteld in het bovenstaande voorbeeld, zou je rc-update del atd battery moeten uitvoeren. Wees voorzichtig met het uitschakelen van diensten, die nodig zijn voor je systeem nodig heeft om goed te werken - lm-profiler kan mogelijk enkele slechte voorstellen doen. Schakel die niet uit als je niet zeker bent als deze nodig zijn of niet.

Limiteren van schrijf raadplegingen

Als je laptop mode niet wilt gebruiken, moet je extra aandacht besteden aan programma's die geregeld naar je harde schijf schrijven - syslogd is een goede kandidaat bijvoorbeeld. Je wilt het waarschijnlijk niet helemaal stoppen, maar je kunt het configuratie bestand zodanig aanpassen dat het "onnodige zaken niet registreerd, en dus geens schijf activiteit genereerd. Cups schrijft ook geregeld naar de schijf, dus denk er es ove rna om het uit te schakelen en het manueel op te starten wanneer dit nodig is.

Codevoorbeeld 5.4: Uit schakelen van cups in de batterij modus

# rc-update del cupsd battery

Je kunt ook lm-profiler van laptop-mode-tools (zie hierboven) gebruiken om diensten te vinden die je wilt uitschakelen. Eenamal je ze allemaal geëlimineert hebt, ga dan verder met het configureren van hdparm.

hdparm

De volgende mogelijkheid is het gebruiken van een klein script en hdparm. Sla dit over als je laptop-mode gebruikt. Creëer in het andere geval /etc/init.d/pmg_hda:

Codevoorbeeld 5.5: Gebruiken van hdparm voor de harde schijf standby-status

#!/sbin/runscript

depend() {
after hdparm
}

start() {
ebegin "Activating Power Management for Hard Drives"
hdparm -q -S12 /dev/hda
eend $?
}

stop () {
ebegin "Deactivating Power Management for Hard DSkip this if
you are using rives"
hdparm -q -S253 /dev/hda
eend $?
}

Kijk ook eens naar man hdparm voor meer opties. Als je script is afgewerkt, kun je het toevoegen aan het batterij opstartlevel.

Codevoorbeeld 5.6: Automatiseer harde schijf standby instellingen

# chmod +x /etc/init.d/pmg_hda
# /sbin/depscan.sh
# rc-update add pmg_hda battery

Belangrijk: Wees voorzichtig met slaap/rotatie instellingen van je harde schijf. Het instellen naar een kleine waarde kan je slijtage veroorzaken en je garantie laten vervallen.

Andere trucs

Andere mogelijkheden zijn het deactiveren van de swap in batterij modus. Vooraleer we een swapon/swapoff wisselaar schrijven, controleren we als er genoeg RAM gegeugen en dat swap niet teveel gebruikt wordt, anders zul je problemen ondervinden.

Als je laptop-mode niet wilt gebruiken, is het nog altijd mogelijk om de schijf raadplegingen te verminderen door enkele mappen te mounten als tmpfs - schrijf raadplegingen zijn niet opgelsaan op een schijf, maar in het geugen en worden verloren bij het unmounten. Meestal is het handig om een /tmp op deze manier te mounten - Je moet er geen extra aandacht aan schenken aangezien het gewist wordt elke keer men reboot, waar het ook gemount werd (harde schijf or ram). Controleer dat je genoeg ram gegeugen hebt en dat er geen programma (zoals een download client of compress programma) extra ruimte nodig heeft in /tmp. Om dit te activeren, schakel tmpfs ondersteuning in de kernel in en voeg een lijn toe aan je /etc/fstab zoals hier:

Codevoorbeeld 5.7: Aanpassen van /etc/fstab om /tmp automatisch te laten mounten

none  /tmp  tmpfs  size=32m  0 0

Waarschuwing: Let op bij de size parameter en pas het aan voor jouw systeem. Als je onzeker bent, probeer dit niet, het kan een prestatie probleem veroorzaken. In het geval je /var/log op deze manier wilt mounten, controleer dat je de logbestanden copieert naar je schijf vooraleer je unmount. Ze zijn belangrijk. Probeer nooit /var/tmp op deze manier te mounten. De portage gebruikt dit om te compileren...

6.  Energiebeheer voor andere aparaten

Grafische kaarten

In het geval je een PowerPlay ondersteunende ATI graphics kaart hebt (dynamic clock scaling for the the graphics processing unit GPU), kun je deze activeren in X.org. Open /etc/X11/xorg.conf en voeg (of schakel) de DynamicClocks optie in, in het aparaten sectie (Device section). Merk ook op dat deze optie kan leiden tot een crash op sommige systemen.

Codevoorbeeld 6.1: Inschakelen van ATI PowerPlay ondersteuning in X.org

Section "Device"
[...]
Option      "DynamicClocks" "on"
EndSection

Draadloze energiebeheer ondersteuning

Draadloze LAN kaarten verbruiken veel energie. Plaats ze in energiebeheer mode in analogie in het pmg_hda script.

Nota: Dit script gaat ervan uit dat je draadloze interface wlan0 heet; Vervang dit met de echte naam van je interface.

Codevoorbeeld 6.2: Geautomatiseerde WLAN Energiebeheer

#!/sbin/runscript
start() {
  ebegin "Activating Power Management for Wireless LAN"
  iwconfig wlan0 power on
  eend $?
}

stop () {
  ebegin "Deactivating Power Management for Wireless LAN"
  iwconfig wlan0 power off
  eend $?
}

Het starten van dit script zal energiebesparing voor wlan0 activeren. Sla het op als /etc/init.d/pmg_wlan0 en voeg het toe aan het batterij opstartlevel zoals het bovenstaande schijf-script. Kijk ook naar man iwconfig voor meer detailopties zoals de periode tussen wakeups of timeout instellingen. Als je driver en access point het wisselen van de beacon tijd ondersteunen, is dit een goed beginpunt om nog meer energie te besparen.

Codevoorbeeld 6.3: Energiebeheer voor WLAN

# chmod +x /etc/init.d/pmg_wlan0
# /sbin/depscan.sh
# rc-update add pmg_wlan0 battery

USB Energiebeheer

Er zijn altijd twee problemen bij USB apraten als men praat over energieverbruik: het eerste is dat aparaten zoals een USB muis, digitale cameras of USB sticks energie verbruiken terwijl ze aangeschakelt zijn. Je kunt dit niet behelpen. En ten tweede, wanneer er een USB aparaat ingeschakelt is, raadpleegt de USB-controller periodisch de bus, die op zijn beurt tegengaat dat de CPU in slaap-modus gaat. De kernel levert een experimentele optie om suspentie van USB aparaten kan ischakelen door een driver of een van de power/state bestanden in /sys.

Codevoorbeeld 6.4: Inschakelen van USB suspend ondersteuning in de kernel

Device Drivers
  USB support
    [*]   Support for Host-side USB
      [*]   USB suspend/resume (EXPERIMENTAL)

7.  Slaapstanden: slaapstand, standby, en suspend naar harde schijf

ACPI definieert verschillende slaapstanden. De belangrijkste zijn

  • S1 aka Standby
  • S3 aka Suspend naar RAM aka Slaapstand
  • S4 aka Suspend naar Harde schijf aka Hibernate

Ze kunnen opgeroepen worden als je systeem niet in gebruik is, maar afsluiten niet gewenst is door de lange opstarttijd.

Sleep (S3)

De ACPI ondersteuning voor deze slaapstanden is experimenteel, en wel voor een zeer goede reden. APM slaapstanden lijken stabieler maar je kan APM en ACPI jammer genoeg niet samen gebruiken.

Codevoorbeeld 7.1: Kernel configuratie voor de verschillende suspend types

  Power Management Optioyou'll get
additional information about what's happening reported to ns --->
    [*]  Power Management support
      ACPI (Advanced Configuration and Power Interface) Support --->
        [*]  ACPI Support
          [*]   Sleep States

Eens de kernel juist geconfigureerd is kan je het hibernate-script gebruiken om de suspend of slaapstand te activeren. Laten we dit eerst installeren.

Codevoorbeeld 7.2: Het hibernate-script installeren

# emerge hibernate-script

Er moeten enkele zaken in /etc/hibernate ingesteld worden. Het standaard pakket introduceert twee configuratie bestanden hibernate.conf en ram.conf.

Om slaapstand in te stellen gebruik je ram.conf in /etc/hibernate. UseSysfsPowerState mem is al juist ingesteld, maar je moet de rest van het configuratie bestand doorlopen en wijzigingen maken voor jouw systeem. De commentaar en namen van de opties zullen je hierbij helpen. Als je nfs of samba shares op het netwerk gebruikt moet je ervoor zorgen dat de juiste scripts afsluiten om timeouts te vermijden.

Klaar? Dit is de laatste kans om backups te nemen van date die je wil behouden nadat het volgende commando is uitgevoerd. Hou er rekening mee dat je een bepaalde toets moet indrukken om terug te komen uit de slaapstand.

Codevoorbeeld 7.3: Slaapstand oproepen

# hibernate-ram

Als je nog steeds aan het lezen bent blijkt het te werken :). Je kan standby (S1) op dezelfde wijze instellen door ram.conf naar standby.conf te kopiëren en een symbolische link /usr/sbin/hibernate-standby te maken die verwijst naar /usr/sbin/hibernate. S3 en S4 zijn interessantere slaapstanden omdat de meer energie besparen.

Hibernate (S4)

Deze sectie introduceert hibernatie, waar een snapshot van het werkende systeem gekopieerd wordt naar de harde schijf voordat het systeem afsluit. Bij het hervatten wordt de snapshot geladen en kan je verder werken vanaf het moment dat je hibernate opriep.

Waarschuwing: Verwissel geen hot-pluggable hardware tijdens de suspend en probeer geen nieuw kernel image te laden dan datgene waarmee de suspend gestart werd. Sluit ook alle NFS of samba server/clients voordat je in hibernatie mode gaat.

Er zijn twee verschillende implementaties voor S4. De originele is swsusp en de nieuwe is suspend2, die heeft een mooiere interface (inclusief fbsplash ondersteuning). Een vergelijking is te vinden op de suspend2 website. Er was vroeger een Suspend-naar-Schijf (pmdisk) maar die wordt niet meer gebruikt.

Suspend2 is nog niet geïmplementeerd in de standaard kernel, daarom moet je ofwel je kernel source patchen met de patches die suspend2.net voorziet, of gebruik sys-kernel/suspend2-sources.

De kernel instellingen voor zowel swusp en suspend2 zien er zo uit:

Codevoorbeeld 7.4: Kernel configuratie voor verschillende suspend types

Power Management Options --->
  (hibernate with swsusp)
  [*] Software Suspend
      (replace /dev/SWAP with your swap partition)
      (/dev/SWAP)      Default resume partition

  (hibernate with suspend2)
  Software Suspend 2
    --- Image Storage (you need at least one writer)
    [*]     File Writer
    [*]    Swap Writer
    ---   General Options
    [*]    LZF image compression
    (replace /dev/SWAP with your swap partition)
    (swap:/dev/SWAP)   Default resume device name
    [ ]     Allow Keep Image Mode

De configuratie voor swsusp is nogal eenvoudig. Als je de locatie van ja swap partitie niet hebt opgegeven in de kernel kan je dit ook meegeven met de resume=/dev/SWAP optie. Als je niet kan booten door een eventueel beschadigde image, kan je de noresume kernel parameter meegeven. Het hibernate-cleanup init script maakt de swsusp images ongeldig tijdens het booten.

Codevoorbeeld 7.5: swsusp images ongeldig maken bij boot

# rc-update add hibernate-cleanup boot

Om hibernate met swsusp te activeren moet je het hibernate script gebruiken en de UseSysfsPowerState disk optie in /etc/hibernate/hibernate.conf aanzetten.

Waarschuwing: Backup je data voordat je dit doet. Voer sync uit voordat je een van de commando's uitvoert zodat je de data op de schijf hebt staan. Probeer het eerst buiten X, later als X opgestart is, maar je niet ingelogd bent.

Als je kernel panics ondervindt door uhci of iets gelijkaardigs kan je proberen USB support als module te laden en de modules te unloaden voordat je de laptop in slaapstand zet. Er zijn configuratie optie voorzien in hibernate.conf

Codevoorbeeld 7.6: Hibernaten met swsusp

# nano -w /etc/hibernate.conf
(Zorg voor een backup van je data!)
# hibernate

De volgende sectie behandelt de setup van suspend2 met fbsplash ondersteuning voor een mooie grafische progress bar tijdens de suspend en het hervatten van de sessie.

Het eerste deel van de setup is gelijkaardig aan die van de configuratie van swsusp. Als je de locatie van je swap partitie niet in de kernel hebt ingesteld kan je deze meegeven met de resume2=swap:/dev/SWAP optie. Als je niet kan booten door een beschadigde image, voeg dan de noresume2 parameter toe. Het hibernate-cleanup script zal de images tijdens het bootproces ongeldig maken.

Codevoorbeeld 7.7: suspend2 images ongeldig maken tijdens boot

# rc-update add hibernate-cleanup boot

Bewerk nu /etc/hibernate/hibernate.conf, uncomment de suspend2 sectie en plaats alles in de sysfs_power_state en acpi_sleep secties in commentaar . Schakel het fbsplash stuk in de globale opties nog niet in.

Codevoorbeeld 7.8: Hibernaten met suspend2

# nano -w /etc/hibernate.conf
(Zorg voor een backup van je data!)
# hibernate

Nu kan je fbsplash configureren (als je dit nog niet gedaan hebt). Om de fbsplash in te schakelen tijdens de hibernatie is het sys-apps/suspend2-userui pakket nodig en moet je de fbsplash USE flag inschakelen.

Codevoorbeeld 7.9: suspend2-userui installeren

# mkdir -p /etc/portage
# echo "sys-apps/suspend2-userui fbsplash" >> /etc/portage/package.use
# emerge suspend2-userui

De ebuild zegt dat je een symlink moet maken naar het thema dat je wilt gebruiken. Bijvoorbeeld om het livecd-2005.1 thema te gebruiken moet je het volgende commando uitvoeren:

Codevoorbeeld 7.10: Het livecd-2005.1 thema gebruiken tijdens hibernatie

# ln -sfn /etc/splash/livecd-2005.1 /etc/splash/suspend2

Als je geen zwart scherm wilt in de beginfase van het resume proces moet je suspend2ui_fbsplash aan je initrd image toevoegen. Stel dat je een initrd hebt aangemaakt met splash_geninitramfs en dit hebt opgeslagen als /boot/fbsplash-emergence-1024x768, dan doe je dit zo.

Codevoorbeeld 7.11: suspend2ui_fbsplash toevoegen aan een initrd image

# mount /boot
# mkdir ~/initrd.d
# cp /boot/fbsplash-emergence-1024x768 ~/initrd.d/
# cd ~/initrd.d
# gunzip -c fbsplash-emergence-1024x768 | cpio -idm --quiet -H newc
# rm fbsplash-emergence-1024x768
# cp /usr/sbin/suspend2ui_fbsplash sbin/
# find . | cpio --quiet --dereference -o -H newc | gzip -9 > /boot/fbsplash-suspend2-emergence-1024x768

Daarna pas je grub.conf (of lilo.conf) aan zodat je suspend2 kernel /boot/fbsplash-suspend2-emergence-1024x768 als initrd image gebruikt. Je kan nu testen of alles correct is ingesteld.

Codevoorbeeld 7.12: Test run voor fbsplash hibernatie

# suspend2ui_fbsplash -t

Daarna open je /etc/hibernate/hibernate.conf opnieuw en activeer je de fbsplash opties. Voer hibernate uit en geniet.

8.  Probleemoplossing

V: Ik probeer de kloksnelheid te veranderen maar /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor bestaat niet.

A: Controlleer of je processor het schalen van de kloksnelheid ondersteunt en je de juiste CPUFreq driver voor je processor hebt gekozen. Hier is een lijst van processoren die cpufreq (kernel 2.6.7) ondersteunt: ARM Integrator, ARM-SA1100, ARM-SA1110, AMD Elan - SC400, SC410, AMD mobile K6-2+, AMD mobile K6-3+, AMD mobile Duron, AMD mobile Athlon, AMD Opteron, AMD Athlon 64, Cyrix Media GXm, Intel mobile PIII en Intel mobile PIII-M op verschillende chipsets, Intel Pentium 4, Intel Xeon, Intel Pentium M (Centrino), National Semiconductors Geode GX, Transmeta Crusoe, VIA Cyrix 3 / C3, UltraSPARC-III, SuperH SH-3, SH-4, verscheidene "PowerBook" en "iBook2" en andere processoren en enkele ACPI 2.0-compatibele systemen (enkel als "ACPI Processor Performance States" mogelijk zijn op de ACPI/BIOS interface).

V: Mijn laptop ondersteunt het schalen van de kloksnelheid maar /sys/devices/system/cpu/cpu0/cpufreq/ is leeg.

A: Zoek naar ACPI gerelateerde foutmeldingen met dmesg | grep ACPI. Probeer de BIOS te updaten, zeker als er een broken DSDT is gemeld. Je kan dit ook zelf repareren, maar dit wordt hier niet uitgelegd.

V: Mijn laptop ondersteunt het schalen van de kloksnelheid maar volgens /proc/cpuinfo verandert de snelheid nooit.

A: Waarschijnlijk heb je symmetric multiprocessing support (CONFIG_SMP) in je kernel aangezet. Deactiveer dit en het zou moeten werken. Sommige oudere kernels hebben een bug die dit veroorzaakt, doe in dat geval emerge x86info, update je kernel zoals gevraagd en controleer de momentele kloksnelheid met x86info -mhz.

V: Ik kan de kloksnelheid veranderen, maar de reikwijdte is niet zo breed als in een ander OS.

A: Je kan CPU Frequency scaling combineren met ACPI throttling om een lagere minimale kloksnelheid te bereiken. Merk wel op dat throttling niet zoveel energie bespaart en vooral gebruikt is voor temperatuur management (om je laptop koel en stil te houden). Je kan de momentele throttling status bekijken met cat /proc/acpi/processor/CPU/throttling en veranderen met echo -n "0:x" > /proc/acpi/processor/CPU/limit, waar x een van de Tx waarden is uit /proc/acpi/processor/CPU/throttling.

V: Bij het configureren van de kernel zie ik die powersave, performance en userspace governors, maar dat ondemand ding is er niet. Waar vind ik dat?

A: De ondemand governor zit enkel in recente kernel sources, probeer je kernel te updaten.

V: De batterij lijkt minder lang mee te gaan dan voorheen.

A: Controleer je BIOS instellingen, misschien ben je iets vergeten terug in te inschakelen.

V: Mijn batterij is opgeladen maar KDE zegt dat er 0% over is en sluit onmiddellijk af.

A: Controleer dat battery support in de kernel is ingebouwd, indien je het als een module gebruikt, controleer dan of de module geladen is.

V: Mijn systeem logger maakt meldingen zoals "logger: ACPI group battery / action battery is not defined".

A: Dit bericht wordt gegenereerd door het /etc/acpi/default.sh script dat bij acpid komt. Je kan dit gewoon negeren. Als je er echt vanaf wil, moet je volgende lijn in /etc/acpi/default.sh als volgt bewerken:

Codevoorbeeld 8.1: Waarschuwingen over acpi events uitschakelen

        *)      # logger "ACPI action $action is not defined"

V: Ik heb een Dell Inspiron 51XX en ik kan geen ACPI events krijgen.

A: Dit schijnt een kernel bug te zijn, lees hier meer.

V: Ik heb de DynamicClocks optie in xorg.conf ingeschakeld en nu crasht X.org / blijft het scherm zwart / sluit de laptop niet goed meer af.

A: Dit gebeurt op sommige systemen, je zal DynamicClocks moeten uitschakelen.

V: Ik wil suspend2 gebruiken maar het zegt me dat mij swap partitie te klein is en ik kan ze niet vergroten.

A: Als je genoeg vrije ruimte hebt kan je de filewriter gebruiken in plaats van de swapwriter. Het hibernate-script ondersteunt dit ook. Meer informatie kan gevonden worden in /usr/src/linux/Documentation/power/suspend2.txt.

V: Ik heb net een gloednieuwe batterij gekocht en na enkele minuten is ze leeg! Wat doe ik fout?

A: Volg het advies van de fabrikant over hoe je de batterij moet opladen.

V: Het bovenstaande hielp niet. Wat moet ik doen?

A: Sommige "nieuwe" batterijen zijn er eigenlijk oude. Probeer het volgende:

Codevoorbeeld 8.2: Batterij status opvragen

$ grep capacity /proc/acpi/battery/BAT0/info
design capacity:     47520 mWh
last full capacity:  41830 mWh

Als de "last full capacity" duidelijk verschilt van de "design capacity" is je batterij waarschijnlijk stuk. Probeer je garantie op te eisen.

V: Mijn probleem staat hier niet vermeld, wat moet ik nu doen?

A: Je kan steeds de auteur Dennis Nienhüser bereiken. De Gentoo Forums zijn ook een goede plaats om hulp te vragen. Als je liever IRC gebruikt, probeer dan het #gentoo-laptop kanaal op irc.freenode.net.



Print

Upgedate op 26 juli 2006

De originele versie van dit document wordt niet meer onderhouden

Korte inhoud: Energiebeheer is de sleutel tot het uitbreiden van de werktijd van batterijen op mobiele systemen, zoals laptops. Deze gids helpt je om je laptop in te stellen.

Dennis Nienhüser
Auteur

Chris White
Redacteur

Dimitry Bradt
Vertaler

Thomas Wouters
Vertaler

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.