PDA

View Full Version : Centrino undervolting con Linux


Trym
27-11-2006, 15:00
ciao a tutti


ho appena messo linux, mandriva 2007, anche sul portatile, che monta un pentium m 740,

visto che su windows uso notebook hardware control per gestire i voltaggi e la frequenza del processore vorrei fare la stessa cosa sul pinguino, così per abbassare le temperature e aumentare l'autonomia delle batterie

per la frequenza non ho problemi perchè linux ha già installato le cose necessarie, ora il problema riguarda i voltaggi per i vari step del processore


san google sta volta non ha fatto miracoli perchè ho trovato sì alcune cose ma che non ho capito molto



qualcuno sa come aiutarmi?

Trym
28-11-2006, 12:42
su


ma almeno è una operazione fattibile anche se ho poca esperienza col pinguino?

Trym
02-12-2006, 21:16
bene, chi fa da se fa per tre :sofico:

mi sono buttato nel provare quel che dice qua (https://www.dedigentoo.org/trac/linux-phc/) , ho ricompilato il kernel seguendo una delle tante guide che ho trovato con google, e ora ho un kernel che mi permette di cambiare i voltaggi del processore



volendo i moderatori penso possano spostare la discussione nella sezione portatili :)

CARVASIN
02-12-2006, 22:58
Spiega come hai fatto magari :)

Più che nella sezione portatili si potrebbe spostare in quella dei newbies ;)
Grazie

Ciao!

Trym
03-12-2006, 16:12
Da premettere, ciò che ho fatto funziona solo con con i Pentium M (Centrino), e limitatamente con i Core Duo

Allora, partendo dall'inizio, il mio portatile ha un autonomia di "default" di 2 ore, in windows sono riuscito a portarla a 3 ore abbassando il vcore e il clock del processore

Per abbassare il vcore in linux ho trovato LinuxPHC (https://www.dedigentoo.org/trac/linux-phc/) , una patch per il kernel di Linux grazie alla quale si possono modificare i voltaggi del processore
Per avere questa funzionalità è necessario ricompilare il kernel.

Quindi per prima cosa da http://www.kernel.org/ ho scaricato il kernel, nel mio caso il 2.6.17-5, e l'ho scompattato in /usr/src/linux
cioè se il file era p.es sul desktop, da root

mv linux-2.6.17.5.tar.gz /usr/src/linux
cd /usr/src
tar -xvvzf linux-2.6.17.5.tar.gz

Poi da Qui (http://sourceforge.net/project/showfiles.php?group_id=161063) si può scaricare la patch,
all'interno del file si possono trovare le diverse patch per i kernel a partire dal 2.6.15
quindi se anche questo file era sul desktop, ci portiamo nel Desktop e poi

tar -xvvzf linux-phc-0.2.8.tar.gz
cd linux-phc-0.2.8/kernel-patch

e si copia il file nella cartella del source code di linux

cp linux-phc-0.2.8-kernel-vanilla-2.6.17.patch /usr/src/linux
cd /usr/src/linux

ora si applica la patch

patch -p1 < linux-phc-0.2.4-kernel-vanilla-2.6.17.patch

NB: nn applicare questa patch su un kernel già patchato in questo precedentemente


Dopodichè ho seguito questa (http://www.cyberciti.biz/tips/compiling-linux-kernel-26.html) semplice guida per compilare il kernel il kernel
facendo attenzione a quanto scritto nella documentazione forita con la patch
cioè:


┌───────────────────────── CPU Frequency scaling ─────────────────────────┐
│ Arrow keys navigate the menu. <Enter> selects submenus --->. │
│ Highlighted letters are hotkeys. Pressing <Y> includes, <N> excludes, │
│ <M> modularizes features. Press <Esc><Esc> to exit, <?> for Help, </> │
│ for Search. Legend: built-in [ ] excluded <M> module < > │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ CPU Frequency scaling │ │
│ │ Enable CPUfreq debugging │ │
│ │ <*> CPU frequency translation statistics │ │
│ │ CPU frequency translation statistics details │ │
│ │ Default CPUFreq governor (performance) ---> │ │
│ │ --- 'performance' governor │ │
│ │ <*> 'powersave' governor │ │
│ │ <*> 'userspace' governor for userspace frequency scaling │ │
│ │ <*> 'ondemand' cpufreq policy governor │ │
│ │ <*> 'conservative' cpufreq governor │ │
│ │ --- CPUFreq processor drivers │ │
│ │ < > ACPI Processor P-States driver │ │
│ │ < > AMD Mobile K6-2/K6-3 PowerNow! │ │
│ │ < > AMD Mobile Athlon/Duron PowerNow! │ │
│ │ < > AMD Opteron/Athlon64 PowerNow! │ │
│ │ < > Cyrix MediaGX/NatSemi Geode Suspend Modulation │ │
│ │ <*> Intel Enhanced SpeedStep │ │
│ │ Userspace control of CPU frequency/voltage table │ │
│ │ Use ACPI tables to decode valid frequency/voltage pairs │ │
│ │ Built-in tables │ │
│ │ Built-in tables for Banias CPUs │ │
│ │ Built-in tables for Dothan CPUs │ │
│ │ Built-in tables for Sonoma CPUs │ │
│ │ < > Intel Speedstep on ICH-M chipsets (ioport interface) │ │
│ │ < > Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface) │ │
│ │ < > Intel Pentium 4 clock modulation │ │
│ │ < > nVidia nForce2 FSB changing │ │
│ │ < > Transmeta LongRun │ │
│ │ < > VIA Cyrix III Longhaul │ │
│ │ --- shared options │ │
│ │ [ ] /proc/acpi/processor/../performance interface (deprecated) (NE│ │
│ └─────────────────────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────────────┤
│ <Select> < Exit > < Help > │
└─────────────────────────────────────────────────────────────────────────┘


Dopo aver riavviato col nuovo kernel facendo questo da konsole
cat /sys/devices/system/cpu/cpu0/cpufreq/op_points_table

dovrebbe darvi le accoppiate frequenza/voltaggio

per es. da me dopo averli già abbassati:
cat /sys/devices/system/cpu/cpu0/cpufreq/op_points_table
1733000:956,1333000:844,1067000:764,800000:700


Per cambiare i voltaggi basta sovrascrivere i valori tra i ":" e le virgole, nel mio caso

echo "1733000:956,1333000:844,1067000:764,800000:700" > /sys/devices/system/cpu/cpu0/cpufreq/op_points_table



Per trovare i voltaggi più bassi che il mio sistema può reggere ho usato quelli che già avevo trovato con windows
altrimenti qui (http://gentoo-wiki.com/HOWTO_Undervolt_a_Pentium_M_CPU) ci sono un pò di esempi

midian
04-06-2007, 18:33
ciao anche io ho un dual core duo,e ubuntu 6.06, ma il processore non scala di frequenza, come fare?

31337

Trym
04-06-2007, 19:04
ciao anche io ho un dual core duo,e ubuntu 6.06, ma il processore non scala di frequenza, come fare?

31337

per la frequenza?

mhm dovrebbe esserci già cpufreqd per questo