sabato 7 novembre 2009

Guida all'Undervolt su Ubuntu 9.10

Questa nuova guida segue quella su Ubuntu 9.04 a questo link.



I passi per modificare i voltaggi del core alle varie frequenze sono i seguenti:

1 - Aggiungere il seguente repository e la chiave:
deb http://ppa.launchpad.net/linux-phc/ppa/ubuntu karmic main 
deb-src http://ppa.launchpad.net/linux-phc/ppa/ubuntu karmic main
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 12345678

2 - Installare il nuovo linux-image e linux-header:
sudo apt-get install linux-image-2.6.31-14-generic-phc linux-headers-2.6.31-14-generic-phc
Riavviate. Al riavvio il cambio di frequenza non funzionerà più. Non preoccupatevi continuate a seguire la guida.

3 - Scaricate il pacchetto phc-intel da seguente link, estraetelo e compiliamo il modulo:
$ cd phc-intel-0.3.2-8/
$ make prepare
$ make
$ sudo make install
Riavviare. Subito dopo il riavvio eseguire:
$ sudo modprobe phc-intel

4 - Modifichiamo i voltaggi di default
$ sudo chmod 777 /sys/devices/system/cpu/cpu0/cpufreq/phc_controls

$ cat /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
Questo comando vi permette di leggere "frequenza:voltaggio" esempio:
16:40 14:36 12:32 10:27 8:23 6:18

$ echo 16:xx 14:xx 12:xx 10:xx 8:xx 6:xx > /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
Questo comando vi permette di sovrascrive i valori dei voltaggi di default in relazione alle frequenze (sostituire il voltaggio al posto di xx, provare a cambiarli  gradualmente verso il basso). Se mettede dei valori troppo bassi il sistema si freeza ma non è un problema, riavviate e riprovate un valore più alto.

Sul mio portatile (Asus m6) i valori impostati sono stati:
16:15 14:11 12:9 10:7 8:6 6:0

5 - Settiamo i valori testati al punto precedente all'avvio
Creiamo un file in /etc/init.d/ per avviarlo allo start
$ sudo gedit /etc/init.d/phc

Aggiungiamo le seguenti righe:
#!/bin/bash
modprobe acpi-cpufreq
echo 16:xx 14:xx 12:xx 10:xx 8:xx 6:xx > /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Salvate il file ed eseguite i seguenti comandi:
$ sudo chmod 755 /etc/init.d/phc
$ sudo update-rc.d phc defaults
$ sudo /etc/init.d/phc start

Il gioco è fatto. Temperature abbattute soprattutto alle frequenze + alte.

31 commenti:

  1. Ciao, al make prepare ho questo errore

    FOUND AVAILABLE PATCHSET. PREPARING.
    ./prepare.sh: riga 10: patch: comando non trovato
    make: *** [prepare] Errore 127

    Sai dirmi il perchè?

    RispondiElimina
  2. Naturalmente non era installato il patch :)

    Thanks

    RispondiElimina
  3. Ciao,

    Il patch è un comando presente nel pacchetto build-essential. Installalo dal repository.

    RispondiElimina
  4. Ma il cambio frequenza poi torna a funzionare oppure dopo questa procedura non funziona più?

    RispondiElimina
  5. Torna a funzionare con in più la possibilità di scegliere il voltaggo per ogni frequenza

    RispondiElimina
  6. quando faccio sudo modprobe phc-intel ho il seguente errore:

    FATAL: Error inserting phc_intel (/lib/modules/2.6.31-16-generic-pae/extra/phc-intel.ko): Device or resource busy

    RispondiElimina
  7. Vedo che hai installato un kernel diverso dal mio.

    Comunque dovrebbe funzionare lo stesso ma non usare il 2.6.31-16-generic-pae ma il 2.6.31-16-generic-phc. Fammi sapere.

    RispondiElimina
  8. Ho riavviato e usato il phc...sempre solito errore

    FATAL: Error inserting phc_intel (/lib/modules/2.6.31-16-generic-phc/extra/phc-intel.ko): Device or resource busy

    RispondiElimina
  9. Ok ho riavviato, dato sudo modprobe phc-intel e nessun messaggio è uscito, giusto così oppure doveva comparire qualcosa? Ho modificato

    74:35 8:29 6:23
    in
    74:25 8:20 6:15

    RispondiElimina
  10. Ho rifatto la procedura con il kernel 2.6.31-16 e funziona correttamente. Mi sono accorto che manca il riavvio prima del comando sudo modprobe phc-intel. Lo aggiungo, grazie ad anonimo.

    RispondiElimina
  11. Di niente. C'è un modo per vedere il reale voltaggio della cpu? Ho un T6500 e uso lm_sensors ma il comando sensors mi restituisce solo questo:

    $ sudo sensors
    coretemp-isa-0000
    Adapter: ISA adapter
    Core 0: +34.0°C (high = +85.0°C, crit = +85.0°C)

    coretemp-isa-0001
    Adapter: ISA adapter
    Core 1: +34.0°C (high = +85.0°C, crit = +85.0°C)

    RispondiElimina
  12. Si c'è un modo. Scarica phctool. E' una piccola utility dove puoi effettuare alcune prove di voltaggio e ti da il riferimento reale. Non ricordo il link dove l'ho scaricato ma google ti darà sicuramente una mano.

    Ciao

    RispondiElimina
  13. Sei un grande, funziona!

    RispondiElimina
  14. Volendo volontariamente freezare il pc ho messo 74:0 8:0 6:0 su tutti e due i core (cpu0 e cpu1). Ho provato a mettere sotto stress la cpu con l'utility stress bloccando le frequenze a 2,10 - 1,60 - 1,20 e anche usando l'ondemand. Il sistema, con mio stupore, pare stabile anche con un calo drastico dei VIDs. Temperature visibilmente abbattute. Provo a tenere così...ma in teoria avendo fatto lo stress di entrambi i core e non avendo problemi di instabilità posso lasciare così no?

    RispondiElimina
  15. Strano che funzioni anche mettendo tutto a zero. Ma se hai fatto gli stress test e tutto è andato bene meglio così.

    Magari i voltaggi di quel processore erano alti per un esagerato grado di sicurezza.

    Cmq verifica se alle varie frequenze,soprattutto quelle alte, ti freeza. In quel caso dai un pò di più di voltaggio.

    RispondiElimina
  16. E' acceso da un giorno intero, ha avuto picchi dell'80% di uso della cpu al massimo della frequenza (2,1 ghz) e per ora pare stabile. Se noto instabilità alzo un po'!

    RispondiElimina
  17. Ciao, ho un problema nel seguire questa guida. Prima di tutto preciso che uso il kernel che hai segnalato di installare, non uno nuovo, ma su kubuntu 9.10, e il pacchetto phc-intel è il 0.3.2-9 (quello disponibile ora al link che hai postato). Tutto bene fino al "sudo modprobe phc-intel", che mi da questo errore:
    "FATAL: Error inserting phc_intel (/lib/modules/2.6.31-14-generic-phc/extra/phc-intel.ko): No such device"
    Non vrrà mica dire che il mio vecchio Core Duo E6750 non è supportato?
    Ciao e grazie da Izzy Fortune.

    RispondiElimina
  18. Ciao Izzy,

    Hotestatolaprocedura anchecon il kernel 2.6.31-16 quindi puoi provare anche con quello.
    Riguardo all'errore hai riavviato prima di lanciare il "sudo modprobe phc-intel"? Senza il riavvio da questo errore.

    Non vorrei fosse dovuto alla nuova versione del phc-intel ma mi sembra strano. Appena ho un pò di tempo la testo.

    Ciao

    RispondiElimina
  19. Il kernel 2.6.31-16, come il successivo, mi fa qualche casino nel mio sistema, per questo non lo uso. Scommetto che sono cose risolvibili, ma sinceramente il 2.6.31-14 (quello normale) mi funziona bene, e non vedevo il motivo di cambiarlo a tutti i costi.
    ***
    Sì, avevo riavviato. Anzi, due volte, per essere sicuro di non disturbarti per una cosa così stupida. Dopo riprovo, per essere davvero certo al mille per cento.
    ***
    Al limite posso provare io ad usare la vecchia versione del phc-intel. Però devo fare qualcosa per cancellare quella già installata?
    ***
    Avrei una curiosità: questo sistema di underclock va a modificare i settaggi del bios? Perché ho un dual boot con windows, e mi servirebbe mantenerlo in overclock, mentre tenere kubuntu a regimi normali o addirittura undercloccati, che tanto funziona bene anche così. I programmi per overclock di windows che ho provato mi andavano a cambiare proprio i parametri del bios, quindi di fatto modificandomi anche i parametri con cui avrebbe lavorato Kubuntu. Quello che mi servirebbe è modificare uno dei due sistemi ma solo a livello software, senza toccare il bios (che sarebbe settato per l'altro sistema). E anche per questo mi verrebbe il dubbio di come possa reagire la ram con i cambi di clock con il phc. Perché mentre il clock non incide su Kubuntu, la velocità della ram penso di sì. Tu cosa dici? Lascio perdere e carico i due profili direttamente dal bios?
    Ciao.

    RispondiElimina
  20. Salve,
    innanzitutto grazie per la guida.
    Ho lo stesso errore di Anonimo ma non ho capito come lui abbia risolto la cosa:
    FATAL: Error inserting phc_k8 (/lib/modules/2.6.31-17-generic/updates/kernel/arch/x86/kernel/cpu/cpufreq/phc-k8.ko): Device or resource busy

    Uso ubuntu da pochi giorni e non ho idea di come cambiare il kernel ne di cosa sia sinceramente, potresti darmi un aiutino per cortesia?

    Grazie,
    Simone.

    RispondiElimina
  21. Dimenticavo...
    ho seguito la procedura fino a quel punto ma per un processore amd con il pacchetto phc-k8 v.0.4.2

    RispondiElimina
  22. Per Izzy
    Prova la versione precedente del phctool. Non devi fare nulla per cancellare la precedente.

    Per Simone
    Purtroppo non ho come testare il pacchetto per processori amd dato che non ne ho nemmeno uno.

    Per entrambi
    Sicuri che dopo il riavvio avviate il kernel corretto? Cioè quello con la patch? Ovviamente se avviate il vecchio kernel non funzionerà mai il comado che vi da l'errore.

    RispondiElimina
  23. Grazie per la risposta,
    in effetti selezionavo il kernel sbagliato all'avvio perche' neanche sapevo di doverne scegliere uno sinceramente.
    Volevo farti una domanda su phctool, spero di non scocciarti. Credo di averlo installato ma non riesco proprio ad aprirlo,cioe' a vedere l'interfaccia. Ho provato con sudo run phctool.sh dal terminale e non funziona; poi ho provato a cliccare
    sul file phctool.sh e scegliere l'opzione run, sembrerebbe caricare qualcosa ma niente appare!
    I files nell'archivio scaricato per l'installazione non sono di nessuno aiuto, indicazioni criptiche e troppo brevi per me. La versione e' la 0.5.2-2.

    Se mi dai ancora una mano te ne sarei molto grato,
    ci sto perdendo la testa.

    Simone.

    RispondiElimina
  24. Il comando corretto è: ./phctool.sh
    Dovrebbe funzionare anche il doppio click sul file e scegliere run. Strano che non ti funzioni.

    Prova il comando che t ho detto e se ci sono problemi fammi sapere.

    Ciao
    Salvo

    RispondiElimina
  25. Grazie per rispondere sempre cosi' velocemente. Lanciato il comando ecco l'errore che ne esce:

    simone@simone-laptop:~/Documents/phctool$ ./phc-tool.sh
    bash: ./phc-tool.sh: No such file or directory
    simone@simone-laptop:~/Documents/phctool$ ./phctool.sh
    Traceback (most recent call last): File "./phctool.py", line 468, in
    app=appgui()
    File "./phctool.py", line 102, in __init__
    self.ShowPHCVIDs() ##display current VIDs
    File "./phctool.py", line 283, in ShowPHCVIDs
    columns = self.data[cpu]['frequencies'] ##define the amount of columns we'll use to display all data
    KeyError: 'frequencies'

    Devo forse prima settare quali frequenze usare con phc? Il processore in effetti resta fisso alla stessa frequenza.

    Saluti,
    Simone.

    RispondiElimina
  26. Ho provato ad usare il kernel 2.6.31-17 rifacendo tutta la procedura, riuscivo a vedere phctool finalmente ma non l'ho settato. Poi ho spento il computer e ora non si accende piu', parte poi prima del desktop schermo nero e bloccato.
    Formatto e provo con debian.

    Ciao,
    Simone.

    RispondiElimina
  27. Ciao Simone

    Scusa ma sono stato un pò indaffarato.

    Sembra strano quello che ti è successo. Quello che ti posso dire è che quando ho iniziato ad utilizzare linux, nel particolare ubuntu,avrò formattato il pc non so quante volte. Solo sbagliando si impara ad utilizzarlo.

    Cmq prova debian, alla fine è la mamma di ubuntu. Grazie per avere seguito il mio post.

    Saluti
    Salvo

    RispondiElimina
  28. al momento di fare sudo modprobe phc-intel mi restituisce
    FATAL: error insterting phc-intel (lib/modules/2.6.31.14-generic-phc/extra/phc-intel.ko): no such device

    Premetto che ho riavviato (3 volte) e seleziono sempre il kernel modificato (phc)... come posso fare?
    La cpu è una Pentium4 3ghz di un vecchio portatile... non è che non è supportato l'undervolt?
    Help, please...

    RispondiElimina
  29. Ciao Maurizio,

    ma la cpu supporta nativamnente lo scaling di frequenza? Ovvero in base al carico alta e abbassa la frequenza della cpu?

    Mi sa che i pentium4 non supportino tale modalità quindi neanche l'undervolt.

    RispondiElimina
  30. sinceramente non saprei dirti... credo che abbia una funzione di 'energy saving' per quando funziona(va) a batteria (ora la batteria è rotta e funziona sempre con l'alimentatore) ma non so dirti se era una funzione basata su undervolt o underclock...

    RispondiElimina