Da
quando usi Ubuntu 12.10 quantal o sue derivate, hai notato che la
batteria del tuo pc si scarica subito? 
Hai notato che la CPU è sempre al
massimo? Hai notato che la ventola di raffreddamento è sempre al
massimo?
Non aver paura molto probabile che il problema sia
dovuto alla scheda grafica del tuo portatile come è altrettanto
probabile che sia una NVIDIA o una ATI/AMD Radeon e che i driver che
stai usando non sono quelli proprietari ma quelli open source della
stessa distribuzione.

E’ noto che questo tipo di schede video
proprietarie funzionino in modo regolare solo con i propri driver
proprietari senza i quali consumano in modo notevole la carica della
batteria in pochissimo tempo.
Purtroppo fino a Ubuntu 12.04 e
derivate, il problema veniva risolto installando i driver proprietari,
ma da qualche mese e specialmente chi possiede una scheda grafica AMD
Radeon anche installando i driver proprietari molte volte non risolve un
bel niente.
Allora cosa fare? Far finta che la batteria non si
scarica subito? Far finta che non si sente il rumore insistente della
ventola di raffreddamento al massimo?
Certo che no… in qualche caso possiamo risolvere questo problema pur mantenendo i driver open source. Vediamo come.
Molti
portatili con schede grafiche dedicate come NVIDIA o ATI/AMD sono
muniti di una seconda scheda grafica INTEL incorporata che in questi
casi è la nostra salvezza in attesa dell’uscita dei driver proprietari.
Premetto che la soluzione che propongo, e che io stesso ho adottato con successo, è una tra quelle indicate sul sito ufficiale di Ubuntu ma che ritengo la migliore.
Procediamo.
Prima di tutto dobbiamo verificare la presenza delle due schede grafiche digitando dal terminale questo comando:

lspci -k | grep -A3 VGA

dovremmo avere un risultato del genere

00:02.0
VGA compatible controller: Intel Corporation 2nd Generation Core
Processor Family Integrated Graphics Controller (rev 09)
Subsystem: Samsung Electronics Co Ltd Device c0c7
Kernel driver in use: i915
Kernel modules: i915

01:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Thames [Radeon 7500M/7600M Series]
Subsystem: Samsung Electronics Co Ltd Device c0c7
Kernel modules: radeon
02:00.0 Network controller: Intel Corporation Centrino Advanced-N 6230 (rev 34)

dal quale si evidenzia la presenza delle due schede grafiche.

Ciò
che adesso dobbiamo fare è rendere predefinita la scheda INTEL al posto
della AMD Radeon per normalizzare il funzionamento del nostro pc e per
fare ciò useremo l’opzione di sistema vga_switcheroo durante la fase di
boot.

Creiamo il file /etc/initramfs-tools/scripts/local-top/hybrid_boot_options con questo comando da terminale:

sudo gedit /etc/initramfs-tools/scripts/local-top/hybrid_boot_options

copiamo dentro il file il seguente contenuto

##########################################################
# Standard initramfs preamble
#
prereqs()
{
:
}

case $1 in
prereqs)
        prereqs
        exit 0
        ;;
esac

# source for log_*_msg() functions, see LP: #272301
. /scripts/functions

#
# Helper functions
#
message()
{
        if [ -x /bin/plymouth ] && plymouth --ping; then
                plymouth message --text="$@"
        elif [ -p /dev/.initramfs/usplash_outfifo ] && [ -x /sbin/usplash_write ]; then
                usplash_write "TEXT-URGENT $@"
        else
                echo "$@" >&2
        fi
        return 0
}

run_switcheroo()
{
        local hybridopts
        hybridopts="$1"

        if [ -z "$hybridopts" ]; then
                return 1
        fi

        local IFS=" ,"
        for x in $hybridopts; do
                message "Switching hybrid graphics to $x"
                echo $x > /sys/kernel/debug/vgaswitcheroo/switch
        done
        return 0
}

#
# Begin real processing
#

# Do we have any kernel boot arguments?
for opt in $(cat /proc/cmdline); do
        case $opt in
        hybridopts=*)
                run_switcheroo "${opt#hybridopts=}"
                ;;
        esac
done

exit 0

########################################

A questo punto rendiamo il file eseguibile con questo comando:

chmod +x /etc/initramfs-tools/scripts/local-top/hybrid_boot_options

Creiamo la nuova immagine di avvio con:

update-initramfs -c -k all

Apriamo il file /etc/default/grub con

sudo gedit /etc/default/grub

modifichiamo adesso la proprietà GRUB_CMDLINE_LINUX_DEFAULT in questo modo

GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash modeset=1 hybridopts=ON,IGD,OFF”

ed aggiorniamo GRUB in questo modo

update-grub

Riavviare
il pc ed il gioco è fatto poichè abbiamo semplicemente fatto partire il
kernel attivando la scheda grafica integrata come primaria e
disattivando la secondaria come la nvidia o la amd.
Nel momento in
cui vogliamo riattivare la scheda grafica proprietaria, ad esempio
perchè sono usciti i driver proprietari compatibili, modifichiamo la
proprietà GRUB_CMDLINE_LINUX_DEFAULT nel file /etc/default/grub in questo modo.

Apriamo il file /etc/default/grub con

sudo gedit /etc/default/grub

modifichiamo adesso la proprietà GRUB_CMDLINE_LINUX_DEFAULT in questo modo

GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”

e
avremo la disattivazione della scheda grafica integrata e l’attivazione
di quella proprietaria nella speranza che i driver proprietari, che andremo ad installare,
funzionino in modo corretto.
  • Nel frattempo è stato rimosso, scaricatelo da qui: http://www.mediafire.com/?3m4xl539pz3sz7i

  • Sanga92

    Che la maggior parte delle volte, non sono funzionanti.
    Questa soluzione intel-ati commutabili su linux non funziona assolutaemtne con i driver proprietari.E’ un ann e mezzo che a ogni nuova versione mi torna la speranza che funzionino. Bah meno male che c’è vgaswitcheroo se no il mio notebook era già bruciato;)

    • Fino alla versione precedente usavo AMD Catalyst con successo ma dalla 12.10 di Ubuntu, Catalyst non ne ha voluto sapere nemmeno nell’ultimissima release. Tra le soluzioni provate, questa è stata la migliore in asoluto ed adesso uso i driver open source della distribuzione e il mio pc è perfetto.

      • Sanga92

        Io ho deciso di utilizzare solo la schead intel, che tanto per l’uso che ne faccio va benissimo, l’ati sempre spenta, usando un metodo diverso da quello descritto nell’articolo, ma meglio cosi, dannata amd;)

        • paolobs81

          Puoi rendere disponibile il metodo per disattivare la intel?

          • Prova a modificare la riga del grub con

            GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash modeset=1 hybridopts=ON,DIS,OFF”

            In pratica cambi il valore IGD con DIS che sarebbe la scheda DISCRETE cioè quella proprietaria

            Fammi sapere

          • paolobs81

            Tempo fa, dopo innumerevoli tentativi ero riuscito con l’aiuto di un esperto su altro forum ora chiuso, a migliorare l’autonomia del mio ubuntu 12.04 da circa 1h, a 2 ore e mezza circa, anche di più. Installando Jupiter e facendo alcune modifiche con riga di comando, cose però abbastanza complicate.
            Ora non vorrei perdere il risultato ottenuto, pertanto mi chiedo. Come fare una copia backup delle impostazioni del mio sistema per provare questo consiglio che mi hai postato oggi?

          • Posso consigliarti di effettuare un backup completo per essere sicuri e per fare questo puoi dare uno sguardo a questo articolo.

            http://www.lffl.org/2010/09/ubuntu-le-10-migliori-applicazioni-per.html

  • lisandrolopez

    quindi se non ho il notebook con due schede video mi attacco alla cippa e mi tengo le ventole che fanno rumore come il motore di una fiat tipo gt?

    • Purtroppo si… almeno per ora fino a quando non usciranno i driver proprietari stabili e testati.

  • Alessandro

    Ottima guda, grazie!
    Ti vorrei chiedere un paio di cose:
    Quando parli di scheda intel parli della scheda integrata nel processore? E comunque questo metodo funzionerebbe anche con la scheda intel integrata nel processore?
    Poi un’altra cosa… questa procedura si fa una volta sola per sempre oppure bisogna ripeterla ogni volta che si aggiorna il kernel o che si aggiorna grub?
    Grazie mille!

    • Ciao provo a risponderti:
      Se parlo di scheda intel mi riferisco a quella integrata nella scheda madre.
      Questo metodo funziona perfettamente con la scheda intel integrata se il pc è dotato di scheda integrata e proprietaria non integrata. Se il pc ha una sola scheda integrata o non e questa è una intel, il driver open source non ha bisogno di nessun miglioramento in quanto funziona già perfettamente.
      Questa procedura si fa UNA SOLA VOLTA e basta.

  • Festa Giacomo

    Ma una guida fatta apposta per il risparmio energetico dei macbook non si portebbe realizzare? E da una vita che la chiedo visto che ubuntu a batteria mi dura poco piu di un’ora.

  • riccaficca

    è uno scandalo che non cisiano driver adatti al livello di un sistema operativo come linux.è uno scandalo.a partire dal trattamento delle case madri ati su tutte (maledetta ati) fino allo sviluppo di questi benedetti driver open.dovrebbe essere la prima cosa sulla lista delle cose da fare.

  • A ogni cambio di kernel servono dei drivers nuovi 🙁 che grande seccatura …

  • liuk

    il mio problema è la ventola del notebook, sempre al massimo.

    • La ventola al massimo è il sintomo del carico di lavoro della cpu dovuto all’uso del driver MESA open source sulla scheda proprietaria. Potresti risolverlo con i driver proprietari ma al momento non è scontato che funzioni

  • silvio

    salve a tutti, vorrei sapere se è normale nel mio caso che il modulo del kernel sia intelfb
    grazie in anticipo

    silvio@ubuntu:~$ lspci -k| grep -A3 VGA

    00:02.0 VGA compatible controller: Intel Corporation Mobile 945GSE Express Integrated Graphics Controller (rev 03)

    Subsystem: ASUSTeK Computer Inc. Device 830f

    Kernel driver in use: i915

    Kernel modules: intelfb, i915

    • Si per me è corretto poichè è anche in esecuzione l’i915

  • Guest

    puoi rendere disponibile il metodo per disabilitare la intel?

    • Prova a modificare la riga del grub con

      GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash modeset=1 hybridopts=ON,DIS,OFF”

      In pratica cambi il valore IGD con DIS che sarebbe la scheda DISCRETE

      Fammi sapere

  • Linux

    dove devo copiare quella stringa di codice ? cioe c’è scritto di copiarla ma dove ? da etrminale non mi esce nulla per copiare quella stringa. come devo fare grazie 🙂

    • Presumo che ti riferisci al GRUB quindi quando esegui da terminale sudo gedit /etc/default/grub ti si apre GEDIT con il file da modificare, vai a cercare la riga in cui c’è
      GRUB_CMDLINE_LINUX_DEFAULT e la sostituisci con
      GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash modeset=1 hybridopts=ON,IGD,OFF” salvi e riavvi il pc

  • gaspy_89

    La stringa giusta per farlo funzionare è:
    uget-gtk $URL
    😉

No more articles