Melhore o rendimento da bateria no laptop Linux, com o TLP

O TLP é uma ferramenta avançada de gestão de energia e seu objetivo é melhorar o rendimento da bateria do seu notebook.
É fácil de instalar e começar a usar — até por que vem com uma configuração padrão, já otimizada para aumentar o rendimento.
Ao mesmo tempo, é altamente personalizável e permite ao usuário criar seus próprios ajustes.
O TLP oferece perfis de configuração separados para quando o laptop estiver conectado à tomada ou usando apenas a bateria. Pode ativar/desativar os dispositivos bluetooth, WiFi e o rádio WWAN, já na inicialização do sistema, de acordo com as suas necessidades.


A possibilidade de desligar recursos de conectividade é ótimo para usuários que usam o equipamento para estudar ou ler material que já se encontram no laptop, em locais que não tem acesso à Internet.

Você tem um Thinkpad? O TLP tem um modo unificado de configuração da carga e de calibragem da bateria para estes notebooks.

Para concluir a apresentação, trata-se de uma ferramenta CLI (de linha de comando) que executa suas tarefas em segundo plano e, até o momento não tem uma interface GUI (gráfica).

O TLP permite escalar os ajustes das CPUs, tanto nas mais antigas como nas mais atuais — com o uso do intel p_state.

Como instalar o TLP

A ferramenta está presente nos repositórios das principais distribuições — eu testei no Debian 9, Fedora 25 e OpenSUSE Tumbleweed.
No Debian e nas distribuições derivadas, use o apt:

sudo apt install tlp

No Fedora e nas distribuições derivadas, use o dnf:
dnf search install tlp

dnf install tlp

No openSUSE, use o zypper:
opensuse zypper search install tlp

zypper install tlp

Isto é o suficiente. Após a instalação, o TLP já começa a fazer seu trabalho.
É importante dizer que vai conflitar com outras ferramentas de gestão de energia que já estejam instaladas no seu sistema — como o cpufrequtils, por exemplo. Portanto, remova-as antes de instalar o TLP.

Configuração e uso do TLP

As configurações padrão irão satisfazer a maioria dos usuários de laptops com Linux.
Captura de tela tlp tools
Você pode invocar as ferramentas (com privilégios administrativos) que fazem parte do pacote TLP:

  • tlp-pcilist — exibe informações relativas aos dispositivos PCI do sistema
  • tlp-stat — exibe o estado (status) do TLP — a configuração, ajustes de gestão de energia do sistema e informações adicionais
  • tlp-usblist — exibe dados dos dispositivos USB

Todas as configurações estão em um único arquivo, situado em /etc/default.
O arquivo é bem organizado e autoexplicativo (em inglês).
Se for alterá-lo, faça backup antes, para pode voltar à configuração padrão sem precisar desinstalar (com o –purge).

Possíveis problemas com o TLP

Lentidão pode ser um dos efeitos colaterais esperados de qualquer sistema de gestão inteligente de energia.
Para melhorar a performance da bateria, o sistema irá sacrificar a do processador. Você não pode ter as duas coisas.
Neste caso, não experimentei nenhuma degradação “acima do aceitável” no desempenho do meu sistema e estou satisfeito com o ganho (por volta de 25% ou quase uma hora) da bateria do meu notebook.
Li relatos de problemas com drives flash SSD e eles podem ser contornados ao comentar as seguintes linhas (veja a figura) no arquivo de configuração /etc/default/tlp:
tlp disk settings
Comente as linhas com um “#”:

# DISK_DEVICES="sda sdb"

# DISK_APM_LEVEL_ON_AC="254 254"
# DISK_APM_LEVEL_ON_BAT="128 128"

Acompanhe o consumo de energia de cada programa no seu sistema com o aplicativo powertop

Cada aplicativo em execução no seu sistema, consome a carga da sua bateria.
Podem ser programas que já são parte do sistema operacional, tais como o Firefox, o LibreOffice etc.
O powertop permite saber qual software está consumindo mais energia no seu sistema.

Além disto, ajuda a fazer ajustes para otimizar o consumo e proporcionar um tempo maior de uso entre uma recarga e outra.

O aplicativo é estável e possui boa parte de sua documentação já traduzida para português, veja:

# para usuários Debian/Ubuntu
apt show powertop

A descrição (resumida) do aplicativo, segue abaixo:

Description: diagnóstico de problemas com gerenciamento e consumo de energia (power)
 PowerTOP é uma ferramenta do Linux para diagnóstico de problemas com
 gerênciamento e consumo de energia. Adicionalmente para ser uma ferramenta
 de diagnóstico, o PowerTOP também tem um modo interativo que você pode usar
 para experimentar com várias configurações de gerênciamento de energia para
 casos onde a distribuição Linux não habilitou estas configurações.
 .
 PowerTOP relata quais componentes no sistema estão mais sujeitos a consumir
 mais energia do que o necessário, variando entre os aplicativos de software
 para componentes ativos no sistema. Telas detalhadas estão disponíveis para
 o 'CPU C' e 'P states', atividade de dispositivos e atividade de software.

No OpenSUSE, resultado semelhante será obtido com o seguinte comando:

zypper show powertop

Como instalar o powertop no Linux

Se você usa o Debian, Ubuntu ou outra distro baseada nestas, use o apt, para instalar o powertop:

sudo apt update
sudo apt install powertop

Usuários do openSUSE, podem usar o zypper:

sudo zypper update
sudo zypper install powertop

É sugerido (opcional) instalar, ainda, o pacote cpufreq, para obter melhores estatísticas e mais capacidade de manuseio do sistema.

Como ajustar o powertop

Após a instalação, recomenda-se reiniciar o computador.
Depois, calibrar as leituras obtidas a partir da bateria, com o seguinte comando:

sudo powertop -c

O procedimento de calibragem leva, aproximadamente, 15 minutos.
O sistema irá desligar a tela algumas vezes e você ficará impedido de fazer qualquer atividade no seu laptop durante todo o processo .
Isto é normal. Pegue um café e espere.
Quando o processo tiver terminado, um relatório em HTML pode ser obtido com o seguinte comando:

sudo powertop --html=desempenho.html

Acima, usei o nome ‘desempenho.html’, mas use o que quiser.
Para abrir o arquivo dentro do seu navegador preferido, basta citar o nome dele:

firefox desempenho.html

powertop linux
As estatísticas do upower podem ser encontradas em ‘/var/lib/upower/’:

sudo ls -lah /var/lib/upower/history-*
-rw-r--r-- 1 root root 29K dez 14 18:09 /var/lib/upower/history-charge-DELL_7P3X953I-43-0948.dat
-rw-r--r-- 1 root root 14K dez 14 18:09 /var/lib/upower/history-rate-DELL_7P3X953I-43-0948.dat
-rw-r--r-- 1 root root 18K dez 14 18:09 /var/lib/upower/history-time-empty-DELL_7P3X953I-43-0948.dat
-rw-r--r-- 1 root root 19K dez 14 18:09 /var/lib/upower/history-time-full-DELL_7P3X953I-43-0948.dat

Se você quiser dar um reset nas estatísticas, remova estes arquivos:

sudo rm /var/lib/upower/*

Alguns fabricantes (System76) recomendam – caso o indicador do ciclo de carga da bateria esteja impreciso – remover as estatísticas (com o comando acima).
Depois deste procedimento, após alguns ciclos completos de cargas/descargas as informações voltarão a ser mais exatas.

Previna o superaquecimento do seu sistema com thermald

O thermald é um serviço usado para prevenir o superaquecimento no seu PC. Ele pode rodar em Linux, OSX e, até mesmo, Android. O software monitora a temperatura do sistema e procura compensar a situação através dos métodos de resfriamento disponíveis.
O propósito do aplicativo é agir antes que o próprio hardware comece a corrigir agressivamente a situação.
thermald-feat300x200

Desenvolvido sob patrocínio da Intel e por desenvolvedores pagos pela empresa, a ferramenta só está disponível para quem usa processadores desta marca — da linha Core e Atom — pra ser mais específico, os que usam a tecnologia Sandy Bridge ou posterior.

O thermald daemon monitora os sensores presentes no sistema e modifica os controles para manter o hardware abaixo das temperaturas limite e evitar, com mais eficiência, os picos.
O thermald mantém o sistema frio através…

  • … de dispositivos de resfriamento ativos ou passivos, encontrados no sysfs;
  • … do RAPL (Running Average Power Limit);
    O RAPL é um driver, disponível para processadores Intel, que provê aos softwares da plataforma a possibilidade de monitorar, controlar e obter notificações sobre o consumo de energia.
  • … do driver Intel P-state CPU frequency;
  • … do driver CPU freq;
  • … e do driver Intel PowerClamp.

Opcionalmente, o daemon pode tomar o controle exclusivo do sistema e agir como um governor.

Como instalar o thermald

O aplicativo pode ser instalado diretamente dos repositórios. Se você usa o Fedora Linux, pode instalar com o yum:


yum install thermald

Usuários do Ubuntu e Debian, podem instalar o aplicativo com o apt:


sudo apt install thermald

Se preferir (e souber o que está fazendo), pode baixar, compilar e instalar a versão mais atual do aplicativo — não é complicado e eu recomendo.

Como usar o thermald

Se você usa o Fedora Linux, recomendo a leitura deste artigo, para ver as primeiras dicas pós-instalação, em que este aplicativo é mencionado.
Não esqueça de executar os comandos abaixo com privilégios administrativos.
No Ubuntu e no Debian, você pode verificar se o daemon está rodando com o seguinte comando:


systemctl status thermald

● thermald.service - Thermal Daemon Service
   Loaded: loaded (/lib/systemd/system/thermald.service; enabled; vendor preset:
   Active: active (running) since Wed 2017-08-30 15:05:19 -03; 17min ago
 Main PID: 18007 (thermald)
    Tasks: 2 (limit: 4915)
   CGroup: /system.slice/thermald.service
           └─18007 /usr/sbin/thermald --no-daemon --dbus-enable

ago 30 15:05:19 ultra-5 systemd[1]: Starting Thermal Daemon Service...
ago 30 15:05:19 ultra-5 thermald[18007]: 13 CPUID levels; family:model:stepping 
ago 30 15:05:19 ultra-5 thermald[18007]: Polling mode is enabled: 4
ago 30 15:05:19 ultra-5 thermald[18007]: sysfs write failed /sys/devices/virtual
ago 30 15:05:19 ultra-5 systemd[1]: Started Thermal Daemon Service.
ago 30 15:06:03 ultra-5 thermald[18007]: sysfs write failed /sys/devices/virtual
ago 30 15:06:03 ultra-5 thermald[18007]: sysfs write failed /sys/devices/virtual
lines 1-15/15 (END)

Se não estiver ativo, inicie o serviço assim:


systemctl start thermald

Para interromper, use o comando:


systemctl stop thermald

Como usar o thermald na linha de comando

O aplicativo foi concebido pra rodar como um serviço. Ou seja, é pra ser instalado e esquecido.
Não há necessidade de fazer absolutamente nada depois da instalação — deixe o cara trabalhar.
Contudo, se você ainda quiser aprender um pouco mais sobre ele, seguem alguns comandos de interação, que podem ser executados no console —. Se tiver algum tempo sobrando, experimente baixar e compilar o código fonte, para ter uma versão mais atual do thermald.
Para ver a versão atual do thermald, digite o seguinte comando no seu console:


thermald --version

Se quiser obter ajuda, pode recorrer ao manual do sistema man thermald ou à tradicional ajuda, no terminal:


thermald -h

A maioria das opções do aplicativo exigem privilégios administrativos para serem invocadas:


thermald

You must be root to run thermald!

Se quiser, desligue o daemon e rode o aplicativo “interativamente”:


systemctl thermald stop

thermald --no-daemon --poll-interval=1

Polling enabled: 1
13 CPUID levels; family:model:stepping 0x6:2a:7 (6:42:7)
Polling mode is enabled: 1

Para interromper a execução, tecle ‘Ctrl + C’.

Como criar e alterar o arquivo de configuração do thermald

A localização padrão do arquivo de configuração do thermald é /etc/thermald/thermal-conf.xml. Você não precisa se preocupar, caso não encontre o arquivo em seu sistema — o daemon não precisa dele para fazer o seu trabalho.
Contudo, se você tiver um bom nível de conhecimento técnico sobre o seu hardware, pode fazer alguns ajustes para otimizar o funcionamento do thermald.
A configuração é baseada modelo da ACPI, em que as regiões da plataforma são divididas em zonas térmicas — e estas contém dispositivos físicos, controles de resfriamento e sensores térmicos.
Controles de resfriamento modificam o comportamento das ventoinhas (coolers) e de interfaces de drivers que podem reduzir o clock da CPU, por exemplo.
O processo de resfriamento pode ser

  • ativo — quando o ventilador é acionado para diminuir o calor. A desvantagem deste método é que consome mais energia e pode ser ruidoso;
  • passivo — quando reduz o clock da CPU, fazendo com que ela produza menos calor. Neste caso, você perde em performance. Dependendo do tipo de atividade, esta perda pode sequer ser sentida.

Nota: A relação desempenho x temperatura x economia (de energia) é discutida também neste artigo.
Os dispositivos de resfriamento pode ser ativados toda vez que se alcança certos picos na temperatura.
As zonas térmicas, ou thermal zones, pode ter mais de um ponto de acionamento (trip points).

Teoricamente, o governor térmico da ACPI deveria ter informações corretas do sistema para se basear no controle da temperatura do sistema. Mas isto nem sempre é verdadeiro.
O arquivo de configuração do thermald pode ser usado para corrigir e otimizar o comportamento do sistema.

Abaixo, segue um exemplo do arquivo de configuração:

<?xml version="1.0"?>


        Example Laptop
        *
        QUIET
        
                
                        pkg-temp-0
                        /sys/class/thermal/thermal_zone1/
                        1
                
        
        
                
                        cpu package
                        
                                
                                        pkg-temp-0
                                        80000
                                        passive
                                        PARALLEL
                                        
                                                1
                                                rapl_controller
                                                 50 
                                                 10 
                                        
                                        
                                                2
                                                intel_pstate
                                                 40 
                                                 10 
                                        
                                        
                                                3
                                                intel_powerclamp
                                                 30 
                                                 10 
                                        
                                        
                                                4
                                                cpufreq
                                                 20 
                                                 8 
                                        
                                        
                                                5
                                                Processor
                                                 10 
                                                 5 
                                        
                                
                        
                
        



Se você não sabe o que está fazendo, recomendo não alterar as configurações do thermald. Como já disse antes, ele funciona muito bem sozinho.
Uma vez alteradas as configurações, é necessário parar o serviço e reiniciá-lo:


systemctl restart thermald

Se quiser, é possível observar interativamente o funcionamento do thermald:


sudo service thermald stop
sudo thermald --no-daemon --loglevel=debug

Divirta-se! 😉

Referências

Ajuste a frequência da CPU com cpufreqd

O ajuste da frequência das CPUs pode ser feito com um pequeno aplicativo chamado cpufreqd.
Ele é um daemon e, portanto, roda nos bastidores e, se você deixá-lo quieto, irá fazer os ajustes automaticamente, de acordo com o seu perfil de uso do sistema.
De modo geral, permitir que o sistema faça os ajustes do clock da sua CPU é uma boa idéia.
cpu arm cortex a15 chip
Em alguns casos, contudo, pode ser necessário determinar o melhor ajuste arbitrariamente.
Para isto, podemos usar o cpufreqd.

Instalação do cpufreqd

Se o aplicativo não estiver instalado no seu sistema, use o apt-get (no Debian ou Ubuntu):

sudo apt-get install cpufreqd

No Fedora, use o yum:

yum install cpufreqd

Como executar o cpufreqd

Comece por verificar se os módulos necessários estão instalados:

sudo lsmod | grep cpufreqd

No meu sistema obtive o seguinte resultado:

cpufreq_powersave      12422  0 
acpi_cpufreq           17050  0 
processor              27590  1 acpi_cpufreq

É normal obter uma relação bem mais extensa do que a minha. O que importa é poder criar e usar perfis e regras de performance das CPUs.
O aplicativo cpufreqd, depende de um arquivo de configuração /etc/cpufreqd.conf, onde são fixados todos os seus parâmetros e opções de execução.
O arquivo se organiza em seções chamadas [General], [Profile] e [Rule] — Geral, Perfil e Regra.
Você pode criar perfis novos o quanto quiser. Uma boa idéia é copiar um existente e alterá-lo de acordo com suas necessidades.

Como verificar os governors (perfis) disponíveis

Verifique os governors (perfis) disponíveis no seu sistema:

sudo cpufreqd-get

O resultado deve ser semelhante a este (ele varia em função do modelo de processador que você tem no seu sistema):

Name (#1):	Performance High
Active on CPU#:	0, 1
Governor:	performance
Min freq:	1600000
Max freq:	1600000

Name (#2):	Performance Low
Governor:	performance
Min freq:	1333000
Max freq:	1333000

Name (#3):	Powersave High
Governor:	powersave
Min freq:	1066000
Max freq:	1066000

Name (#4):	Powersave Low
Governor:	powersave
Min freq:	800000
Max freq:	800000

Se você obtiver uma mensagem de erro como esta (abaixo):

No cpufreqd socket found

… veja como resolver:

  • Abra o arquivo de configuração do cpufreqd:
    sudo nano /etc/cpufreqd.conf

    em seguida remova os “#” das seguintes linhas:

    [General]
    pidfile=/var/run/cpufreqd.pid
    poll_interval=2
    verbosity=4
    #enable_remote=1
    #remote_group=root
    [/General]

    Agora grave (Ctrl + o) e feche o arquivo (Ctrl + x).

  • Reinicie o cpufreqd:
    sudo /etc/init.d/cpufreqd stop
    sudo /etc/init.d/cpufreqd start

    Se você obteve a seguinte mensagem, tudo deve estar bem, agora:

    [ ok ] Starting cpufreqd (via systemctl): cpufreqd.service.

Para ver o governor em execução, use o seguinte comando:

sudo cpufreqd-get -l

Novamente, o resultado depende da quantidade de CPUs que você tem no seu sistema:

CPU#0: "Performance High" performance 1600000-1600000

CPU#1: "Performance High" performance 1600000-1600000

Lembre-se: a primeira CPU é a de número 0, a segunda é 1 etc.

Como ajustar o governor do meu sistema

Se você não fizer nada, o sistema se ajustará de acordo com o seu perfil de uso.
Se quiser, contudo, você pode ajustar o sistema arbitrariamente.
Use o comando sudo cpufreqd-get para saber os números dos governors disponíveis: Name(#1), Name(#2) etc.
Para ajustar a CPU para seguir as regras do quarto governor da sua lista (name(#4) Powersave Low, no meu caso), o comando é este:

sudo cpufreqd-set 4

Use o comando cpufreqd-get para ver se houve a mudança.
Para voltar ao modo dinâmico, use o comando:

sudo cpufreqd-set dynamic

Como controlar a temperatura e a frequencia do processador no Ubuntu

Com o cpufreq, você regula a frequência do clock da CPU, controla o consumo da bateria e a temperatura do processador. Tudo isto, em um só aplicativo.
O programa não propõe nenhuma mágica — para atingir um objetivo, você vai ter que sacrificar outros, como irei mostrar no decorrer do texto.

Instale o cpufreq

Abra um terminal (Ctrl + Alt + T) e rode o seguinte comando:

sudo apt-get install cpufrequtils indicator-cpufreq

controlar a frequencia da CPU - ubuntuCom o comando acima, estamos instalando o utilitário cpufreq, o cpufreqd (é um daemon) e os indicadores, que vão ficar na barra superior da sua interface gráfica, de onde você poderá clicar e selecionar o modo de operação do processador.
Normalmente, após a instalação, não é necessário fazer nada. Contudo, se o novo indicador não aparecer, você pode carregá-lo manualmente, com o seguinte comando:

indicator-cpufreq &

Como reduzir a temperatura do processador

Em princípio, quanto mais alta a frequência, mais calor será produzido pela CPU. Portanto, para reduzir a quantidade de calor, basta reduzir a frequência da sua CPU. Se você usar o governor “moderado” ou “economia de energia”, também vai atingir este objetivo.

Como reduzir o consumo da bateria no notebook

Clique no ícone do indicator-cpufreq, na barra de status. O modo de economia de energia é o indicado para atingir este objetivo.
Se preferir, você pode apenas reduzir a frequência do clock da CPU — ao reduzir a frequência, o consumo de energia cai junto.
Se, por outro lado, você usar o maior clock disponível ou optar pelo governor de “desempenho”, prepare-se para ver a bateria ser drenada pelo processador — o que pode não ser um problema se você estiver com o notebook ou o desktop ligados à tomada.

Use os governors

Os governors são aquelas 4 últimas opções do menu do indicador:

  • Moderado — é um modo de uso conservador do processador. Ele ajusta gradualmente a frequência, de acordo com as necessidades do sistema. Ele tem a tendência a manter o processador em velocidades baixas e a subir devagar. Eu o indico para quem deseja economizar energia.
  • Sob demanda — tal como o anterior, ajusta a frequência do processador de acordo com as necessidades do sistema, só que ele é menos suave e demora menos nas escalas — e vai um pouco mais rápido aos valores mais altos.
  • Economia de energia — mantém a frequência da CPU nos valores mais baixos possível. Alguns administradores advertem (eu concordo) que, ao forçar o sistema a fazer o máximo dentro dos limites mais restritivos da CPU, você vai acabar aumentando o consumo de energia.
    Portanto, deve ser usado apenas quando você tiver certeza de que não haverá picos de demanda.
    Contudo, é a melhor opção para quem deseja manter a temperatura do processador baixa.
  • Desempenho — Responde agressivamente a qualquer demanda, elevando o clock do processador ao seu nível máximo. Ele é péssimo para quem está com problemas de superaquecimento ou dependendo exclusivamente da bateria.

LEIA MAIS!

Isto posto, use preferencialmente os governors, quando quiser deixar o próprio sistema determinar a frequência de clock mais adequada para realizar suas tarefas — isto é mais eficiente que determinar um clock de trabalho fixo pra sua CPU.