DISCLAIMER: NON MI ASSUMO ALCUNA RESPONSABILITA' PER EVENTUALI DANNI / MALFUNZIONAMENTI ARRECATI AL VOSTRO DISPOSITIVO.
La seguente guida è basata su alcune guide esterne (guida Travis90 e guida di schwarzerkreuz) da cui ho preso spunto e da esperienze personali.
L'underclock del dispositivo è volto a ridurre le frequenze del processore durante alcune fasi e pertanto procedere ad una riduzione del consumo della batteria. La guida l'ho realizzata utilizzando SetCPU essendo uno dei programmi che ho trovato abbastanza funzionali a questo scopo.
Effettuare l'underclock sul nostro dispositivo non vuol dire tagliare da tutte le parti ma cercare di limare pian pianino e capire il settaggio migliore. Al momento della redazione della guida io stesso sono ancora alla ricerca della "ricetta" giusta.
La guida e i settaggi sono stati realizzati con la seguente configurazione: kernel Feacore 1.4, Rom UCM 2.3.6, UI Tweaks e Powersave.
Premetto questo in quanto in base alla configurazione del dispositivo cambieranno anche alcuni parametri tra cui le frequenze disponibili, i governor della cpu e la presenza/assenza della schermata Voltage.
Aprendo SetCPU vi chiederà di rilevare la frequenza. Scegliete "rilevazione automatica delle frequenze". Se avete bisogno di accedere a questa schermata nuovamente, premere il tasto Menu nella scheda Principale di SetCPU, quindi scegliere "Device Selection".
Nel caso il kernel che avete installato non supporti il rilevamento automatico potete comunque sceglierne uno che si avvicini al vostro. Dopo la schermata di introduzione, è possibile ottenere le autorizzazioni richieste da Superuser.
Veniamo alle schede.
Main screen:
La frequenza bianca corrisponde all'utilizzo attuale del processore da parte del cellulare.
Al di sotto troverete l'attuale governor impostato e i cursori che gestiscono la massima e minima frequenza utilizzata durante l'uso normale del cellulare.
Gli scaling governor gestiscono la rapidità con cui il processore passerà dalla frequenza minima alla massima in base alla richiesta delle applicazioni.
Di seguito vi riporto alcuni degli scaling governor più comuni:
- ondemand - presente praticamente in tutti i kernel gestisce con una buona rapidità la richiesta di maggior uso della cpu da parte delle applicazioni. Appena la richiesta cessa ha una buona capacità nel calare altrettanto rapidamente;
- conservative - presente anch'esso nella stragrande maggioranza dei kernel agisce allo stesso modo dell'ondemand, ma scala la frequenza della cpu più gradualmente passando per frequenze intermedie (se ve ne sono) tra la minima e la massima. Risulta meno reattività rispetto all'ondemand, ma risparmia un po' di più la carica della batteria;
- performance - come i precedenti è presente quasi in tutti i kernel. Manterrà la cpu costantemente al valore massimo impostato nel profilo (o nella schermata principale). Questo governor è più reattivo rispetto ai precedenti in quanto non spreca risorse scansionando quali applicazioni richiedono l'uso della cpu e non si deve aspettare lo scaling della frequenza. Ovviamente però consumerà maggiormente la batteria. E' consigliato per fare eventuali benchmark sulle prestazioni del telefono;
- powersave - disponibile su alcuni kernel, mantiene il processore alla frequenza minima impostata;
- smartass - è un governor presente in alcuni kernel. Si potrebbe definire un incrocio tra l'ondemand e il powersafe in quanto tende a tenere basso l'uso della cpu escludendo l'uso di servizi non essenziali. All'interno del kernel Feacore è presente lo smartassV2 che è ovviamente la versione aggiornata al quale è stato integrato la compatibilità relativa allo screen off.;
Il comando Set on boot fa si che le nostre impostazioni vengano caricate durante il boot del telefono.
Profili:
La scheda dei profili serve alla realizzazione di differenti impostazioni che si attiveranno in base all'utilizzo del vostro telefono. Ad esempio sarà possibile un determinato range di frequenze da utilizzare durante le chiamate o quando il telefono sarà di standby a schermo spento.
Gli usi prevedono:
- Durante il caricamento (Charging);
- Durante il caricamento dall'alimentatore (Charging AC);
- Durante il caricamento tramite presa USB (Charging USB);
- Quando il telefono è in standby a schermo spento (Screen off);
- Quando la batteria è inferiore ad una determinata percentuale (Battery <);
- Quando la temperatura del processore è superiore ad un determinato grado (Temp >);
- Durante un determinato lasso di tempo (Time);
- Durante le chiamate (In call);
Nell'elenco non è presente l'opzione per l'uso "normale" in quanto la frequenza del processore viene regolata da quanto impostato nella schermata iniziale o in base alle priorità come vi spiegherò tra poco.
Cliccando su "Add Profile" vi si aprirà questa schermata
Con la pima tendina andrete a selezionare una delle voci che vi ho elencato prima. In base alla voce che selezionerete alcuni parametri cambieranno (es. se sceglierete la Time si aggiungeranno le caselle per l'orario).
Successivamente dovrete impostare la frequenza minima e massima del profilo e la priorità di esecuzione.
La priorità dei profili stabilisce quale priorità avranno uno rispetto all'altro. I profili inoltre si attivano se le condizioni a loro attribuite si verificano.
Faccio un esempio: se avete la batteria al 17%, state usando il cellulare e avete impostato un profilo con una frequenza tra 122 mhz e 768mhz con priorità 50 che si attiva al di sotto del 20% il vostro telefono funzionerà col range indicato. Ma se avete impostato un secondo profilo per il display spento con frequenza tra 122 mhz e 245 e con priorità 60, appena il telefono andrà in standby sarà quest'ultimo ad attivarsi e si disattiverà automaticamente quello per la batteria scarica.
In sostanza i profili si attivano solo se sono presenti determinate condizioni. Se il telefono è carico e nessun profilo corrisponde alle attuali condizioni esso risponderà a quanto impostato nella schermata iniziale.
Per i profili relativi alla batteria si consiglia una priorità maggiore a quelli con percentuali basse rispetto a quelli con percentuali di carica più elevate (es. batteria < 16% priorità 60, batteria < 51% priorità 30).
Advanced:
Qui possono essere effettuate alcune impostazioni volte a migliorare ulteriormente la reattività dei diversi governor.
Troverete i seguenti campi:
- Sampling Rate - è l'intervallo di tempo in microsecondi in cui il governor decide di aggiornare "la situazione" facendo quindi variare verso l'altro e verso il basso la frequenza del processore. Ad un valore basso corrisponde maggiore reattività!
- Up Threshold - è una percentuale da 1% a 100%. Quando la "richiesta di prestazioni" da parte delle app e dei servizi raggiunge questo punto, il governor scala la frequenza in su aumentando la frequenza.
- Down Threshold (solo nella modalità conservative ) - funziona nel medesimo modo dell'Up Threshold ma in modo inverso, calando la frescenza al diminuire delle richieste.
- Ignore Nice Load - Se questo valore è impostato ad "1", il sistema ignora i "Nice" processes quando si decide di scalare verso l'alto o verso il basso.
Nota sui "Nice"
Questa scheda purtroppo ho verificato personalmente che non funziona correttamente con tutti i kernel. Con la Feacore se si modificano i parametri, una volta cambiato il governor tramite i profili i dati ritornano alle impostazioni iniziali.La priorità di un processo è determinata con una formula complessa che comprende ciò che il processo sta facendo e per quanto tempo ha già usato la CPU. Un numero speciale, chiamato il "numero di "Nice" o semplicemente "Nice", pregiudica questo calcolo: più basso è numero di nice di un processo, maggiore è la sua priorità, e più è probabile che sarà eseguito.
Sulla maggior parte delle versioni di UNIX, i numeri di Nice sono limitati da -20 a +20. La maggior parte dei processi sono pari a 0. Un processo con un numero di Nice di 19 probabilmente partirà quando il sistema sarà quasi completamente inattivo, allo stesso modo, un processo con un numero di Nice di -19 probabilmente anticiperà ogni altro processo dell'utente nel sistema.
Probabilmente con un altro kernel questo problema non si presenta.
Come accennavo prima con alcuni kernel i cambiano/spariscono alcune impostazioni. Infatti nei kernel Feacore manca completamente la pagina per il settaggio dei voltaggi in quanto non supportano HAVS o SVS.
Mi è stato anche riferito che nella versione OC cambiano e aumentano le frequenze che si possono impostare.
Info:
All'interno di questa schermata troverete molti dei normali riferimenti che danno anche altre app. Verso la fine della scheda si trovano 4 tipi di test che si possono effettuare dall'app: short bench, long bench, native bench e stress test.
Oltre a queste funzioni la cosa che trovo più interessante è il "Time in State". Cliccando su questa funzione ci mostrerà la torta relativa all'utilizzo delle frequenze mostrandoci quanto vengono effettivamente utilizzate.
Conclusioni:
Nella guida non do consigli su come impostare le frequenze in quanto come detto all'inizio le frequenze possono cambiare da kernel a kernel, in base alla rispondenza delle rom e soprattutto in base alle esigenze dei singoli.
Quello che vi consiglio è andare avanti a piccoli passi vedendo come reagisce il vostro telefono e tenendo sott'occhio i tempi di scarica della batteria prima e dopo le modifiche.
Datevi tempi lunghi. Non pensate di trovare la "combinazione" giusta alla prima modifica e fate poche variazioni alla volta altrimenti non riuscirete a capire cosa di ciò che avete cambiato ha migliorato o peggiorato le prestazioni.
Spero di esservi stato utile.