Disclaimer :
Dit document is niet juist en is niet meer onderhouden.
|
EnergieBeheer Gids
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 |
 |
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
RUNLEVEL_AC="default"
RUNLEVEL_BATTERY="battery"
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 |
event=ac_adapter.*
action=/etc/acpi/actions/pmg_switch_runlevel.sh %e
|
Codevoorbeeld 2.9: /etc/acpi/events/pmg_battery |
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. |
/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"
Option "StandbyTime" "10"
Option "SuspendTime" "20"
Option "OffTime" "30"
[...]
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 |
# 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 |
BRIGHTNESS_AC=7
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 --->
[*] Software Suspend
(/dev/SWAP) Default resume partition
Software Suspend 2
--- Image Storage (you need at least one writer)
[*] File Writer
[*] Swap Writer
--- General Options
[*] LZF image compression
(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
# 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
# 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.
The contents of this document are licensed under the Creative Commons -
Attribution / Share Alike license.
|