Posts relacionados a ‘

29Out07 Ajude o mundo com Linux :-)

Com esse título fica parecendo que sou um vendedor de bíblia, mas a intenção do post é mostrar como o Linux pode economizar energia. A idéia de economizar energia na indústria da computação está a cada dia mais em evidência, ainda mais com o aquecimento global afetando as nossas vidas. Com a economia de energia é possível reduzir custos nos data centers, aumentar a vida útil das baterias e diminuir os desgastes do hardware.

Diminuir os desgastes do hardware, como assim? Agora seu hardware não vai operar em capacidade máxima. Pode começar a operar em standby automaticamente e evitar aquecimento.

Eu comecei a me interessar pelo assunto quando conheci o projeto LessWatts.org, que é mantido pela Intel. Esse projeto tem uma excelente documentação, excelentes ferramentas (vide PowerTOP) para download e até patches que podem ser incorporados ao kernel para ajudar a economizar energia. O que eu achei legal foi a posição da Intel de lançar todo o projeto como código-aberto e não ficar fazendo jabá só para o seu hardware. Não é atoa que existem dicas que funcionam em todos os tipos de hardware.

Para facilitar o início de vocês a esse assunto compilei algumas dicas que gosto e que são fáceis de configurar - exceto a economia de energia do som, que envolve algumas informações avançadas. Para informações mais detalhadas, veja no final do post.

Wireless [1]

O Wi-Fi tem um protocolo chamado Power Save Poll protocol (PS-Poll), que foi desenvolvido para reduzir o tempo que o rádio precisa ficar ligado. O PS-Poll funciona de maneira simples: a placa wi-fi comunica com o access point informando que o rádio está desligado e assim o access point começa a segurar os pacotes que tem que enviar a placa wi-fi, que logo em seguida volta a colocar o seu rádio em funcionamento e o access point começa a enviar os pacotes que foram segurados. Isso tudo acontece em milésimos de segundos. Não consegui perceber perda de desempenho na comunicação entre os dispositivos.

Para ativar o PS-Poll, basta executar o comando abaixo:

iwpriv eth1 set_power 5

Onde o eth1 é a placa wireless (pode ser wlan0, eth0, etc) e o 5 define nível de economia de energia.

Processador [2]

A dica que eu vou dar agora é provavelmente a mais famosa e, na minha opinião, a mais interessante. Com Processor performance states (P-states) é possível alterar a freqüência da CPU para trabalhar com performance máxima ou sob demanda. Eu, atualmente, só conheço dois reguladores:

  • O ondemand que faz a freqüência da CPU trabalhar no mínimo e só aumentando de acordo com a demanda de processamento. Na minha opinião esse é o melhor regulador, porque faz com que ocorra menos aquecimento e economize mais energia :-).
  • O performance mantém a freqüência da CPU trabalhando no máximo. Faz o processador trabalhar mais rápido? Sim, mas consome bem mais energia e aquece mais o laptop.

Para alterar o regulador de freqüência da CPU para ondemand, basta executar o comando abaixo:

echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Para quem compila o próprio kernel, verifique se as configs abaixo estão setadas no .config:

CONFIG_CPU_FREQ
CONFIG_CPU_FREQ_GOV_ONDEMAND
CONFIG_X86_ACPI_CPUFREQ

Existem projetos como o Powersave, KPowersave e o GNOME Power Management, que fazem isso de forma automática e com algumas facilidades (hibernar, desligar o monitor, etc). Eu uso o KPowersave e afirmo que é muito bom.

Som [3]

Que impressionante! Até com a placa de som é possível economizar energia no Linux. Antes, eu quero deixar claro que essa dica só funciona em placas de som HDA-Intel.

As placas de som HDA-Intel vem com uma funcionalidade de economia de energia no hardware que funciona de maneira bem simples: quando a placa não está sendo usada ela se desliga sozinha e quando algum processo requisita o seu funcionamento ela volta ao normal. Simples não? :-)

Só que tem um problema, somente os drivers do kernel 2.6.24 vão vir com suporte a essa funcionalidade. Que pena, não? Mas eu criei um patch para resolver esse problema! Entrei no repositório do kernel, vi que o pessoal já havia implementado o suporte e então fiz um patch com todas as alterações que foram feitas no ALSA da revisão do kernel 2.6.23 até o dia 22/10/2007. Agora o driver da minha HDA-Intel está dando suporte a essa funcionalidade. :)

Eu não posso e nem quero me responsabilizar pela aplicação desse patch, mas no meu kernel 2.6.23 está funcionando perfeitamente. Aplicar o patch é muito simples, basta entrar na pasta que está o código-fonte do seu kernel, mover o patch para lá e executar o comando abaixo:

patch -p1 <update_alsa_2-6-23_20071022.patch

Pronto! Agora é só ativar o powersave no driver (make oldconfig) e compilar o kernel (make && make modules_install).

Se você tem alguma dica que considera legal não hesite em me mandar um e-mail (michel[sem-spam]milk-it.net) e/ou entrar em contato com o pessoal da LessWatts.org. Tenho bastante interesse em saber dicas de economia de energia da plataforma AMD, então, se você tem alguma me informe. Sei que a AMD se preocupa tanto quanto a Intel sobre esse assunto.

[1] Dicas detalhadas para Wireless
[2] Dicas detalhadas para processador
[3] Dicas detalhadas para placas de som

tags {, , }