Asi jste to všichni zažili. Pořídíte si notebook, nainstalujete na něj Fedoru a zjistíte, že výdrž na baterii je výrazně nižší než u Windows. Někdy až poloviční. Pro Fedoru 23 se plánuje mechanismus pro automatické zapínání úsporných režimů, ale do té doby si musíte se systémem pohrát, abyste z něj vymáčkli maximální výdrž na baterii. Pojďme se podívat na pár tipů, které z vašeho křemíkového miláčka můžou vymáčknout někdy i lepší čas než Windows.

Článek jsem doplnil na základě poznámek Jaroslava Škarvady, odborníka Red Hatu na spotřebu a autora tuned. Doplňky jsou označené kurzívou.

Windows tady mají jasnou výhodu. Na notebooku jsou v drtivé většině případů předinstalované a výrobcem jsou pro běh na daném hardwaru vyladěné. Fedora a Linux obecně tuto výhodu nemá, ale zase nabízí nástroje, kterými si můžete spotřebu vyladit sami.

Ovladače

Základem dobré výdrže na baterii je mít nainstalované ovladače s dobrým power managementem. Týká se to především ovladačů grafických karet, kde špatný power management může dělat rozdíl v řádu desítek procent spotřeby celého stroje. Nejlépe jsou na tom majitelé grafických karet od Intelu, kde open source ovladače vytváří přímo společnost Intel a co se týče spotřeby, fungují efektivně. O něco hůře jsou na tom majitelé grafických karet od AMD. Uzavřené ovladače ve Fedoře momentálně rozumně nefungují. Nicméně ty otevřené se v poslední době výrazně zlepšily hlavně díky tomu, že samo AMD začalo platit jejich vývoj a uvolňovat specifikace. U většiny modelů tak dosáhnete slušné spotřeby i s open source ovladači.

Nejhorší výchozí spotřebu mohou čekat majitelé karet od společnosti nVidia. Ta totiž s tvůrci otevřených ovladačů nouveau nijak nespolupracuje a jejich vývoj je tak výrazně pomalejší než u ovladačů pro karty od AMD. Pro velkou část modelů není power management v ovladačích implementovaný vůbec a grafická karta vám v takovém případě bude žrát energii doslova před očima. Instalace uzavřených ovladačů přímo od nVidie je potom nutností a jen tímto krokem spotřebu výrazně snížíte.

PowerTOP

PowerTOP je nástroj na sledování a ladění spotřeby, vyvíjený společností Intel. Vzhledem k tomu, že drtivá většina dnešních notebooků běží na chipsetu od Intelu, máte nástroj přímo od výrobce a se spotřebou dokáže dělat divy. PowerTOP je program pro příkazovou řádku a naleznete jej v repozitářích. Spustit jej musíte s právy superuživatele, takže buď pod rootem nebo přes sudo.

Úplně na začátku je nejlepší PowerTOP zkalibrovat, aby jeho měření byla přesná. Toho dosáhnete příkazem (během kalibrování s počítačem nepracujte):

# powertop --calibrate

PowerTOP má pět karet, mezi kterými přepínáte tlačítkem TAB. Dozvíte se na nich hodně o spotřebě vašeho počítače: celkovou spotřebu, které procesy se podílí na spotřebě nejvíc, který hardware. Nicméně nás zajímá snížení spotřeby a tedy karta "Možnosti vyladění".

powertop

Karta pro ladění se seznamem režimů

Na ní můžete vidět jednotlivé režimy pro hardware. Režimy, které jsou označené jako "Špatné", nejsou úsporné a spotřebovávají více energie, než je nutné. Tlačítkem Enter je můžete přepnout na "Dobré", tedy úsporné. Dost záleží na modelu, jak se změna projeví na spotřebě. Obecně platí, že rozdíl bude větší u novějších modelů, jejichž chipsety mají lepší power management. Na mém pět let starém notebooku ThinkPad T400s dělá vyladění spotřeby v PowerTOPu rozdíl necelých 10 %. U rok starého pracovního notebooku ThinkPad X240 je rozdíl několik desítek procet. Při normální práci se dostanu na 10-12 hodin, při maximálně úsporném režimu (dost stažený jas, vypnutá wifi, nenáročná práce) se dostanu i na více než 16 hodin. V obou případech jsem dosáhl vyšších hodnot než na Windows.

Všechny položky přepnete do úsporného režimu příkazem:

# powertop --auto-tune

Je nutné podotknout, že někdy může úsporný režim způsobovat problémy. Pokud třeba používáte bezdrátovou USB myš a zapnete pro ni úsporný režim, bude se vám stávat, že po pár sekundách nečinnosti se vypne a vždy několik sekund zabere, než se opět "chytne". To může být dost otravné.

Nemáte-li takové problémy a chcete, aby se systém podle PowerTOPu choval úsporně pořád, vytvořte soubor /etc/systemd/system/powertop.service s tímto obsahem:

[Unit]
Description=Tuning podle PowerTOPu

[Service]
Type=oneshot
ExecStart=/usr/sbin/powertop --auto-tune

[Install]
WantedBy=multi-user.target

Potom řekněte systemd, aby načetl unit soubory:

# systemctl daemon-reload

Minimálně od Fedory 21 už PowerTOP unit soubor má, takže výše zmíněné kroky nejsou potřeba a stačí dva příkazy uvedené níže.

A následujícími příkazy zajistíte, že se úsporné režimy zapnou a budou zapínat při každém startu systému:

# systemctl start powertop.service
# systemctl enable powertop.service

tuned

Dalším užitečným nástrojem v honbě za co nejnižší spotřebou je tuned. Ten umožňuje nastavit celou řadu profilů. Nás budou zajímat dva: balanced a powersave. První představuje výchozí úsporný režim, kompromis mezi výkonem a úsporností. Režim "powersave" pak představuje agresivní šetření energie, které může mít dopad na výkon.

tuned naleznete pod stejnojmenným balíčkem v repozitářích a zapnete a natrvalo ho aktivujete příkazy:

# systemctl start tuned.service
# systemctl enable tuned.service

Seznam dostupných profilů zjistíte příkazem:

tuned-adm list

Změnu profilu provedete příkazem:

# tuned-adm profile nazev_profilu

tuned má také grafické rozhraní, v kterém můžete dělat to samé. Najdete ho pod balíčkem tuned-gtk a spustíte ho příkazem tuned-gui (nevytváří si svého zástupce, takže musíte aplikaci spustit příkazem).

tuned-gui

Grafické rozhraní pro tuned

tuned umí pracovat také s PowerTOPem. Pokud byste raději chtěli použít profil vygenerovaný z PowerTOPu, nainstalujte si balíček tuned-utils a proveďte příkaz:

# powertop2tuned muj-profil

PowerTOP vám vygeneruje doporučený úsporný režim pro tuned.

Tento příkaz nepřepne všechny režimy na úsporné, toho jde dosáhnout přidáním přepínače -e: # powertop2tuned -e muj-profil. I v tomto případě tuned nepřepne všechny režimy, ale vynechá ty nebezpečné (uspávání USB), které mohou způsobovat problémy popsané výše v článku.

V kombinaci s udev lze přepínání mezi profily automatizovat. Vytvořte soubor /etc/udev/rules.d/powersave.rules, který bude obsahovat:

SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="/usr/sbin/tuned-adm profile powersave"
SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="/usr/sbin/tuned-adm profile balanced"

Poté stačí provést příkaz:

# udevadm control --reload

Nyní můžete vyzkoušet, že při odpojení a zapojení napájení se profily opravdu mění. Pokud chcete při běhu na baterii používat profil vygenerovaný PowerTOPem, jen přepište powersave jménem onoho profilu. Stejně tak můžete při připojení do sítě použít místo profilu balanced třeba desktopem, který je víc šitý na míru desktopovému použití.

Při normálním provozu je balanced úspornější než powersave. Ten se hodí pouze v případě nenáročné práce, třeba čtení dokumentu. Smysl má přepínat mezi desktopem (v síti) a balanced (na baterii), i když rozdíl není výrazný, balanced je dosti univerzální profil.

Ostatní

Výše jsme si popsali nástroje, které vám mohou v závislosti na vašem hardwaru ušetřit až desítky procent ze spotřeby. Nicméně pro vyšší výdrž na baterii můžete udělat ještě víc. V Nastavení->Napájení mějte povolené "Ztlumit jas obrazovky při neaktivitě" a vypnutí obrazovky po určitém intervalu. Obvykle největším "žroutem" energie je podsvícení displeje. Mějte ho tedy nastavené na rozumnou hodnotu. To samé platí o WiFi a Bluetooth, také dokáží spotřebovat velké množství energie a pokud potřebujete maximální výdrž a zrovna je nepotřebujete (třeba v letadle), vypněte je.