Gerenciamento de energia/Guia
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.
- 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:
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]
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
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:
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
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:
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 é.
## 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
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:
- A seção
[General]...[/General]
contém informações gerais de configuração. - 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. - 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.
[...]
[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
- Página oficial Laptop Mode Tools Homepage, incluí Sobre laptop mode.
- PowerTOP, um aplicativo interativo que ajuda os usuários a descobrir quais processos estão utilizando os recursos da CPU com mais frequência.
- Um artigo do ThinkWiki Como reduzir o consumo de energia (no Linux). Este artigo oferece uma lista exaustiva de medidas que podemos tomar. No entanto, deve-se notar que o laptop mode tools implementa a maioria delas (se configuradas corretamente).
Referências
- ↑ Dominik Brodowski. Intel P-State driver, CPU frequency and voltage scaling code in the Linux(TM) kernel. Recuperado em 12 de junho de 2016.