33.5. Balík powersave

powersave je jedním z nejužitečnějších balíčků určených především pro notebooky, kde je velmi důležité kontrolovat stav baterií a proces napájení systému. Řada funkcí je užitečná i pro běžnou pracovní stanici (např. uspání/pohotovost, funkce ACPI a možnost zastavení IDE disků).

Balíček slučuje všechny funkce správy napájení. Podporuje hardware, který využívá technologie ACPI, APM, PowerNow! a např. i technologii SpeedStep. Obsahuje funkce balíčků:

Z toho důvodu není možné, pokud chcete používat powersave, spouštět zároveň démony obsažené ve výše jmenovaných balíčcích.

Doporučujeme vám používat powersave i v případě, že hardware nepodporuje všechny uvedené technologie. Případné změny hardwaru démon rozpozná automaticky.

[Important]Informace o powersave

Mimo této kapitoly najdete velmi užitečné informace o powersave také v souboru /usr/share/doc/packages/powersave/README_POWERSAVE.

33.5.1. Konfigurace powersave

Nastavení powersave je rozděleno do několika souborů:

/etc/sysconfig/powersave/common

Soubor ze základním nastavením démona powersave. V tomto souboru lze například významně zkrátit zápis démona do záznamů (do souboru /var/log/messages) nastavením nižší hodnoty proměnné DEBUG.

/etc/sysconfig/powersave/events

Soubor potřebný pro zpracování systémových událostí. Každé události lze přiřadit externí akci nebo akce nebo akce vykonávané přímo démonem. V případě externích akcí se démon snaží spustit některý ze skriptů uložený v adresáři /usr/lib/powersave/scripts/. Předdefinované interní akce jsou:

  • ignore

  • throttle

  • dethrottle

  • suspend_to_disk

  • suspend_to_ram

  • standby

  • do_suspend_to_disk

  • do_suspend_to_ram

  • do_standby

throttle přiškrcuje procesor na hodnotu zadanou v proměnné MAX_THROTTLING. Tato proměnná je závislá na aktuálním schématu. dethrottle nastavuje procesor na plný výkon. suspend_to_disk, suspend_to_ram a standby zachycují systémové události režimu uspání. Tyto tři akce jsou odpovědné především za uspávání, ale vždy by měly být asociovány se zvláštními systémovými událostmi.

Adresář /usr/lib/powersave/scripts obsahuje skripty pro následující akce:

notify

Upozornění o události na textové konzoli, v grafickém prostředí nebo zvukovým signálem.

screen_saver

Aktivace spořiče obrazovky.

switch_vt

Užitečná akce v případě, že se po probuzení nebo standby režimu nechová korektně obrazovka.

wm_logout

Uložení všech nastavení a logy z GNOME, KDE nebo jiného grafického prostředí a provede odhlášení.

wm_shutdown

Uložení nastavení GNOME nebo KDE a vypnutí systému.

V případě nastavení proměnné EVENT_GLOBAL_SUSPEND2DISK="prepare_suspend_to_disk do_suspend_to_disk", provedou se při uspání na disk dva skripty nebo akce v zadaném pořadí. Démon powersaved spustí externí skript /usr/lib/powersave/scripts/prepare_suspend_to_disk. Po úspěšném vykonání tohoto skriptu provedete démon interní akci do_suspend_to_disk a po té, co skript odstraní kritické moduly, počítač uspí.

Akci tlačítka uspání lze pozměnit v proměnné EVENT_BUTTON_SLEEP="notify suspend_to_disk". V takovém případě budou uživatelé o uspání informování externím skriptem notify. Následně je generována událost EVENT_GLOBAL_SUSPEND2DISK vedoucí k akcím popsaným výše a bezpečnému uspání systému. Skript notify lze upravit pomocí proměnné NOTIFY_METHOD v souboru /etc/sysconfig/powersave/common.

/etc/sysconfig/powersave/cpufreq

Soubor obsahuje proměnné pro nastavení optimalizace dynamického nastavení frekvence procesoru.

/etc/sysconfig/powersave/battery

Omezení baterie a další pro specifická nastavení baterie.

/etc/sysconfig/powersave/sleep

V tomto souboru se aktivuje uspávání, nastavují kritické moduly, které je nutné pře uspáním odstranit ze systému, a určují služby, jež je nutné před uspáním nebo před režimem standby zastavit. Po probuzení počítače jsou zadané moduly opět zavedeny do systému a služby spuštěny. Proces uspání lze z důvodů bezpečného uložení souborů odložit. Výchozí nastavení se ve většině případů týká USB a PCMCIA modulů. Selhání uspání nebo režimu standby je obvykle zapřičiněno některým z modulů. Více informací o zjišťování příčin selhání najdete v části 33.5.3 – „Možné problémy“.

/etc/sysconfig/powersave/thermal

Aktivace chlazení a kontroly teploty. Podrobnosti o tomto tématu najdete v souboru /usr/share/doc/packages/powersave/README.thermal.

/etc/sysconfig/powersave/scheme_*

Různá schémata správy napájení závislá na situaci nasazení počítače. Mimo již přednastavených schémat se zde ukládají také vlastní schémata.

33.5.2. Konfigurace APM a ACPI

U APM a ACPI můžete provádět nastavení uspávání, vlastní hodnoty pro sledování stavu baterií a samozřejmě různé režimy práce lišící se např. spotřebou energie nebo hlučností.

33.5.2.1. Uspání a probuzení

Protože režim uspání na některých počítačích stále nefunguje, je ve výchozím nastavení vypnutý. Dostupné jsou tři typy ACPI uspání a dva typy APM uspání:

Uspání na disk (ACPI S4, APM suspend)

Uložení obsahu paměti na disk. Počítač se zcela vypne a nespotřebovává elektrickou energii.

Uspání do RAM (ACPI S3, APM suspend)

Uložení stavu všech zařízení do operační paměti. Počítač potřebuje elektrickou energii pouze pro operační paměť.

Standby (ACPI S1, APM standby)

Vypnutí některých zařízení (funkce závislá na výrobci).

Aby uspání, standby a probuzení proběhly bez problémů, ujistěte se, že máte v souboru /etc/sysconfig/powersave/events následující nastavení (výchozí nastavení systému SUSE Linux):

EVENT_GLOBAL_SUSPEND2DISK=
    "prepare_suspend_to_disk do_suspend_to_disk"
EVENT_GLOBAL_SUSPEND2RAM=
    "prepare_suspend_to_ram do_suspend_to_ram"
EVENT_GLOBAL_STANDBY=
    "prepare_standby do_standby"
EVENT_GLOBAL_RESUME_SUSPEND2DISK=
    "restore_after_suspend_to_disk"
EVENT_GLOBAL_RESUME_SUSPEND2RAM=
    "restore_after_suspend_to_ram"
EVENT_GLOBAL_RESUME_STANDBY=
    "restore_after_standby"

33.5.2.2. Uživatelem definovaný stav baterie

V souboru /etc/powersave.conf můžete nastavit tři hodnoty týkající se kapacity baterií. Jde o stavy v procentech, při jejichž dosažení buď dojde k hlášení o stavu baterií nebo se spustí nějaká akce.

BATTERY_WARNING=20
BATTERY_LOW=10
BATTERY_CRITICAL=5

Jaké akce se spustí, lze nastavit v souboru /etc/powersave.conf. Typy akcí nastavíte v souboru /etc/sysconfig/powersave/common:

EVENT_BATTERY_NORMAL="ignore"
EVENT_BATTERY_WARNING="notify"
EVENT_BATTERY_LOW="notify"
EVENT_BATTERY_CRITICAL="suspend"

Další možnosti nastavení najdete v komentářích konfiguračního souboru.

33.5.2.3. Nastavení spotřeby na různé režimy práce

Svůj systém můžete nastavit tak, aby se při různých způsobech napájení, choval jiným způsobem. Tak můžete dočasně z důvodů šetření energie snížit výkon svého systému, a po připojení do sítě ho pak zase zvýšit. Konkrétními příklady změn nastavení jsou frekvence procesoru, aktivita disku, spořící funkce a další vlastnosti.

V souboru /etc/powersave.conf můžete prostřednictvím powersave_proxy nastavit různé spořící kroky. V souboru /etc/sysconfig/powersave/common k nim můžete nastavit různé scénáře (nazývané schéma nebo profily):

AC_SCHEME="performance"
BATTERY_SCHEME="powersave"

Schémata jsou uložena do jednotlivých souborů v adresáři /etc/sysconfig/powersave. Jméno se vždy skládá z částí: scheme_FJmenoSchemata. V našem případě máme dvě schémata scheme_performance a scheme_powersave. předkonfigurována jsou schémata performance, powersave a acoustic. Již existující schémata můžete kdykoliv měnit pomocí programu YaST. Pomocí programu YaST můžete také schémata vytvářet a mazat.

33.5.2.4. Další funkce ACPI

Pokud používáte ACPI, můžete si nastavit ACPI tlačítka (Power, Sleep a Otevření, Zavření). Příslušné akce pro powersave_proxy lze nastavit v souboru /etc/powersave.conf. Jednotlivé akce jsou nastavené v souboru /etc/sysconfig/powersave/common. Více informace o nastavení najdete v komentářích těchto konfiguračních souborů.

EVENT_BUTTON_POWER="wm_shutdown"

Po stisknutí klávesy Power se ukončí nastavený správce oken (KDE, GNOME, fvwm...).

EVENT_BUTTON_SLEEP="suspend"

Po stisknutí klávesy Sleep dojde k uspání notebooku.

EVENT_BUTTON_LID_OPEN="ignore"

Při otevření notebooku nedojde k žádné akci.

EVENT_BUTTON_LID_CLOSED="screen_saver"

Při zavření notebooku se aktivuje spořič obrazovky.

Nastavení procesoru můžete provést prostřednictvím proměnných CPU_LOW_LIMIT a CPU_IDLE_TIMEOUT. V případě, že je procesor zaneprázdněn i po vypršení timeoutu, spustí se událost nastavená v EVENT_PROCESSOR_IDLE. V případě dalšího zaneprázdnění procesoru se vykoná EVENT_PROCESSOR_BUSY.

33.5.3. Možné problémy

V následující části najdete nejčastější dotazy a problémy související s používáním powersave.

33.5.3.1. Obecný postup určení příčiny problémů

Nejdřív se podívejte do souboru /var/log/messages. Do tohoto souboru se zapisuje řada chybových hlášení systému. Pokud v tomto souboru nic nenajdete, nastavte v souboru /etc/sysconfig/powersave/common proměnnou DEBUG na hodnotu 7 nebo 15. Pak restartujte démona. Všechna chybová hlášení powersave se pak budou zapisovat do souboru /var/log/messages.

33.5.3.2. ACPI je aktivován, ale klávesy ani stav baterie nereaguje podle nastavení

Zda se jedná o problémy související s ACPI zjistíte pomocí příkazu dmesg zadáním:

dmesg|grep -i acpi

Jestliže najdete nějaká chybová hlášení, aktualizujte BIOS. Novou verzi BIOSu najdete na stránkách výrobce své základní desky.

V případě, že chyba přetrvává i po updatu BIOSu, vyhledejte na stránkách pro svůj systém také aktuální tabulku DSDT a nahraďte jí tabulku v BIOSu:

  • Ze stránky http://acpi.sourceforge.net/dsdt/tables si stáhněte DSDT tabulku. Ujistěte se, že jde o správný a překompilovaný soubor (obsahuje příponu .aml (ACPI Machine Language)). Pokud jste pro svůj systém našli takový soubor, pokračujte krokem 3.

  • Pokud jste našli tabulku s příponou .asl (ACPI Source Language), musíte ji nejdřív pomocí iasl z balíčku pmtools překompilovat. Zadejte příkaz:

    iasl -sa JmenoSouboru.asl

    Nejnovější verzi programu iasl (Intel ACPI Compiler) najdete na stránce http://developer.intel.com/technology/iapc/acpi/.

  • Překopírujte soubor DSDT.aml do systému (v našem případě /etc/DSDT.aml). Editujte soubor /etc/sysconfig/kernel a zadejte zde cestu k DSDT souboru. Spusťte příkaz:

    mkinitrd

    Tímto příkazem zajistíte, že se tabulka zavede ještě před startem jádra.

[Important]Důležité

Náhrada DSDT tabulky vyžaduje pokročilejší znalosti správy počítače. Při nesprávném postupu může dojít k nefunkčnosti systému.

33.5.3.3. Nefunguje nastavení CPU frekvence.

Překontrolujte v dokumentaci, zda je u vašeho procesoru tato funkce podporována a zda jsou zavedeny všechny potřebné moduly a nastavené správné parametry těchto modulů. Všechny potřebné informace najdete v souboru /usr/src/linux/Documentation/cpu-freq/*. Pokud je potřeba nastavit určité parametry, proveďte změny v souboru /etc/sysconfig/powersave/common pomocí proměnných CPUFREQD_MODULE a CPUFREQD_MODULE_OPTS.

33.5.3.4. Nelze uspávat a budit počítač

V současné době je známo několik problémů s uspáváním a probouzením na systémech používajících ACPI:

  • Systémy s více jak 1 GB RAM nemají v současné době podporu uspání.

  • Víceprocesorové systémy nebo systémy s procesorem P4 nemají v současné době podporu uspání.

Problém může spočívat také v chybné implementaci DSDT. V takovém případě nahraďte novou DSDT podle postupu uvedeného v Aktivovala jsem ACPI, ale klávesy ani stav baterie nereaguje podle nastavení?

Pro APM i ACPI systémy:

Při pokusu o zavedené problémového modulu zamrzne proxy a nedojde k pokynu k uspání. To samé může nastat v okamžiku, kdy službu nebo modul nejde zastavit. V obou případech se můžete pokusit najít problémový modul pomocí úprav v souboru /etc/sysconfig/powersave/common:

UNLOAD_MODULES_BEFORE_SUSPEND=" "
UNLOAD_MODULES_BEFORE_STANDBY=" "
SUSPEN_RESTART_SERVICES=" "
STANDBY_RESTART_SERVICES=" "

33.5.3.5. Powersave u ACPI nesprávně rozpoznává stav baterií.

Při používání ACPI systém získává informace o stavu baterie od BIOSu. Výhoda tohoto řešení spočívá v tom, že stav baterií není nutné načítat nepřetržitě a tak je snížena zátěž systému a tím i jeho spotřeba. Může se však stát, že k přenosu informací mezi BIOSem a systémem nedochází. V takovém případě nastavte v souboru /etc/powersave.conf proměnnou FORCE_BATTERY_POLLING na hodnotu yes.