Regolare il minimo alla CPU su Mandriva 2009.1

Guides, tutorials & docs
Post Reply
User avatar
astragalo
Collaboratore
Collaboratore
Posts: 663
Joined: 7 December 2007, 18:29
ROSA: Rosa R11.1
OpenMandriva: -
Kernel: 4.15.xx
Desktop: Plasma5
country: Italia

Regolare il minimo alla CPU su Mandriva 2009.1

Post by astragalo »

Ciao a tutti, questa guida è un aggiornamento di una vecchia guida per la 2008.1 che con l'installazione della 2009.1 mi è tornata nuovamente utile, magari lo sarà anche per voi.
Nel dettaglio vedremo come poter modificare la frequenza minima della CPU.
Questa guida è sconsigliata a chi non conosce bene l'argomento trattato non tanto per la difficoltà di esecuzione, che è veramente bassa, ma perchè si va ad agire su un controllo dell'hardware molto delicato
Perché può essere utile la guida?
Beh principalmente per due motivi,il primo è poter decidere quale è la frequenza minima del processore, infatti il settaggio di default può non essere un soddisfacente compromesso tra consumo, calore dissipato, durata della batteria e prestazioni minime necessarie.
Il secondo è quello in cui il pc abbia dei problemi a lavorare alla frequenza minima impostata di default.

Veniamo a noi ora andrò a descrivere il mio caso per far capire di cosa stiamo parlando e cosa andiamo a fare.

Tutto è cominciato con l'istallazione della 2009.1 con mia grande sorpresa ho notato un attivarsi “anomalo” della ventola. Indagando ho notato che la frequenza minima dellla CPU veniva settata a 700Mhz (meta della frequenza massima) i gradini della gestione del mio processore sono da 175Mhz a partire appunto da 175Mhz per arrivare a 1400Mhz.
Come si può vedere nel file:

Code: Select all

/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
Per verificare la frequenza attuale della cpu basta usate il comando:

Code: Select all

[root@localhost]$cat /proc/cpuinfo
Mi sono ricordato che con la 2008.1 avevo avuto problemi per una settaggio troppo basso e mi son detto “vediamo se funziona ancora quella soluzione”.

Per farla breve volevo riportare il settaggio minimo a 350Mhz come sulla 2008.1.

La frequenza della CPU è regolata da alcuni file temporanei posti in:

Code: Select all

/sys/devices/system/cpu/cpu0/cpufreq
in questa directory troviamo i diversi file dai nomi abbastanza eloquenti.

Quello che interessa noi è:

Code: Select all

scaling_min_freq
in questo file viene riportata la frequenza minima di lavoro del processore nel mio caso era 700000(dovrebbero essere Khz).

La modifica di questo file presenta alcune difficoltà.
La prima è che bisogna farlo da root, la seconda è che essendo un file temporaneo non è modificabile da comandi tipo sed & c., la terza è che ad ogni riavvio viene ricreato da zero invalidando eventuali modifiche fatte.

Ora lo scopo prefissato è fare in modo che la frequenza minima venga settata a 350Mhz senza dover intervenire manualmente a tutti i riavvi.

Per prima cosa creiamo un file di testo a cui daremo il nome:

Code: Select all

scaling_min_freq
per crearlo va benissimo kwrite, e l'unica cosa che ci scriveremo dentro sara:

350000

Ora creiamo in /opt una nuova cartella di nome mio:

Code: Select all

[root@localhost]#mkdir /opt/mio/
e copiamoci dentro il file di testo appena creato:

Code: Select all

[root@localhost ]#cp /home/mia_home/scaling_min_freq /opt/mio/
Adesso abbiamo preparato tutto quello che occorre manca solo l'esecutore dell'operazione, per questo creeremo un servizio che si occupi di sovrascrivere ad ogni avvio il file scaling_min_freq con quello da noi preparato e messo in /opt/mio.
Ho deciso di usare un servizio in modo da poterlo disabilitare dal Centro di Controllo senza troppi problemi

Per creare il servizio facciamo così apriamo un editor, kwrite va benissimo e creiamo un file di testo dal nome cpu_freq_min, con questo contenuto:

Code: Select all

#!/bin/sh
#
#/etc/init.d/cpu_freq_min
#Subsystem file for nomefile
#
#chkconfig: 5 99 99
#description: Imposta la frequenza minima della CPU.
#
#processname: filename

cp -f /opt/mio/scaling_min_freq /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

exit 0

RETVAL=$?
exit $RETVAL
Questo servizio va copiato in /etc/init.d:

Code: Select all

[root@localhost ]#cp /home/mia_home/cpu_freq_min /etc/init.d/
e non fa altro che sovrascrivere il file scaling_min_freq grazie all'opzione -f di cp.

Il file appena copiato va reso eseguibile

Code: Select all

[root@localhost ]#chmod 755 /etc/init.d/cpu_freq_min
e va linkato in rc5.d

Code: Select all

[root@localhost ]#ln -s /etc/init.d/cpu_freq_min /etc/rc5.d/S99cpu_freq_min
In alternativa si puo usare il comando “chkconfig”.

A questo punto il gioco è fatto ed al riavvio successivo la frequenza minima verrà fissata a 350Mhz.

Ovviamente i settaggi vanno adattati alle proprie esigenze ma a questo punto mi pare abbastanza facile da fare, l'importante è rimanere nei parametri del proprio processore.

Questo è tutto spero vi possa essere utile.

A presto, Astragalo.
L'erba cattiva non muore mai!!! ;)
:D :D :D

Post Reply