Lordgiotto's

Risarmio energetio estremo su Fedora 11 (valido, in generale, per qualsiasi distribuzione)

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:

Direi non male triplicare la durata :)

Direi non male triplicare la durata :)

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
  • Sottolineo che omnibook è il modulo che gestisce il MIO bluetooth… Voi sostituitelo con il vostro ;)

  • 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.local

    echo 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 :)

Questa voce è stata pubblicata il agosto 20, 2009 alle 7:44 PM. È archiviata in Linux con tag , . Aggiungi il permalink ai segnalibri. Segui tutti i commenti qui con il feed RSS di questo articolo.

15 pensieri su “Risarmio energetio estremo su Fedora 11 (valido, in generale, per qualsiasi distribuzione)

  1. ottima guida.

  2. Nathan in ha detto:

    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!

  3. lordgiotto in ha detto:

    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

  4. Qgino93 in ha detto:

    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!

  5. 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

    • lordgiotto in ha detto:

      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.

        • lordgiotto in ha detto:

          sudo apt-get install powertop
          ;)

        • lordgiotto in ha detto:

          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

            • Odusp in ha detto:

              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!) ;)

  6. Nicola in ha detto:

    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

    • lordgiotto in ha detto:

      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 :)

Scrivi una risposta a dario Cancella risposta