AGGIORNAMENTO 21/08/2009: Avevo dimenticato di indicare quale governator della CPU usare :) Aggiunto in fondo. Modificate inoltre le informazioni riguardo hdparm: leggete ATTENTAMENTE prima di applicare le modifiche! Non mi assumo la responsabilità di danni derivanti dalla poca ponderatezza delle vostre azioni :P
Qualche giorno fa ho dedicato un po’ del mio tempo alla ricerca di alcuni accorgimenti per aumentare la durata della batteria del mio fido portatile, considerando che con l’installazione base la batteria resisteva tristemente poco più di un’oretta.
Dopo aver spulciato diversi altri blog, guide, forum, lesswats.org, ed aver incasinato la mia linuxbox tanto da dover entrare con un livecd per sistemarla, ho raggiunto un buon risultato:
Modifiche al Sistema
Innanzitutto vi spiego cosa fare, poi cercherò di chiarificare cosa le modifiche che ho proposto comportano.
(N.B. tutte queste modifiche vanno fatte come utente root)
Per prima cosa da terminale digitate:
hal-disable-polling --device /dev/scd0
Aggiungete in fondo alla linea del kernel di /boot/grub/menu.lst:
usbcore.autosuspend=5
Infine aggiungete in fondo a /etc/rc.local le seguenti righe:
mount -o remount,relatime / echo "30000" > /proc/sys/vm/dirty_writeback_centisecs hdparm -B1 -S240 /dev/sda echo "5" > /proc/sys/vm/laptop_mode
Ora vediamo di spiegare cosa vogliono dire tutte queste cose:
- hal-disable-polling –device /dev/scd0
Questo disabilita il polling del vostro lettore CD, impedendo di fatto che il vostro lettore venga costantemente interrogato sulla presenza di un cd, risparmiando quindi utili risorse - usbcore.autosuspend=5
Abilita l’autosuspend delle periferiche USB. - mount -o remount,relatime /
Questo invece rimonta la partizione di root in realtime, con conseguente risparmio energetico ed aumento delle performance generali (per capire meglio cosa significhi andate a leggete questa pagina di lesswats.org) - echo “30000” > /proc/sys/vm/dirty_writeback_centisecs
In questo modo il kernel accoderà tutte le modifiche ai file che deve fare e le applicherà ogni 5 minuti, permettendo un minor accesso al disco e quindi minori consumi. Tranquilli, se il vostro sistema è discretamente stabile non dovete temer nulla :) In ogni caso, se 5 minuti vi sembrano troppi, potete sempre cambiare 30000 con 1500 ad esempio, riducendo il tempo di writeback a 15 secondi. (Di default il suo valore è 500, quindi 5 secondi) - hdparm -B1 -S240 /dev/sda
Questo invece imposta il vostro HardDisk in modalità risparmio energetico, con 20 minuti di inattività prima dello spindown (arresto del disco per risparmiare energia). Ovviamente controllate che l’HardDisk sia /dev/sda anche per voi, altrimenti cambiatelo. Se volete uno spindown più frequente sostituite -S240 con -S12, in modo che avvenga dopo un minuto di inattività. Mi raccomando, ponderate bene su questa impostazione, in quanto dicono che spindown troppo frequenti possano rovinare l’HardDisk!! Io comunque uso -S12 :) - echo “5” > /proc/sys/vm/laptop_mode
Attiva il “Laptop Mode” del kernel, modalità che comporta un approccio più oculato ed intelligente del kernel nell’accesso ai dischi.
Oltre a questi, vagando per blog, ho trovato altri comandi da inserire in /etc/rc.local, ma non avendo ben capito a cosa servano preferisco non utilizzarli. Li elenco comunque qui per comodità:
echo noop > /sys/block/sda/queue/scheduler echo 50 > /proc/sys/vm/vfs_cache_pressure echo 20 > /proc/sys/vm/dirty_ratio echo 10 > /proc/sys/vm/dirty_background_ratio
Inoltre, se siete dei felici possessori di una scheda audio HDA Intel, potete attivare il risparmio energetico della scheda aggiungendo, sempre a /etc/rc.local, questa riga:
echo 10 > /sys/module/snd_hda_intel/parameters/power_save
Modifiche alle abitudini d’uso
Ovviamente, oltre dover cambiare alcuni parametri di sistema, è utile adottare alcuni comportamenti quando il pc è alimentato a batteria:
- Tenere la luminosità del monitor al minimo, o comunque la più bassa possibile: il monitor infatti è la periferica più avara di energia che possedete :)
- Ricordarsi di disattivare il Bluetooth se non lo state utilizzando. Io per comodità ho creato un lanciatore sul pannello collegato ad un comodo script che o attiva o disattiva il bluetoo (ovviamente va fatto partire come root, quindi preceduto da gksu/gksudo/beesu)
#!/bin/bash if ps -A | grep -c bluetoothd then /etc/init.d/bluetooth stop hciconfig hci0 down rmmod omnibook else modprobe omnibook /etc/init.d/bluetooth start fi
- Disattivate la scheda wireless se non la state utilizzando.
- Se non utilizzate il pc mettetelo in standby (io l’ho impostato sul pulsante di accensione per comodità), oppure quantomeno spegnete il monitor (io ho impostato che il monitor si spenga quando chi udo il lid del portatile)
- Utilizzate come governator della CPU Ondemand (per farlo usate pure l’applet di variazione della frequenza della cpu del pannello di Gnome).
Se non utilizzate gnome o non volete usare l’applet del pannello, potete inserire questa riga sempre nel /etc/rc.localecho ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor echo ondemand > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
Il secondo comando solo nel caso abbiate 2 CPU :)
Sottolineo che omnibook è il modulo che gestisce il MIO bluetooth… Voi sostituitelo con il vostro ;)
ottima guida.
Fantastica guida!
Solo se permetti un consiglio… ecco uno stile meno “professionale” ti avvicinerebbe all’utente finale e manterrebbe alta la concentrazione e l’interesse!
Grazie ad entrambi :)
@Nathan Consiglio accettatissimo, grazie :) Sono i miei primissimi articoli e faccio fatica a coniugare uno stile “leggero” ai dovuti tecnicismi del caso :P
Uff, certo ke ‘sta gente che usa linux… avete bisogno di tutte ‘ste guide fatte da luminari e poi non kombinate niente ke tanto si inkasina tutto. Ma compratevi un bel mac o un windows ke almeno funzionanoooo!
Troll.
Hehe, si è mio cugino che si diverte a fare il pirla :P
E’ un MacBoy, ma per spezzare una lancia a suo favore devo dire che per un periodo tenne pure il triple boot con OSX, Windows ed Ubuntu :P
Comunque io ho provato i consigli… non so se è l’applet di Gnome che non si sveglia un po’, ma anche dopo il riavvio mi indica sempre il tempo solito della batteria. Comunque non ho tolto il discorso del cd, perché poi non me li montava più. :-( Anzi, ho fatto anche fatica a capire che per tornare indietro dovevo eliminare il file .fdi e riavviare. :P
Stranissimo che il tempo della batteria non ti aumenti. Prova a dare un’occhiata al log del boot ( /var/log/boot.log ) per vedere se ti ha lanciato bene i comandi di rc.local (se non vedi errori in fondo dovrebbe esser andato tutto a buon fine).
Inoltre prova a lanciare powertop da root per vedere cosa ti dice a livello di consumo della batteria…
Per quanto riguarda il polling, per riattivarlo, lancia come root
hal-disable-polling –enable-polling –device /dev/scd0
No no, non è così semplice. :D Quel comando non funziona, devi proprio eliminare il file .fdi. Comunque powertop non è presente su Ubuntu Jaunty.
sudo apt-get install powertop
;)
In ogni caso prova a controllare che i parametri siano stati tutti impostati. I comandi che devi dare sono:
1) “mount | grep relatime”
e dovrebbe apparirti una riga tipo /dev/sdaX on / type ext3 (rw,relatime)
2) “cat /proc/sys/vm/dirty_writeback_centisecs” e dovrebbe darti 30000 o poco meno
3) “cat /proc/sys/vm/laptop_mode” e dovrebbe darti 5
4)”sudo hdparm -B /dev/sda” e APM_Level dovrebbe esser 1
Vabbè non fa niente, per ora lascio stare (d’altronde Ubuntu dovrebbe già essere un po’ ottimizzata per i notebook). Sto risolvendo dei problemi con pulseaudio, per ora hanno la priorità. :D
Sì, lascia stare, tanto non si risolve niente… è come una bara che affonda: chiudi una falla e se ne apre un’altra! Non ne posso più!
(cmq complimenti per il blog!) ;)
Ciao, Sapresti dirmi in percentuale l’aumento di durata della batteria del tuo portatile? Gli unici accorgimenti che uso sul mio Asusn61 sono luminosita bassa dello schermo e Jupiter per ridurre il voltaggio del processore
L’incremento di autonomia nominale era stato del 50% (da 2 a 3 ora con cpu “a riposo”)… A livello effettivo direi in ongi caso un 25% di incremento sicuro.
In ogni caso questo articolo si riferisce ad una versione un po’ datata di Fedora, quindi ora come ora sarebbe da ritestare l’effettiva utilità di questi accorgimeni, considerando che sicuramente molto è stato fatto da Fedora, Ubuntu e le altre distro consumer per migliorare l’autonomia :)