terça-feira, 3 de junho de 2008

scaling back @ celeron m 5XX !

Consegui devolver o scaling aos celeron m da serie 500.

mas primeiro, o que é scaling?

É uma técnica usada pelo sistema operacional em conjunto com o processador para controlar o clock do processador (clock nesse caso = velocidade). Em cpu pentium m, core, core2 isso já é padrão... em CPU celeron a fabricante retirou o suporte via Hardware desta tecnologia, logo, por mais que não seja necessário, o computador estará trabalhando na velocidade máxima (leia, gastando energia, sem produzir nada, digo mais, totalmente CONTRA o Green Computing), com o scaling ativado e mais precisamente, setado em 'ondemand', o computador se auto-ajustará para o menor clock necessário para você não sentir lentidão no que está sendo trabalhado e com isso, irá economizar bateria do seu notebook, ou mesmo, lhe fazar pagar uma conta de luz mais barata, note que em processadores pentium m, core e core2 além de abaixar o clock, também abaixa a voltagem que o processador recebe, no caso do celeron, nem com isso que eu fiz a voltagem abaixará, portanto um cpu core2 economiza mais energia por ter isso. (*mas por ser duas cores consome mais, omg e agora? no final consome mais ou menos? não sei, um dia eu testo isso :P*)

Ativar o scaling via software para o celeron m é bem simples, num terminal do linux digitar:

$ sudo modprobe p4-clockmod

Se não aparecer nenhuma mensagem de erro, ótimo :P é normal que "aparentemente" não aconteça nada ao digitar isto.

o proximo passo agora seria mudar o scaling_governor para um que não mantenha o cpu sempre no máximo (eu recomendo o ondemand), e é assim que se faz isso:

$ echo ondemand | sudo tee -a /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

para saber o clock que o cpu está no momento, basta escrever:

$ cat /proc/cpuinfo | grep MHz (note que o MH são em maiúsculos).

Isso tudo acima seria muito bonito, se o p4-clockmod suportasse o celeron m da serie 500 =P (o serie 300, e 400 suporta normalmente, eu mesmo já usei isso num 380.)

ok, então como resolver isto?
bom, para os usuarios de: Celeron M serie 500, ubuntu hardy com kernel 2.6.24 basta seguir minhas instruções.

abrir um console(terminal) e digitar:

$ sudo su

aptitude install linux-ubuntu-modules-`(uname -r)`
(vai downloadear os modulos para sua versão do kernel, siga adiante quando terminar)

$ cd /lib/modules/2.6.24-17-generic/kernel/arch/x86/kernel/cpu/cpufreq/
(ps, seu kernel pode não ser o -17, modifique se precisar)

$ rm p4-clockmod.ko
$ wget http://launchpadlibrarian.net/14874674/p4-clockmod.ko
(depois posto um link próprio.)

$ sudo modprobe p4-clockmod
(daqui pra baixo é repetindo o inicio do post).

$ echo ondemand | sudo tee -a /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Quem não usa o ubuntu, tem um post no launchpad que tem as informações necessárias para outras distros, notem que lá no fim eu postei esse meu módulo já compilado.

Nenhum comentário: