Il sistema qui proposto si basa su uno script talmente banale che sono stato in grado di crearlo io stesso, che sono tutt'altro che esperto, ed è in grado di funzionare su tutti i Desktop Environment, su tutte le distro e su tutti i computers. L'unico prerequisito è disporre di un processore che supporti lo scaling.
Lo usavo pure sul mio defunto portatilone (sia pace alla CPU sua!), che, è bene precisarlo, non è passato a miglior vita proprio a causa dello script! :-D
Tuttavia, se vi esplode il pc, non sarò considerato io il responsabile!
Creiamo lo script
La prima cosa da fare è aprire un editor di testo qualunque e copiarvi il seguente testo:
Come si può notare, esso non fa altro che modificare ricorsivamente lo scaling della CPU, facendolo passare, ogni volta che viene lanciato, da ondemand ad conservative a powersave, per poi tornare a ondemand e riprendere il ciclo.
Ho usato solo questi tre governors, poiché sono quelli che uso, ma, se volete, non vi sarà difficile aggiungere gli altri disponibili, che potrete conoscere dando il sequente comando:
Un'altra cosa che potete cambiare agevolmente è l'icona che compare nella notifica. Io ho scelto /usr/share/icons/gnome/32x32/devices/ac-adapter.png, ma, se ne trovate una migliore...
A proposito: per avere le notifiche, accertatevi di aver installato notify-osd!
I passaggi successivi saranno salvare nella nostra home il file di testo con il nome cpusel (o altro di vostro gradimento), renderlo eseguibile e spostarlo in /usr/bin:
#!/bin/bash # # by Doc # released under GPL state=`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor` if [ "$state" = "ondemand" ] ; then sudo cpufreq-set -c 1 -g conservative sudo cpufreq-set -c 0 -g conservative DISPLAY=:0.0 /usr/bin/notify-send "CPUFreq: Conservative" -i "/usr/share/icons/gnome/32x32/devices/ac-adapter.png" 2>/dev/null elif [ "$state" = "conservative" ] ; then sudo cpufreq-set -c 1 -g powersave sudo cpufreq-set -c 0 -g powersave DISPLAY=:0.0 /usr/bin/notify-send "CPUFreq: Powersave" -i "/usr/share/icons/gnome/32x32/devices/ac-adapter.png" 2>/dev/null elif [ "$state" = "powersave" ] ; then sudo cpufreq-set -c 1 -g ondemand sudo cpufreq-set -c 0 -g ondemand DISPLAY=:0.0 /usr/bin/notify-send "CPUFreq: Ondemand" -i "/usr/share/icons/gnome/32x32/devices/ac-adapter.png" 2>/dev/null fiEsaminiamo un attimo lo script!
Come si può notare, esso non fa altro che modificare ricorsivamente lo scaling della CPU, facendolo passare, ogni volta che viene lanciato, da ondemand ad conservative a powersave, per poi tornare a ondemand e riprendere il ciclo.
Ho usato solo questi tre governors, poiché sono quelli che uso, ma, se volete, non vi sarà difficile aggiungere gli altri disponibili, che potrete conoscere dando il sequente comando:
$ cpufreq-infoTramite questo stesso comando, è anche possibile conoscere il numero di CPU possedute. Negli Atom il processore è uno, ma, a causa del cosiddetto hyper-threading, è visto come due. Se la situazione del vostro pc è diversa, non dovrete far altro che aggiungere le righe corrispondenti "sudo cpufreq-set blablabla", tenendo presente che la numerazione comincia da 0 e che quindi, se avete ad esempio 4 processori, dovrete contare fino a 3. Consiglierei inoltre di mettere i cpufreq-set in ordine decrescente, come nel mio script.
Un'altra cosa che potete cambiare agevolmente è l'icona che compare nella notifica. Io ho scelto /usr/share/icons/gnome/32x32/devices/ac-adapter.png, ma, se ne trovate una migliore...
A proposito: per avere le notifiche, accertatevi di aver installato notify-osd!
I passaggi successivi saranno salvare nella nostra home il file di testo con il nome cpusel (o altro di vostro gradimento), renderlo eseguibile e spostarlo in /usr/bin:
$ cd ~ $ chmod +x cpusel $ sudo mv cpusel /usr/bin
Diamo all'utente i permessi per eseguire lo script
Lo script è già perfettamente funzionante, ma deve essere lanciato da terminale, poiché richiede i permessi di amministratore. Se quindi vogliamo poterlo utilizzare anche a livello utente, dobbiamo dare a quest'ultimo tutti i necessarii permessi. Operiamo:
$ sudo visudoed aggiungiamo, nei punti corrispondenti, quanto segue:
# Cmnd alias specification Cmnd_Alias CPUSEL = /usr/bin/cpusel, /usr/bin/cpufreq-set ... ... # User privilege specification root ALL=(ALL) ALL nome_utente ALL = (ALL) ALL, NOPASSWD: CPUSELsostituendo nome_utente con il nome con cui vi loggate.
Aggiungiamo una scorciatoia da tastiera dedicata
Oramai, il nostro script sarà lanciabile da terminale, ma non richiederà più la password di sudo. Tuttavia, e qui ringrazio l'amico Milozzy che me ne ha fatto venire l'idea (ebbene, sì: per mesi e mesi l'ho lanciato da terminale!!!), possiamo crearci una comoda combinazione da tastiera per lanciare lo script ogni qual volta ci serva. Io uso windows+f, ma voi potete scegliere quella che preferite!
Le modalità con cui creare questa scorciatoia dipendono dal Desktop Environment che utilizzate ed esulano dai limiti di questa guida.
Le modalità con cui creare questa scorciatoia dipendono dal Desktop Environment che utilizzate ed esulano dai limiti di questa guida.
---------------------------------
by Doc, last modified 11 December 2010
| Powered by Bluefish |
Nessun commento:
Posta un commento