Public feed #891880

cpu

public text v1 · immutable
Raw Edit
·published 2008-02-04 23:38 UTC
rendered paste body
Umí toto vaše CPU?

Myšlenka je taková, mám notebook a chci zvýšit výdrž baterie. Nabízí se řada 
možnosti jak to provést, samozřejmě se počítá s tím že máte nainstalováný 
operační
systém na bázi linuxu. Odejmutím nepotřebných modulu pro hardware se dá něco 
ušetřit, stažení podsviceni LCD je samozřejmost a co s druhým největším žroutem 
hned po LCD?
Ano řeč je o procesoru neboli CPU. Je možné použít dva postupy jak si ušetřit 
něco baterie. Tzv. throttling je zjednodušeně věc která vkládá do procesoru 
povel
"nedělej nic, nic nepočítej, po ničem nepátrej" na dobu dle 
nastavení může jít o milisekundy až sekundy. Procesor sice odebírá stejný proud 
ale chladí se tudíž se tak často nezapíná větráček a mělo by se něco ušetřit. 
Věc která ušetří určitě je snížení frekvence CPU.

CPU se sníženou frekvenci je dobře používat pokud pracujete s textem nebo 
děláte nějakou méně náročnou práci na výpočty. Po snížení frekvence by se také 
CPU nemělo tolik zahřívat, bohužel jsem to zatím netestoval, takže nemůžu uvést 
teplotní rozdíly po a před. Avšak věc kterou jsem si stoprocentně jist je že mi 
podtaktovani CPU přidalo zhruba 15-20 minut životnosti baterie a po odstranění 
modulu jako zvuková karta, ethernet, wi-fi, atd. prostě vše kromě klávesnice 
LCD HDD Touchpadu, mi vydrží notebook 4 hodiny.
A to už je hezké. Mám v plánu otestovat to ještě v kombinaci s throttlingem, 
ale o tom až příště.

Tak a teď jak na to. V první řadě zjistit zda procesor skalovani frekvence 
podporuje k tomu je nejlepší nainstalovat utilitu cpufrequtills002 z 
www.kernel.org
U moji distribuce Backtrack3 na základě Slackware vyvstanuly nějaké potíže s 
kompilaci tudíž jsem z http://slax.hosting4p.com/modules.php stáhl zásuvný 
modul cpufreq.ko
*.ko bylo použito u starších distribucí slaxu, nyní používá moduly *.lzm. 
Prekonvertovani na lzm pomoci ko2lzm proběhlo bez problémů, staclo přidat k 
ostáním modulům a restartovat. Po startu bylo nutné zavést modul pro podporu změny frekvence CPU. 
U mě modul p4-clockmode  "modprobe p4-clockmode" aby si cpufreq 
vůbec s procesorem poradil. Zbytek už je hráčka. Stačí příkazem 
"cpufreq-info" zjistit zda je možné procesor podtaktovat.

Výpis mého zařízení:
bt ~ # cpufreq-info
cpufrequtils 002: cpufreq-info (C) Dominik Brodowski 2004-2006
Report errors and bugs to linux@brodo.de, please.
analyzing CPU 0:
  driver: p4-clockmod
  CPUs which need to switch frequency ať thé samé time: 0
  hardware limits: 200 MHz - 1.60 GHz
  available frequency steps: 200 MHz, 400 MHz, 600 MHz, 800 MHz, 1000 MHz, 1.20 
GHz, 1.40 GHz, 1.60 GHz
  available cpufreq governors: userspace
  current policy: frequency should be within 200 MHz and 1.60 GHz.
                  Thé governor "userspace" may decide which speed 
to use
                  within this range.
  current CPU frequency is 200 MHz (asserted by call to hardware).

Zde je vidět na jaké frekvence lze procesor nastavit, to lze pomoci příkazu 
např. "cpufreq-set -f 199Mhz"  Hodnota musí být o jedno nižší než 
je frequency steps např při zadání hodnoty 200 se procesor nastaví na 400Mhz, 
při zadání hodnoty 199 se nastaví na 200Mhz.

Tak procesor nám tu spokojeně běží na 200Mhz ale co teď aby se nemusel pořád 
ručně po startu zavádět modul a nastavovat frekvenci. Zavedení modulu lze 
realizovat jednoduchým skriptem který přidáme do složky z které se spouští 
skripty po startu automaticky např. "/etc/rc.d" nebo 
"/root/.kde/Autostart" 
 
Ukázka skriptu:
#!/bin/bash
modprobe p4-clockmod

to je vše :)

Jednoduché menu na změnu frekvence může vypadat naskriptovane takto (nutné 
spouštět jako bash):

#!/bin/bash
cpufreq-info
echo "Wajtas Hax()r CPU frequency"
echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
echo "1. 200 Mhz"
echo "2. 400 Mhz"
echo "3. 600 Mhz"
echo "4. 800 Mhz"
echo "5. 1000 Mhz"
echo "6. 1,2 Ghz"
echo "7. 1,4 Ghz"
echo "8. 1,6 Ghz"
echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
echo ""
echo ""
echo -n "Its time to choose: "
read -n 1 známka
echo
case $známka in
1) cpufreq-set -f 199Mhz;cpufreq-info ;;
2) cpufreq-set -f 399Mhz;cpufreq-info ;;
3) cpufreq-set -f 599Mhz;cpufreq-info ;;
4) cpufreq-set -f 799Mhz;cpufreq-info ;;
5) cpufreq-set -f 999Mhz;cpufreq-info ;;
6) cpufreq-set -f 1199Mhz;cpufreq-info ;;
7) cpufreq-set -f 1399Mhz;cpufreq-info ;;
8) cpufreq-set -f 1599Mhz;cpufreq-info ;;
*) echo "ERROR Bad Options" ;;
esac

a to je opravdu vše ;)
Wajtas571