Public feed
#891880
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