Appunti per Ubuntu 12.04: Regolare la luminosità dello schermo su Toshiba U500-Ducati…e non solo

Voglio riportare una guida su come regolare la luminosità dello schermo del mio portatile Toshiba U500-Ducati su ubuntu 12.04.
La guida dovrebbe essere valida su qualsiasi versione di ubuntu, non l’ho testata personalmente ma l’ho ricavata da questa discussione che si riferisce alla versione 10.04, dovrebbe essere valida anche per qualsiasi computer, leggete la nota in fondo per maggiori informazioni 1.

Innanzi tutto qual è il problema.
Installato ubuntu 12.04 tutto funziona bene tranne la sospensione. Il problema, stando alla documentazione di ubuntu, pare essere dovuto ai driver open source per le schede video ATI che non hanno un pieno supporto per il risparmio energetico,  quindi anche per la sospensione.
Decido quindi di installare i driver proprietari per la mia MobilityRadeonHD4570, il famoso fglrx!
Perfetto! la sospensione funziona, ma alla prima occasione mi accorgo che la combinazione di tasti fn+F6 e fn+F7 per diminuire ed aumentare la luminosità non funzionano.

Soluzione al problema.

Prima di iniziare la guida voglio ringraziare Andrea Chiarelli che mi fa notare che la guida funziona anche con alcune schede video Nvidea Optimus stando attenti a sostituire un percorso file, potete leggere direttamente il suo commento sotto.

Googlando scopro che su LinuxQualityHelp 2 qualcuno aveva avuto un problema simile al mio. Apro, leggo, e Guido Iodice gli da’ una dritta. La soluzione è in poche parole creare due script, uno che aumenta e l’altro che diminuisce la luminosità dello schermo, e associarli a due scorciatoie della tastiera.

La procedura da seguire è la seguente.
Cerchiamo nella directory /sys (e nelle sue sottodirectory) i file contenenti la parola “bright”, quindi da terminale diamo:
find /sys -iwholename *bright*

questo è quello che ottengo sul mio portatile:

luigi@luigi-SATELLITE-U500:~$ find /sys -iwholename *bright*
/sys/devices/LNXSYSTM:00/device:00/TOS1900:00/backlight/toshiba/brightness
/sys/devices/LNXSYSTM:00/device:00/TOS1900:00/backlight/toshiba/actual_brightness
/sys/devices/LNXSYSTM:00/device:00/TOS1900:00/backlight/toshiba/max_brightness
/sys/devices/LNXSYSTM:00/device:00/TOS1900:00/leds/toshiba::illumination/brightness
/sys/devices/LNXSYSTM:00/device:00/TOS1900:00/leds/toshiba::illumination/max_brightness
/sys/devices/pci0000:00/0000:00:01.0/0000:08:00.0/backlight/acpi_video0/brightness
/sys/devices/pci0000:00/0000:00:01.0/0000:08:00.0/backlight/acpi_video0/actual_brightness
/sys/devices/pci0000:00/0000:00:01.0/0000:08:00.0/backlight/acpi_video0/max_brightness

/sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/leds/mmc0::/brightness
/sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/leds/mmc0::/max_brightness
/sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/leds/phy0-led/brightness
/sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/leds/phy0-led/max_brightness

I 3 file in grassetto riguardano proprio la regolazione della luminosità del monitor. Guardando all’interno di ognuno dei 3 c’è un numero.
L’ultimo file, .../acpi_video0/max_brightness, contiene un numero che è fisso ed indica il valore massimo della luminosità dello schermo, nel mio caso questo valore è 7.
Negli altri due file c’è invece un numero che indica il valore che ha attualmente la luminosità.
Il file .../acpi_video0/actual_brightness non è editabile, non ho la minima idea di quello che serve;
mentre il file .../acpi_video0/brightness è editabile, e se variamo il numerino al suo interno, con i dovuti permessi, vediamo che varia la luminosità.
Per curiosità da terminale diamo:
sudo su
echo 1 > /sys/devices/pci0000:00/0000:00:01.0/0000:08:00.0/backlight/acpi_video0/brightness

Vediamo che la luminosità diventa minima; riscrivendo l’ultimo comando e sostituendo 1 con 7 la luminosità diventa massima.
Sarà, quindi, proprio questo il file che dovremmo variare di volta in volta. Per farlo utilizziamo degli script che aumenteranno o diminuiranno di una unità, ogni volta che vengono eseguiti, il numero contenuto nel file .../acpi_video0/brightness.

Quindi apriamo un editor di testo e scriviamo il seguente codice:
#!/bin/bash
bright=$(cat /sys/devices/pci0000:00/0000:00:01.0/0000:08:00.0/backlight/acpi_video0/brightness)
let "bright = $bright + 1"
echo $bright > /sys/devices/pci0000:00/0000:00:01.0/0000:08:00.0/backlight/acpi_video0/brightness

chiudiamo e salviamo nella nostra home con il nome lum+.sh
Apriamo un altro documento con l’editor di testo e scriviamo il seguente codice:
#!/bin/bash
bright=$(cat /sys/devices/pci0000:00/0000:00:01.0/0000:08:00.0/backlight/acpi_video0/brightness)
let "bright = $bright - 1"
echo $bright > /sys/devices/pci0000:00/0000:00:01.0/0000:08:00.0/backlight/acpi_video0/brightness

chiudiamo e salviamo nella nostra home con il nome lum-.sh

Un occhio attento ci fa notare che i due script sono identici tranne che per il segno +/- nel secondo comando. Il primo script aumenta di 1 il numerino all’interno del file .../acpi_video0/brightness, il secondo script lo diminuisce di 1.
Ad ogni esecuzione di uno degli script avvengono in sequenza le seguenti operazioni:

  1. leggo il numero all’interno di .../acpi_video0/brightness, che indica la luminosità attuale, e lo copio nella variabile bright;
  2. la variabile bright la aggiorno al nuovo valore aumentandola o diminuendola di una unità;
  3. in fine il suo valore lo riverso nuovamente all’interno di .../acpi_video0/brightness .

A questo punto bisogna dare i permessi di esecuzione ai due script, per farlo clicchiamo con il tasto destro su uno dei due file Proprieta -> Permessi e spuntare la casella Esecuzione. Il procedimento va ripetuto per entrambi i file.

L’operazione che faremo adesso non so bene cosa fa’ ma credo che serve a dare ai due script il permesso di essere eseguiti come root quando li avvia l’utente luigi e fa in modo che durante l’esecuzione non venga richiesta la password.
Da terminale diamo:
sudo visudo
nel file che si apre aggiungiamo alla fine queste due righe
luigi ALL= NOPASSWD: /home/luigi/lum+.sh
luigi ALL= NOPASSWD: /home/luigi/lum-.sh

Ovviamente al posto di luigi va sostituito il proprio nome utente.

A questo punto ci resta soltanto da creare due scorciatoie da tastiera che eseguano uno o l’altro script. Per far questo bisogna andare in Impostazioni di sistema -> Tastiera -> Scorciatoie e selezionare Scorciatoie personali, clicchiamo sulla + e inseriamo due scorciatoie, la prima con

Nome: lum+
Comando: bash -c "sudo /home/tuonome/lum+.sh"

la seconda con

Nome: lum-
Comando: bash -c "sudo /home/tuonome/lum-.sh"

Assegniamo ora alle due scorciatoie la combinazione di tasti preferita.
Io ho provato a utilizzare la combinazione di default della mia tastiera, che è fn+F6 e fn+F7, ma non funziona, quindi l’ho sostituita con la combinazione CTRL+SHIFT+Su per aumentare la luminosità e CRTL+SHIFT+Giu per diminuirla.
Per rendere tutto funzionante bisogna riavviare la sessione non riavviare il computer.

È tutto!


#1. Mi sono accorto che questo articolo è stato letto da molte persone in poche ore.
Sono arrivati qui da google cercando “problema con la luminosità su ubuntu 12.04” o frasi simili quindi credo che può interessare a molti.
Quello che voglio segnalare è che in generale la guida è adatta non solo per chi ha un portatile Toshiba U500-Ducati ma è applicabile a qualsiasi portatile. Leggendo il resto della guida troverete che bisogna modificare un file che si trova in una sottodirectory di /sys.
Ecco quello che cambia da computer a computer è il percorso di questo file.
Nel mio caso il percorso del file è:
/sys/devices/pci0000:00/0000:00:01.0/0000:08:00.0/backlight/acpi_video0/brightness
per altri so che è essere:
/sys/devices/virtual/backlight/acpi_video0/brightness
per altri ancora potrebbe essere:
/sys/class/backlight/acpi_video0/brightness
Come vedete cambia da computer a computer ma tutti iniziano nella directory /sys e termina sempre con .../backlight/acpi_video0/brightness, quindi sarà facile da individuare.
L’unica accortezza che dovrete avere è quella che una volta individuato l’esatto percorso per il vostro computer sostituirlo dove è necessario nella guida, che io ho scritto pensando solo al mio caso.

#2. Fino aqualche tempo fa LinuxQualityHelp era, secondo me, il miglior sito italiano di aiuto per distribuzioni linux debian based. Ora, purtroppo, tutti gli utenti esperti, i soli deputati a fornire risposte ai problemi, hanno abbandonato soprattutto per mancanza di tempo (le richieste giornaliere erano una marea perchè il supporto era davvero di ottima qualità). Il sito è rimasto online e si possono ancora cercare e trovare soluzioni a moltissimi problemi risolti negli anni passati. Consiglio a tutti di passarci se si ha qualche problema.


Quando avrò tempo devo verificare questo:
http://askubuntu.com/questions/151024/gui-changes-brightness-in-wrong-sys-class-backlight-brightness

Annunci

14 thoughts on “Appunti per Ubuntu 12.04: Regolare la luminosità dello schermo su Toshiba U500-Ducati…e non solo

  1. Ciao io possiedo un Toshiba ducati ho già provato diverse soluzioni ma non funzionano come neanche questa 😦 Se hai idee per aiutarmi Ubuntu è il 12.04 prima invece con la 11.10 funzionava bene

    • Ciao Maurizio, spiegami meglio. Cosa intendi per non va?
      Hai seguito tutta la guida completa e non funziona? oppure arrivi fino ad un certo punto e hai qualche errore?

      se dai questi due comandi la luminosità si abbassa?

      sudo su

      echo 1 > /sys/devices/pci0000:00/0000:00:01.0/0000:08:00.0/backlight/acpi_video0/brightness

      Ovviamente nel secondo comando sostituisci il percorso giusto per il tuo computer.

  2. ciao, ti do un suggerimento… per gli utenti con nvidia optimus la scheda video di default è quella INTEL integrata: di conseguenza, il file da modificare è del tipo /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-LVDS-1/intel_backlight/brightness

    cioè c’è intel_backlight e non solo backlight. Ti consiglio di aggiungere questo dettaglio all’articolo e il tag nvidia optimus al post, così puoi aiutare molte più persone! io ho seguito questa guida, ma, appunto, ho dovuto modificarla perchè ho notato che per me il file da te indicato non produceva alcun cambiamento, avendo sul mio portatile nvidia optimus…

    ottimo lavoro comunque!

    • Posso chiederti un favore Andrea?
      Visto che hai una scheda Nvidia prova a modificare la luminosità con questi comandi:

      sudo su
      echo 1 > /sys/class/backlight/acpi_video0/brightness

      funziona?
      Se la directory /sys/class/backlight/acpi_video0/brightness non esiste, mi dici se esiste la directory /sys/class/backlight/ e cosa c’è dentro?
      Grazie mille

      • salve sn michele e molto probabilmente ho una nvidia optimus (geforce 610m) avendo un asus x53s…

        con questo procedimento:
        sudo su
        echo 1 > /sys/class/backlight/acpi_video0/brightness

        la luminosita diminuisce pero se riavvio ritorna luminoso come faccio a salvarla..

        ho provato anke a modificare echo 1 in echo 3 niente…

        in pratica a ogni riavvio terminale e proedimento tec…

        o provato bamblebee ma nulla…

        magari lei puo aiutrmi…

        a presto

      • Ciao Michele
        Apri un documento gedit e all’interno scrivi:
        #!/bin/bash
        echo 1 > /sys/class/backlight/acpi_video0/brightness

        rinominalo lum_avvio.sh e salvalo nella tua home.
        Dagli i permessi di esecuzione.
        Inseriscilo in visudo come ho mostrato nella guida per gli script lum+.sh e lum-.sh.
        Apri la Dash di unity e apri “applicazioni d’avvio”, fai click su aggiungi e scrivi:
        nella casella Nome: Luminosità avvio
        nella casella Comando: bash -c "sudo /home/tuonome/lum_avvio.sh"
        nella casella Commento:Regola al minimo la luminosità della schermo all’avvio del pc.

        Salvi, chiudi, riavvi il pc e all’accensione la luminosità dovrebbe impostarsi al minimo.

  3. Pingback: 25 settembre, è arrivato l’autunno | Nu pocu e tuttu

  4. Ho seguito le indicazioni della guida ma nel mio caso (portatile toshiba l855) non riesco a ridurre la luminosità:

    SATELLITE-L855:/# find /sys -iwholename *bright*
    /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/backlight/acpi_video0/brightness
    /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/backlight/acpi_video0
    /actual_brightnessSATELLITE-L855:/# find /sys -iwholename *bright*
    /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/backlight/acpi_video0/brightness
    /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/backlight/acpi_video0/actual_brightness
    /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/backlight/acpi_video0/max_brightness
    /sys/devices/pci0000:00/0000:00:1c.1/0000:08:00.0/leds/ath9k-phy0/brightness
    /sys/devices/pci0000:00/0000:00:1c.1/0000:08:00.0/leds/ath9k-phy0/max_brightness

    /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/backlight/acpi_video0/max_brightness
    /sys/devices/pci0000:00/0000:00:1c.1/0000:08:00.0/leds/ath9k-phy0/brightness
    /sys/devices/pci0000:00/0000:00:1c.1/0000:08:00.0/leds/ath9k-phy0/max_brightness

    da prompt eseguo il comando:
    root@elpitzote-SATELLITE-L855:/# echo 1 > /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/backlight/acpi_video0/brightness

    root@elpitzote-SATELLITE-L855:/# cat /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/backlight/acpi_video0/brightness
    1

    Ma la luminosità non si riduce…

    Ho provato con i driver proprietari ATI e la luminosità viene regolata bene, ma ho problemi grafici di altro tipo es. finestre visualizzate male e video flash player con interruzioni.

    Cosa posso provare?

      • Grazie Luigi per la risposta, ma non funziona…

        Dicevo di aver provato, come alternativa, i driver proprietari ATI in binario ma hanno ancora più problemi…

        Peccato però che il portatile toshiba L855 non sia ben supportato da Ubuntu 12.04..perchè in generale presenta altri problemi di driver, tipo:
        – a seguito della sospensione, viene automaticamente attivato il bluetooth e non funziona più lo scroll da touch pad.
        – la porta hdmi manda in output solo il video e non l’audio.
        Qualcuno ha gli stessi problemi? Come li avete risolti?
        Grazie

      • Solo se sai come modificare grub puoi provare quest’altra soluzione.
        Edita il file:
        /etc/default/grub
        e modifica la riga:
        GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
        in:
        GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi=Linux"

        Per gli altri problemi, se ti può consolare:
        - Anche io ho dei problemi dopo il risveglio dalla sospensione..non con il touchpad ma con dei tasti a sfioramento che ho sul mio portatile. Per questo problema fino ad ora non ho trovato soluzione
        - Anche la mia porta hdmi ha i tuoi stessi problemi, ma una volta cercando a fondo non ricordo dove avevo trovato la soluzione. ora ho formattato per passare a ubuntu 12.10 e il problema si è ripresentato ma non l'ho ancora risolto perchè non ricordo com'era la soluzione.Se cerchi qualcosa vedi che troverai.

        Un buon punto di partenza può essere da qui:
        https://wiki.ubuntu.com/LaptopTestingTeam/Old

  5. Grande guida!
    ero io che avevo avuto questo problema e avevo scritto su LQH! il mitico guiodic mi aveva aiutato!
    a distanza di qualche anno sto ancora usando questa guida! 🙂
    tu sai anche come risolvere il seguente problema?
    i tasti della luminosità funzionano ma ogni volta che riavvio devo impostare la luminosità in quanto non salva il valore impostato l’ultima volta.
    Grazie

    • Ciao Gorunks, concordo sul “mitico guiodic” mi è stato di grande aiuto, lui ma anche tutti gli altri del forum di LQH.
      Venendo al tuo problema prova a vedere se funziona così (lascio a te testare se funziona perchè io non ho il tempo per farlo):
      1) Crea un file nella tua home e chiamalo a piacere, per esempio lum_avvio.sh
      touch lum_avvio.sh
      2) Dai a questo file i permessi di esecuzione e inseriscilo in visudo come ho mostrato nella guida per gli script lum+.sh e lum-.sh.
      3) Modifica i due script lum+.sh e lum-.sh aggiungendo alla fine in entrambi il seguente codice:
      echo 'echo $bright > /sys/devices/pci0000:00/0000:00:01.0/0000:08:00.0/backlight/acpi_video0/brightness' > lum_avvio.sh
      4) Apri la Dash di unity e apri “applicazioni d’avvio”, fai click su aggiungi e scrivi:
      nella casella Nome: Luminosità avvio
      nella casella Comando: bash -c “sudo /home/tuonome/lum_avvio.sh”
      nella casella Commento: Regola la luminosità all’avvio del pc.

      Salvi, chiudi e riavvi il pc.
      Una volta riavviato regola la luminosità come meglio ti pare e riavvia nuovamente il pc.
      Alla prossima accensione come per magia (spero, se non è andato storto qualche cosa) la luminosità dovrebbe impostarsi come era allo spegnimento del pc.
      D’ora in poi ogni volta che spegni il computer, viene memorizzata l’ultima impostazione della luminosità e riproposta all’avvio

      Spero di esserti stato di aiuto. Ciao

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...