Gerenciamento de energia no Linux

Gerenciamento de energia no Linux
Você saberia dizer qual é o aplicativo mais usado atualmente, considerando todas as categorias de aplicativos existentes, incluindo os jogos e aplicativos profissionais? Se você respondeu que é o Word, ou o OpenOffice, errou, o aplicativo mais usado ainda é o jogo de paciência (em suas várias versões), competindo com os navegadores.

Apesar dos processadores estarem cada vez mais poderosos, a maioria dos usuários passa o dia rodando aplicativos leves, ou jogando paciência, utilizando apenas uma pequena parcela do poder de processamento do micro.

Prevendo isso, quase todos os processadores atuais oferecem recursos de economia de energia, que reduzem a freqüência, tensão usada, ou desligam componentes do processador que não estão em uso, reduzindo o consumo enquanto o processador é sub-utilizado.

Naturalmente, estes recursos de gerenciamento também podem ser ativados no Linux. Vamos a um resumo das opções disponíveis.

O primeiro passo é instalar o pacote “powernowd“, o daemon responsável por monitorar o processador, ajustando a freqüência e recursos de acordo com a situação. Nas distribuições derivadas do Debian, instale-o via apt-get, como em:

# apt-get install powernowd

No Ubuntu e Kubuntu o comando é o mesmo, você deve apenas ter o cuidado de descomentar a linha referente ao repositório “Universe” dentro do arquivo “/etc/apt/sources.list”.

No Mandriva, instale-o usando o comando “urpmi powernowd”. No Fedora e outras distribuições que não o incluam nos repositórios padrão, você pode instalar a partir do pacote com os fontes, disponível no: http://www.deater.net/john/powernowd.html.

O powernowd trabalha em conjunto com um módulo de kernel, responsável pelo trabalho pesado. O módulo varia de acordo com o processador usado:

speedstep-centrino: Este é o módulo usado por todos os processadores Intel atuais, incluindo todos o Core Solo, Core Duo, Pentium M e Pentium 4 Mobile. A exceção fica por conta do Celeron M (veja mais detalhes abaixo), que tem o circuito de gerenciamento desativado.

powernow-k8: Este é o módulo usado pelos processadores AMD de 64 bits (tanto os Athlon 64, quanto os Turion), que oferecem suporte ao PowerNow!. O driver também oferece suporte aos Semprons, que oferecem uma opção mais limitada de gerenciamento.

powernow-k7: Antes do Athlon 64, a AMD produziu diversas versões do Athlon XP Mobile, uma versão de baixo consumo destinada a notebooks. Este módulo dá suporte a eles. No caso dos Athlons e Durons antigos, você pode usar o “athcool”, que apresento mais adiante.

longhaul: Este módulo dá suporte aos processadores Via C3, baseados no core Nehemiah. Ele é encontrado em placas mãe mini-ITX e em alguns notebooks.

Para ativar o powernowd, você começa carregando o módulo “acpi” (caso já não esteja carregado), seguido do módulo “freq_table” (que obtém a lista das frequências suportadas pelo processador) e um dos 4 módulos que descrevi acima. A partir daí a base está pronta e o powernowd pode ser finalmente ativado.

Se você usasse um Athlon 64, por exemplo, os comandos seriam:

# modprobe acpi
# modprobe freq_table
# modprobe powernow-k8
# /etc/init.d/powernowd restart

Para um Core 2 Duo, os comandos seriam os mesmos, mudando apenas o módulo referente ao processador. Ao invés do “powernow-k8”, seria usado o “speedstep-centrino”:

# modprobe acpi
# modprobe freq_table
# modprobe speedstep-centrino
# /etc/init.d/powernowd restart

Ao instalar o pacote do powernowd, ele ficará configurado para ser carregado durante o boot. Mas, ainda falta fazer com que o sistema carregue os módulos necessários. Para isso, adicione a lista dos módulos no final do arquivo “/etc/modules” (sem o “modprobre”), como em:

acpi
freq_table
powernow-k8

Você pode acompanhar a freqüência de operação do processador através do comando “cpufreq-info“. Caso ele não esteja disponível, procure pelo pacote “cpufrequtils” no gerenciador de pacotes.

$ cpufreq-info
cpufrequtils 002: cpufreq-info (C) Dominik Brodowski 2004-2006
Report errors and bugs to linux@brodo.de, please.
analyzing CPU 0:
driver: powernow-k8
CPUs which need to switch frequency at the same time: 0
hardware limits: 1000 MHz – 2.00 GHz
available frequency steps: 2.00 GHz, 1.80 GHz, 1000 MHz
available cpufreq governors: powersave, performance, userspace
current policy: frequency should be within 1000 MHz and 2.00 GHz.
The governor “userspace” may decide which speed to use
within this range.
current CPU frequency is 1000 MHz (asserted by call to hardware).

Neste exemplo, estou usando um Athlon 64 3000+, que opera nativamente a 2.0 GHz. Apesar disso, o processador suporta também 1.8 e 1.0 GHz (com variações na tensão usada). O chaveamento entre as três frequências é feito de forma muito rápida, de acordo com a carga de processamento exigida. Na maior parte do tempo, o processador trabalha a apenas 1.0 GHz, onde consome menos de 10 watts (algo similar a um Pentium 133).

O fato da freqüência de operação do processador nunca cair abaixo de 1.0 GHz e o chaveamento entre as freqüências ser muito rápido, faz com que seja realmente difícil de perceber qualquer diferença de desempenho com o gerenciamento ativado ou desativado.

Ao usar um notebook, você pode ativar também os perfis de performance do cpufreq. Eles permitem que você escolha o perfil de gerenciamento a utilizar, alternando entre eles conforme desejado.

Para isso, carregue também os três módulos abaixo, usando o modprobe:

cpufreq_ondemand
cpufreq_performance
cpufreq_powersave

Adicione-os também no final do arquivo “/etc/modules”, de forma que sejam carregados durante o boot.

Originalmente, você alternaria entre eles usando o comando “cpufreq-set -g”, o que, convenhamos, não é uma opção muito prática.

Mas, se você usa o KDE, pode configurar o Klaptop, de forma a alternar entre eles clicando no ícone da bateria. Para isso, clique com o botão direito sobre o ícone da bateria ao lado do relógio e acesse a opção “Configurar Klaptop”:

index_html_173e8f03

Dentro da janela, acesse a aba “Configurar ACPI” (a última) e clique no botão “Definir Aplicação Auxiliar”. Forneça a senha de root, e, de volta à janela principal, marque todas as opções e clique no “Aplicar”:

index_html_2f8a5851

Para alternar entre os perfis de performance, clique com o botão direito sobre o ícone da bateria e clique na opção desejada dentro do menu “Perfil de Performance”. No modo “powersave” o processador prioriza a autonomia da bateria, mantendo o processador na freqüência mínima e demorando mais tempo para subir a freqüência de operação, enquanto o modo “performance” é o oposto:

index_html_481a54bc

Uma observação é que em alguns casos o cpufreq pode ajustar incorretamente a freqüência máxima de operação do processador, fazendo com que ele opere um degrau abaixo da freqüência máxima.

Num HP NX6310, com um Core Duo T2300E (1.66 GHz) que testei, ele mantinha a freqüência do processador sempre a no máximo 1.33 GHz, ao invés de 1.66 GHz. Para corrigir o problema manualmente, usei o comando:

# cpufreq-set –max 1670000

O número indica a freqüência máxima do processador (em khz, por isso o monte de zeros), corrigindo o problema.

Finalmente, chegamos ao caso do Celeron M, que é a exceção à regra. Embora seja baseado no mesmo núcleo do Pentium M, ele tem o circuito de gerenciamento desativado, de forma a não concorrer diretamente com os processadores mais caros. Trata-se de uma castração intencional, que não pode ser revertida via software.

Você até pode reduzir a freqüência de operação do processador usando o cpufreq-set (como em “cpufreq-set -f 175000”, que força o processador a trabalhar a 175 MHz). O comando é executado sem erros e usando o comando “cpufreq-info” ele realmente informa que o processador está trabalhando a 175 MHz. Porém, esta informação é irreal. Na verdade o que acontece é que o processador continua funcionando na freqüência máxima, porém inclui ciclos de espera entre os ciclos usados para processar instruções. Ou seja, no Celeron M, o que o comando faz é simplesmente limitar artificialmente o desempenho do processador, sem com isto reduzir de forma substancial o consumo. Ao forçar uma freqüência baixa, o notebook vai ficar extremamente lento, mas vai continuar esquentando quase da mesma maneira e a carga da bateria durando praticamente o mesmo tempo.

No caso dos notebooks baseados no Celeron M, as únicas formas de realmente economizar energia de forma considerável são reduzir o brilho da tela e desativar o transmissor da placa wireless. A idéia da Intel é justamente que você leve para casa um Pentium-M ou Core Duo, que são seus processadores mais caros.

Uma última dica é com relação aos Athlons e Durons antigos, que não são compatíveis com o powernowd. No caso deles, você pode usar o athcool, que utiliza instruções HLT e outros recursos disponíveis para reduzir o consumo e aquecimento do processador.

Usá-lo é bastante simples, basta instalar o pacote e rodar o comando:

# athcool on

Para desativar, use:

# athcool off

Na hora de instalar, procure pelo pacote “athcool”, que é encontrado em todas as principais distribuições. Se ele não estiver disponível, você pode também recorrer à opção de baixar o pacote com o código fonte, disponível no: http://members.jcom.home.ne.jp/jacobi/linux/softwares.html

O athcool funciona perfeitamente em mais de 90% dos casos, mesmo em algumas das piores placas da PC-Chips. Entretanto, em algumas placas, o athcool pode causar irregularidades no som (deixando o áudio cortado), ou ao assistir vídeos. Algumas poucas placas travam quando ele é ativado e, embora muito raro, ele pode causar perda de arquivos se usado em algumas placas com o chipset SiS 640, como a Asus L3340M.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X