Gerenciamento de energia/Guia

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Power management/Guide and the translation is 100% complete.


Nos últimos anos, o gerenciamento de energia se tornou um diferencial na busca pelo laptop perfeito. No entanto, o sistema operacional também deve suportar as várias funcionalidades de economia de energia. Este guia cobre a configuração de um sistema Gentoo para gerenciar recursos de energia de maneira flexível e automatizada.

Article status
This article has some todo items:
  • Adicione instruções para configurar o kernel. Drivers de frequência restantes da CPU

Introdução

Sobre esse documento...

Este documento descreve a configuração dos recursos de gerenciamento de energia para laptops. Embora algumas das informações contidas neste guia possam ser aplicadas ao gerenciamento de energia de servidores, não é a intenção deste documento seguir esse caminho. Tenha cuidado ao aplicar isso em um sistema que não seja de laptop.

Dentro deste documento, o foco principal estará nas ferramentas do modo laptop, pois oferece um conjunto completo de funcionalidades. No entanto, também nos referiremos a outras ferramentas que podem oferecer uma abordagem mais detalhada sobre configurações individuais. Nesses casos, o recurso das ferramentas do modo laptop deve ser desativado para que ambas as ferramentas não brigem pelo mesmo controle de recursos.

Sobre o laptop_mode

A configuração laptop_mode é uma configuração no kernel que otimiza a E/S, permitindo que os discos girem corretamente (e não sejam acordados imediatamente depois para operações na fila).

Sobre o laptop-mode-tools

O "Laptop Mode Tools" é um pacote de software (app-laptop/laptop-mode-tools) que permite ao usuário otimizar funções de economia de energia. Ele permite gerenciar a configuração do modo laptop no kernel do Linux, mas possui recursos adicionais que permitem ajustar outras configurações relacionadas a energia no sistema.

Configuração do kernel Linux

Configuração mínima do kernel

Existem diferentes fontes do kernel no Portage sys-kernel. Nós recomendamos usar o sys-kernel/gentoo-sources, mas, se o suporte a hibernação avançada for desejado, TuxOnIce pode ser necessário.

Para ativar os recursos adequados de gerenciamento de energia no kernel Linux, habilite as seguintes configurações:

KERNEL Configuração mínima do kernel para Gerenciamento de energia
Power management and ACPI options --->
  -*- Device power management core functionality
  [*] ACPI (Advanced Configuration and Power Interface) Support --->
    <*> AC Adapter
    <*> Battery
    -*- Button
    -*- Video
    <*> Fan
    <*> Processor
    <*> Thermal Zone
  
  [*] CPU Frequency scaling --->
        Default CPUFreq governor (ondemand)  --->
    -*- 'performance' governor
    <*> 'powersave' governor
    <*> 'userspace' governor for userspace frequency scaling
    -*- 'ondemand' cpufreq policy governor
    <*> 'conservative' cpufreq governor
    <*> ACPI Processor P-States driver

Selecionando o driver de frequência da CPU

Intel P-state

Para séries mais recentes de processadores Intel Core (baseadas na microarquitetura Sandy Bridge ou superior), use o driver P-state da Intel.

Nesse caso, os modos de governo userspace, ondemand, e conservative são desnecessários. O governo performance deve ser selecionado como o padrão. [1]

KERNEL Configuração do kernel para Intel Sandy Bridge e processadores mais recentes
Power management and ACPI options --->
  -*- Device power management core functionality
  [*] ACPI (Advanced Configuration and Power Interface) Support --->
    <*> AC Adapter
    <*> Battery
    -*- Button
    -*- Video
    <*> Fan
    <*> Processor
    <*> Thermal Zone
  
  [*] CPU Frequency scaling --->
        Default CPUFreq governor (performance)  --->
    -*- 'performance' governor
    <*> Intel P state control

Habilitando drivers adicionais

Para processadores Intel usados em laptops desde 2011, convém ativar recursos avançados adicionais - Thermal e powercap sysfs.

Driver sysfs thermal

KERNEL Generic Thermal sysfs driver
Device Drivers --->
  -*- Generic Thermal sysfs driver --->
    (0)   Emergency poweroff delay in milli-seconds                                                                              
    [*]   Expose thermal sensors as hwmon device                                                                                
    -*-   Enable writable trip points                                                                                          
          Default Thermal governor (step_wise)  --->                                                                           
    [*]   Fair-share thermal governor                                                                                           
    -*-   Step_wise thermal governor                                                                                            
    -*-   Bang Bang thermal governor                                                                                            
    -*-   User_space thermal governor                                                                                           
    [ ]   Thermal emulation mode support
    [*]   Power allocator thermal governor   
    <M>   Intel PowerClamp idle injection driver
    <M>   X86 package temperature thermal driver
    < >   Intel SoCs DTS thermal driver                                                                                          
          ACPI INT340X thermal drivers  --->                                                                                     
             <M> ACPI INT340X thermal drivers
    <M>   Intel PCH Thermal Reporting Driver

Driver sysfs powercap

Adicionalmente, você pode ativar Running Average Power Limit – RAPL technology. Os utilitários PowerTOP e turbostat estão cientes do RAPL. Para uso de ativação RAPL:

KERNEL Driver sysfs powercap sysfs genérico
Device Drivers --->
  [*] Generic powercap sysfs driver --->
    <M>   Intel RAPL Support

Para usar o Linux thermal daemon da Intel [1], primeiro você precisa emerge sys-power/thermald e ativá-lo via:

root #rc-config add thermald

ou

root #systemctl enable thermald
Nota
dptfxtract da Intel pode ser usado para gerar automaticamente um thermald.conf.xml para o sistema.

Finalização da configuração do kernel

Para uma descrição de configuração mais detalhada, consulte o artigo Power management/Processor#Kernel.

Construa e instale um novo kernel(se nescessário) e reinicie.

Usando Laptop Mode Tools

Instalação

Não é surpresa que a instalação do software Laptop mode tools seja feita via:

root #emerge --ask app-laptop/laptop-mode-tools

No entanto, este pacote assume configurações adicionais opcionais através da configuração do sinalizador USE. Então, vamos primeiro dar uma olhada nas bandeiras USE suportadas e no que elas significam para o pacote.

Sinalizador USE Descrição Sugerido quando...
acpi Depende de sys-power/acpid para que as alterações no sistema sejam capturadas e os recursos de economia de energia sejam ativados/desativados automaticamente. o laptop não é muito antigo (por volta do ano 2003 ou após).
apm Depende de sys-apps/apmd para que as alterações no sistema sejam capturadas e os recursos de economia de energia sejam ativados/desativados automaticamente. o laptop é muito antigo.
bluetooth Depende de net-wireless/bluez , permite que laptop-mode-tools gerencie as configurações de bluetooth (ativando/desativando o serviço com base na disponibilidade da bateria) o laptop (e o kernel) suporta bluetooth.
scsi Depende de sys-apps/sdparm ,

permite que laptop-mode-tools gerencie os parâmetros de disco SCSI ( e não SATA).

o laptop usa discos SCSI.

Observe que existem dois sinalizadores USE que parecem colidir: acpi e apm. Então, qual é o problema?

  • O sinalizador USE apm habilita suporte para Gerenciamento de Energia Avançado , um padrão mais antigo (antes do ano 2000) para recursos de gerenciamento de energia em um sistema.
  • O sinalizador USE acpi habilita suporte para Configuração Avançada e Interface de Energia , o sucessor do APM. Todos os laptops modernos suportam ACPI.

Dependendo do sistema, será necessário definir acpi ou apm. No restante deste guia, supõe-se que o laptop seja recente o suficiente para usar o ACPI.

Portanto, com o conjunto de sinalizadores USE, instale o laptop-mode-tools:

root #emerge --ask app-laptop/laptop-mode-tools

Configuração

Tendo o laptop-mode-tools instalado no sistema, não ativa automaticamente os recursos de gerenciamento de energia que podem ser necessários. Para configurar o pacote, primeiro dê uma olhada em /etc/laptop-mode/laptop-mode.conf. Este é o arquivo de configuração principal do pacote e é muito bem descrito (através de comentários).

Mas não é o único arquivo de configuração para trabalhar. O pacote laptop-mode-tools suporta plugins (ou módulos) que possuem seus próprios arquivos de configuração. Esses arquivos estão localizados em /etc/laptop-mode/conf.d e têm o nome do módulo que representam (como, por exemplo, intel-sata-powermgmt.conf).

Agora, uma das configurações importantes em cada arquivo de configuração é se o pacote laptop-mode-tools deve governar uma configuração específica ou não. Isso é importante ao combinar laptop-mode-tools com outros serviços de gerenciamento de energia, como cpufreqd. Neste caso de exemplo, CONTROL_CPU_FREQUENCY=0 deve ser definido:

FILE /etc/laptop-mode/conf.d/cpufreq.conf
CONTROL_CPU_FREQUENCY=0

As próximas seções ajudarão o usuário a configurar o laptop-mode-tools para atender a necessidades específicas. Quando terminar, inicie o serviço laptop_mode e verifique se ele foi iniciado na inicialização do sistema.

Com OpenRC:

root #rc-service laptop_mode start
root #rc-update add laptop_mode default

Com systemd:

root #systemctl enable laptop-mode.service --now

Como o laptop-mode-tools funciona

Ao executar o serviço laptop_mode, o software verificará em qual estado o sistema está. Os estados são definidos como:

  • Battery, que está ativo quando o sistema está funcionando com energia da bateria; os arquivos de configuração usam o prefixo BATT_ para configurações relacionadas a esse estado;
  • AC, que está ativo quando o sistema está em execução com energia AC; os arquivos de configuração usam o prefixo AC_ para configurações relacionadas a este estado;
  • Laptop Mode, que está ativo quando o laptop_mode está ativado; os arquivos de configuração usam o prefixo LM_ para configurações relacionadas a este estado;
  • No Laptop Mode, que está ativo quando o laptop_mode está desativado; os arquivos de configuração usam o prefixo NOLM_ para configurações relacionadas a este estado.

Os prefixos AC/BATT_ e LM/NOLM_ podem ser combinados para ter um prefixo AC_LM_.

Quando o serviço laptop_mode é iniciado, ele alterna os modos com base nos eventos que ocorrem (e, é claro, com base nas configurações). Por exemplo, a configuração ENABLE_LAPTOP_MODE_ON_BATTERY=1 garantirá que as ferramentas do modo laptop mudem para laptop mode quando a energia da bateria é usada. Se for esse o caso, as configurações começam com LM_, LM_BATT_, BATT_LM_, e BATT_ será usado.

Para garantir que as configurações não colidam, não é permitido que haja configurações sobrepostas. No próximo exemplo, o primeiro conjunto (para CPU_MAXFREQ) é válido, mas o segundo (para CPU_MINFREQ) não é.

CODE Configurações de colisão
## Conjunto válido
BATT_CPU_MAXFREQ=fastest
LM_AC_CPU_MAXFREQ=fastest
NOLM_AC_CPU_MAXFREQ=fastest
  
## Conjunto inválido
BATT_CPU_MINFREQ=fastest
LM_AC_CPU_MINFREQ=fastest
# O seguinte inclui AC and BATT, mas BATT já está definido
NOLM_CPU_MINFREQ=fastest

Configurando o gerenciamento de frequência da CPU

O suporte ao gerenciamento de frequência da CPU no laptop mode tools permite alternar frequências. Ele suporta a definição do regulador de frequência da CPU, frequência mínima e frequência máxima. O arquivo de configuração usado aqui é /etc/laptop-mode/conf.d/cpufreq.conf

O governador de frequência da CPU é uma política no nível do kernel que define como o kernel selecionará a frequência da CPU. Já selecionamos os governadores que queremos usar na configuração do kernel anteriormente. Vamos recapitular:

  • performance sempre escolhe a frequência mais alta;
  • powersave sempre escolhe a frequência mais baixa;
  • userspace não escolhe nada, mas permite que o usuário decida (ou qualquer processo que o usuário esteja executando que decida para o usuário);
  • ondemand escalará a frequência da CPU até a frequência mais alta quando a carga estiver disponível;
  • conservative aumentará a frequência da CPU gradualmente quando a carga estiver disponível.

Ao alternar entre o modo AC ou battery ou (não) laptop mode, o governador apropriado (bem como sua frequência mínima e máxima) é selecionado.

Configurando o brilho da tela

Com /etc/laptop-mode/conf.d/lcd-brightness.conf, o laptop mode tools pode controlar o brilho da tela LCD.

O arquivo atualmente usa o arquivo /proc/acpi/video/VID/LCD/brightness (bug 499544) para definir valores de brilho. Versões recentes do kernel não fornecem mais isso; precisará ajustar isso para /sys/class/backlight/acpi_video0/brightness em vez disso.

Os valores possíveis que podem ser usados estão entre 0 e o valor em /sys/class/backlight/acpi_video0/max_brightness, sendo 0 o menor valor de brilho.

Configurando outros serviços

Um recurso interessante do laptop-mode-tools é o suporte a recarga de serviços específicos (como o registrador do sistema) após alternar seu arquivo de configuração. Isso é tratado em /etc/laptop-mode/conf.d/configuration-file-control.conf

Se ativado, o aplicativo laptop_mode alternará os arquivos de configuração dos serviços mencionados com o mesmo arquivo, mas com o sufixo -nolm-ac , -lm-ac ou -batt. Em seguida, sinalizará ou recarregará os serviços apropriados para que eles possam usar o novo arquivo de configuração.

Usando o cpufreqd

Aviso
O pacote sys-power/cpufreqd está depreciado e pode ser removido da árvore do Portage. sys-power/ncpufreqd ainda pode ser usado 2.6.x kernels.

Instalação

A aplicação cpufreqd permite que o usuário gerencie frequências da CPU em uma abordagem mais granular ao qual o laptop mode tools suporta. Mas antes de mergulharmos na instalação de cpufreqd, vamos primeiro olhar para os sinalizadores USE que ele suporta.

Sinalizador USE Descrição Sugerido quando...
acpi Habilita suporte para ACPI, permitindo que cpufreqd seja notificado sobre eventos específicos bem como governar a energia através da interface ACPI o laptop não é muito antigo (por volta do ano 2003 ou após)
apm Habilita suporte para APM, permitindo que cpufreqd seja notificado sobre eventos específicos bem como governar a energia através da interface APM o laptop é muito antigo
lm_sensors Habilita suporte para os sensores de hardware Linux (através sys-apps/lm_sensors), permitindo alternar perfis com base nos resultados do sensor de hardware usando eventos avançados através de lm_sensors
nforce2 Habilita suporte para NForce, permitindo que cpufreqd altere a frequência do relógio e da placa de vídeo NForce FSB está presente em uma placa gráfica NVidia baseada no chipset NForce
nvidia Habilita o suporte para configuração gráfica da placa NVidia (através da interface NVidia nvclock ), permitindo que cpufreqd altere a frequência da placa de vídeo das placas gráficas NVidia uma placa gráfica NVidia está presente
pmu Habilite o plug-in da unidade de gerenciamento de energia cpufreqd. Isso permite que o software pesquise a interface da fonte de alimentação do kernel Linux, obtendo informações mais detalhadas sobre a carga da bateria o laptop não suporta ACPI ou APM

Os sinalizadores USE acpi, apm, e pmu se sobrepoem, então apenas um deve estar ativo. Se o laptop for suficientemente recente, acpi é a melhor aposta. Se não, apm é a melhor aposta. Se não, apm oferece tudo o que é necessário. Quando nem o APM é suportado, tente usar o pmu.

Com o sinalizador USE configurado, chegou a hora de instalar o cpufreqd.

root #emerge --ask cpufreqd

Configuração

A aplicação cpufreqd monitora o status do sistema através de vários plugins. Com base no feedback recebido desses plugins, ele ajustará a política usada para governar a frequência da CPU.

cpufreqd pode ser configurado editando /etc/cpufreqd.conf. Ele contém três seções diferentes:

  1. A seção [General]...[/General] contém informações gerais de configuração.
  2. A seção [Profile]...[/Profile] define as políticas para as quais o daemon cpufreqd pode mudar. A seção é muito semelhante às informações usadas ao definir manualmente a política de frequência da CPU usando o conjunto cpufreq.
  3. A seção [Rule]...[/Rule] é o cavalo de batalha do daemon cpufreqd, definindo quando o daemon decide mudar para um perfil diferente.

Dê uma olhada rápida em uma regra de exemplo.

FILE /etc/cpufreqd.confExemplo de regra cpufreqd
[...]
  
[Profile]
name=On Demand High
minfreq=40%
maxfreq=100%
policy=ondemand
[/Profile]
  
[Rule]
name=AC Off - High Power
ac=off
battery_interval=70-100
profile=On Demand High
[/Rule]
  
[...]

No exemplo acima, cpufreqd mudará o sistema para o perfil On Demand High (também mostrado no trecho acima). Esse perfil, por si só, usa o governador on demand com uma frequência mínima de 40% (ou seja, uma CPU de 2 GHz terá por essa política uma frequência mínima de 800 MHz).

A aplicação cpufreqd pode oferecer uma abordagem mais granular na escala de frequência da CPU. Mas não apenas isso, mas a escala de frequência da CPU pode ser aprimorada com base em várias outras métricas disponíveis. A configuração padrão oferece uma regra de amostra: quando um filme é assistido, o desempenho máximo é desejado (a menos que a temperatura da CPU esteja ficando muito alta).

Enquanto o cpufreqd foi configurado, é hora de iniciá-lo (e verificar se o serviço foi carregado automaticamente). Verifique se o manuseio da frequência da CPU por outras ferramentas (como laptop mode tools) está desativado!

root #rc-update add cpufreqd default
root #/etc/init.d/cpufreqd start

Veja também

Recursos externos

Referências

  1. Dominik Brodowski. Intel P-State driver, CPU frequency and voltage scaling code in the Linux(TM) kernel. Recuperado em 12 de junho de 2016.