Purtroppo può capitare con Linux che la regolazione della luminosità del monitor tramite i tasti Fn dei pc portatili non funzioni. Dipende dalla distro, dal kernel, dai driver video e dal desktop environment, oggi vi proporrò due linee guida che bene o male possano risolvere la maggior parte casi.
Il primo tentativo da fare è quello di forzare l’uso dei moduli acpi compresi nel kernel, cosa che in genere basta a sistemare le cose. Date da terminale (usando al posto di gedit il nome dell’editor di testo del vostro desktop environment):
sudo gedit /etc/default/grub
Andate alla seguente linea:
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”
E fatela diventare così:
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash pcie_aspm=force acpi_osi=Linux acpi_backlight=legacy”
Salvate e chiudete, poi aggiornate il grub con il comando:
sudo update-grub
Riavviate il pc e se ora gli appositi tasti Fn possono regolare la luminosità avete finito. Sennò provate questa modifica alternativa:
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash acpi_backlight=vendor”
Se nemmeno così funziona proviamo una strada più complessa ma che quasi sicuramente sarà risolutiva.
Aprite il vostro file manager ed andate nella cartella /sys/class/backlight. Qui trovate, come cartelle, uno o più componenti che gestiscono la retroilluminazione. Di solito c’è acpi_video0, altri come acpi_video1, o alcuni specifici in base al tipo di scheda video, diciamo per esempio acpi_pincopallino. Ora dovrete provarli tutti da terminale per capire quale funziona per voi, date il comando:
echo 50 | sudo tee /sys/class/backlight/acpi_video0/brightness
Questo dice al relativo modulo d’impostare la luminosità al 50% (il numero dopo echo, in percentuale). Se lo schermo si scurisce avete trovato il modulo giusto, altrimenti provate tutti quelli che avete:
echo 50 | sudo tee /sys/class/backlight/acpi_video1/brightness
echo 50 | sudo tee /sys/class/backlight/acpi_pincopallino/brightness
Ammettendo che almeno uno abbia funzionato, dobbiamo fare in modo che possiate farlo lavorare in semplicità con i tasti Fn senza dover usare il terminale ogni volta. Tutto ciò è fattibile tramite due semplici script, uno che dirà al modulo di aumentare la luminosità e uno che la farà diminuire.
Aprite il vostro editor di testo e copiate questo script:
#!/bin/bash
bright=$(cat /sys/class/backlight/acpi_video0/brightness)
let “bright = $bright + 10”
echo $bright > /sys/class/backlight/acpi_video0/brightness
Dove acpi_video0 andrà sostituito con il modulo funzionante per voi. A differenza del comando di prima che impostava una percentuale fissa, questo script permette di cambiare in modo incrementale la luminosità in base al valore corrente. In questo caso ad ogni utilizzo della combinazione Fn+”tasto” la luminosità aumenterà del 10%. Salvate il file in una cartella nascosta con estensione .sh, cioè tipo:
/home/vostro_nome_utente/.backlight/lum+.sh
Ora create un nuovo script che abbasserà la luminosità:
#!/bin/bash
bright=$(cat /sys/class/backlight/acpi_video0/brightness)
let “bright = $bright – 10”
echo $bright > /sys/class/backlight/acpi_video0/brightness
E salvatelo sempre come:
/home/vostro_nome_utente/.backlight/lum-.sh
Andate nella cartella dove avete messo questi script, cliccate col destro su entrambi e fate proprietà – permessi e rendete il file eseguibile.
Adesso un passaggio delicato: dobbiamo dire alla nostra distro di non chiedere la password di amministratore quando usiamo questi script. Date da terminale:
sudo visudo
Qui potete aggiungere eccezioni al comando sudo. In fondo al file (che visualizzerete direttamente da terminale) date aggiungete le seguenti 2 righe:
vostro_nome_utente ALL= NOPASSWD: /home/vostro_nome_utente/.backlight/lum+.sh
vostro_nome_utente ALL= NOPASSWD: /home/vostro_nome_utente/.backlight/lum-.sh
Prestate la massima attenzione a copiare alla perfezione queste due righe con spazi e punteggiatura, altrimenti andrete ad incasinare il sudo.
Uscite con ctrl+x confermando il salvataggio. Ora questi script saranno eseguibili a livello utente. Basta aggiungere due scorciatoie da tastiera per usarli, andate quindi nella relativa sezione delle impostazioni di sistema. Eliminate o disabilitate i tasti funzione predefiniti per la luminosità (per evitare conflitti), ipotizzando Fn+F3 e Fn+F4. Ora assegnate due nuove scorciatoie personalizzate inserendo i seguenti comandi:
bash -c “sudo /home/vostro_nome_utente/.backlight/lum-.sh”
bash -c “sudo /home/vostro_nome_utente/.backlight/lum+.sh”
Riavviate la sessione e magicamente i tasti da voi impostati dovrebbero aumentare e ridurre la retroilluminazione dello schermo. In caso contrario, per ora, non saprei in quale altro modo aiutarvi.
“Ci sono! Preghiere sui post-it!”
30/05/2016 alle 22:43
Segnalo 2 piccoli ma frustranti “errori” che fanno fallire la procedura a molti utenti copia-incollatori (me compreso :^) ) e che spero l’autore di questo post corregga:
Le virgolette ed il segno – (meno) inserite in <> e <> sono caratteri visivamente simili a ciò che vogliono dire ma sbagliati. Per risolvere è sufficiente scriverli a mano al posto che copia-incollarli.
P.S.
Grazie mille! Mi sei stato parecchio utile per elementaryOS Freya. 😀
30/05/2016 alle 22:46
lol, mi è stato segato quello che era dentro il minore e maggiorem comunque le righe sono queste 2:
let “bright = $bright – 10”
let “bright = $bright + 10”
07/07/2016 alle 16:29
Ti ringrazio per la segnalazione, ma per correttezza dell’articolo devo lasciare le cose così come sono. Segnare per esteso di scrivere a mano creerebbe confusione. Il tuo commento già servirà come riferimento ai futuri utenti 🙂
01/11/2013 alle 12:37
Ancora nada.. nemmeno con in nuovi tasti..
01/11/2013 alle 14:15
Se lo script funziona ma i tasti non rispondono per me sbagliato qualcosa nell’impostare la combinazione. Prova a crearne una per uno scopo a casa per vedere se la crei in modo corretto.
01/11/2013 alle 00:21
allora per kde vai in:
– impostazioni di sistema
– scorciatoie e gesti
– scorciatoie personalizzate
– in basso premi su modifica -> nuovo -> scorciatoia globale -> comando/URL
– dagli un nome, tipo lum+
– nella linguetta attivazione registra la tua combinazione di tasti (es. Fn + F4)
– in azione metti l’indirizzo del completo del tuo script per aumentare la luminosità
– applica le impostazioni
– crea nello stesso modo un’altra combinazione per lum-
Poi prova e dovrebbe andare 😉
01/11/2013 alle 01:12
Mi dispiace continuare a rompere.. ma non riesco proprio a farlo funzionare.. ora inserendo il comando bash si alza e abbassa la luminosità, ma non riesco a collegarlo a una qualche scorciatoia. Ho controllato che non ci fosse conflitto per quella combinazione di tasti e va tutto bene. ho anche provato a riavviare ma continuano a non rispondere ai comandi. eppure ho notato che in qualche modo ii tasti sono già “preimpostati” nel senso che nella linguetta d’immissione, quando premo fn+f6 esce direttamente “aumenta luminosità dello schermo”. quando però provo a usare la scorciatoia non succede assolutanmente nulla..
01/11/2013 alle 11:46
Giusto per scrupolo, prova a cambiare la combinazione e usane una senza i tasti fn.
30/10/2013 alle 17:41
Non che centri nulla, ma alla fine di ogni script bisognerebbe aggiungere il comando: exit
Questo perché altrimenti la shell invocata resta aperta in modalità zombie finché non si spegne il pc.
30/10/2013 alle 17:03
Dunque mi sono accorto che stavo cercando di inserire quelle due righe nel posto sbagliato (cioè sudo visudo –> in fondo c’è il comando aggiungi, io provavo li -.-). Ora dovrei averle messe nel posto giusto e salvate, ma mi da un altro problema.. quando provo a dare bash -c mi dice:
riga 3: let: “bright: errore di sintassi: atteso un operando (il token dell’errore è ““bright”)
non so individuare l’errore di sintassi, quindi ti posto il mio script come ha fatto l’utente di prima..
#!/bin/bash
bright=$(cat /sys/class/backlight/nv_backlight/brightness)
let “bright = $bright – 10″
echo $bright > /sys/class/backlight/nv_backlight/brightness
dovrebbe essere identico a quello scritto qua nel blog perchè ho copiato e incollato, quindi non so proprio dove possa stare l’errore..
31/10/2013 alle 00:34
La sintassi pare corretta… mi posti il tuo comando bash -c?
Mi viene da pensare, hai reso eseguibili gli script?
31/10/2013 alle 11:28
bash -c “sudo /home/davide/.backlight/lum-.sh”
/home/davide/.backlight/lum-.sh: riga 3: let: “bright: errore di sintassi: atteso un operando (il token dell’errore è ““bright”)
comando ed errore.. copiati direttamente da quello che ho inserito.. Ho ricontrollato e sono entrambi eseguibili
31/10/2013 alle 13:42
Prova a dare questo comando:
cat /sys/class/backlight/nv_backlight/brightness
e posta il risultato
31/10/2013 alle 22:54
il risultato è un numero: 100. Se non ho capito male dovrebbe essere il livello attuale della luminosità, giusto?
31/10/2013 alle 22:55
si cambiando la luminosità con il comando echo 20 etc etc la nuova uscita è la luminosità che gli ho appena imposto..
31/10/2013 alle 23:24
Si, 100 è la luminosità attuale. Hai detto che l’hai copiato da qui. Copia-incolla? Leggo e rileggo ma sembra tutto corretto, mi viene da pesanre solo alle “. Prova a riscriverle perché a me, facendo copia-incolla, le copia diverse.
31/10/2013 alle 23:49
Si effettivamente sono diverse.. le ho cambiate e sono diventate uguali.. ma ora da un altro errore sempre sulla stessa riga:
riga 3: let: bright = 20 – 10: errore di sintassi: operatore aritmetico non valido (il token dell’errore è “– 10”)
la riga che ho modificato ora è scritta così:
let “bright = $bright – 10”
solo che il primo bright e il – 10 sono diventati rossi..
01/11/2013 alle 00:02
Miracolosamente i comandi sono stati presi.. ho riavviato un paio di volte ma ancora non riesco a modificare la luminosità utilizzando i tasti fn.. quale sarebbe il passaggio in cui assegno i tasti all’aumento e diminuzione della luminosità?
01/11/2013 alle 00:04
Dipende da quale desktop environment usi. Kde, gnome shell, cinnamon, xfce o che altro?
01/11/2013 alle 00:12
kde
30/10/2013 alle 00:11
Hai controllato bene che il percorso scritto sia giusto compresi il punto per la cartella nascosta ecc…? Intendo non solo nel comando, ma anche il reale percorso.
28/10/2013 alle 15:56
Ciao ho un problema quando cerco di aggiungere l’eccezione al comando sudo. Lo script che cerco di inserire è:
davide ALL=NOPASSWD: home/davide/.backlight/lum+.sh
Premendo invio dopo averlo inserito mi esce la scritta:
[“davide ALL=……….” non trovato]
Non so se ho fatto dei casini prima perchè la prima volta mi ero sbagliato e avevo inserito solo il comando
home/davide/.backlight/lum+.sh
Come lo risolvo?
PS: grazie per la guida.. la luminosità al max stava uccidendo sia me che la mia batteria 😉
29/10/2013 alle 00:00
Ciao, vedo due errori: tra il segno = e ALL ci deve essere uno spazio. Mi è capitato che funzioni anche senza, altre volte no… prova. Secondo, e più importante, ci vuole lo / davanti a home. Quindi nel tuo caso diventa:
davide ALL= NOPASSWD: /home/davide/.backlight/lum+.sh
Fammi sapere, ciao 🙂
29/10/2013 alle 16:04
Continua a darmi quel “non trovato”..
15/09/2013 alle 10:00
sulla mia ubuntu 12.04Lts i 2 script mi rispondono nel seguente modo:
riga 3: let: “bright: errore di sintassi: atteso un operando (il token dell’errore è ““bright”)
e lo script è i seguente:
#!/bin/bash
bright=$(cat /sys/class/backlight/intel_backlight/brightness)
let “bright = $bright –10″
echo $bright > /sys/class/backlight/intel_backlight/brightness
ci deve essere qualcosa di sbagliato nella sintassi, ma non so dove……….
16/09/2013 alle 13:14
ciao, scusa il ritardo. Credo l’errore sia nella terza riga, ti manca uno spazio: tu hai scritto -10, invece è – 10.
Fammi sapere se ora funziona.
23/06/2012 alle 20:14
no , purtroppo non ho la capacita’ di mettermi a modificare configurazioni col terminale e non mi va poi di dover formattare tutto
24/06/2012 alle 00:18
Formattare non è quasi mai la soluzione al di fuori di Windows. Ma molto spesso delle cose non funzionano da sole e vanno fatti uno o più interventi a mano per far girare tutto, come per esempio spiegavo in questa guida.
22/06/2012 alle 10:08
Purtroppo i tasti fn sono un problema , non solo quello della luminosita’ , ad esempio , io ho un samsung rc530 e non funziona nemmeno il tap sul pad e tutti i tasti fn tranne quello della sospensione , del controllo alimentazione, del mute e del blocco del pad ( che poi pero’ non si sblocca piu’….) e ho installato mint 13 , dunque abbastanza aggiornato.
22/06/2012 alle 13:20
Di solito ci sono workaround vari, per il touch pad ho trovato qualcosa su google, per il resto non ho guardato. Hai provato a smanettare con qualcosa?