Settare correttamente le Hotkey dei Sony - Backlight

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Unicondor
Linux 1.x
Linux 1.x
Messaggi: 147
Iscritto il: mar 30 nov 2004, 0:00
Slackware: 13.1
Kernel: 2.6.37.6
Località: Potenza
Contatta:

Settare correttamente le Hotkey dei Sony - Backlight

Messaggio da Unicondor »

Salve ragazzi,

ieri sera mentre scrivevo una parte della tesi mi sono accorto che i tasti FN+F5 e FN+F6 non funzionavano correttamente , nel senso che non riuscivo a a settare la luminosità dello schermo.

Voglio precisare che il modulo sony_acpi è correttamento caricato all'avvio ed ho un Sony VGN-A195EP ( è preistorico, ma me ne sono affezionato :D ) con scheda grafica ATI Radeon Mobility 9200.

Per questo motivo vi spiego come ho risolto sperando che sia di aiuto.

Per prima cosa dobbiamo vedere a che interrupt ACPI corrispondono la digitazione delle due hotkey ( FN+F5 e FN+F6 ) , per fare questo ci viene in aiuto

Codice: Seleziona tutto

acpi_listen
Ecco il risultato di FN+F5 sul mio portatile

Codice: Seleziona tutto

$ acpi_listen
sony/hotkey SPIC 00000001 00000010
sony/hotkey SPIC 00000001 0000003b
e di FN+F6

Codice: Seleziona tutto

$ acpi_listen
sony/hotkey SPIC 00000001 00000011
sony/hotkey SPIC 00000001 0000003b
In questo modo possiamo capire il tipo di interrupt "SPIC" ed il numero ad esso associato per ogni hotkey presente sulla tastiera.

Ora non ci resta altro che settare l'evento corrispondente associato alla digitalizzazione dei seguenti tasti, ma prima di fare ciò vediamo dove sono settati i valori di luminosità del nostro schermo

Codice: Seleziona tutto

$ cat /sys/class/backlight/sony/brightness
1
quindi il valore corrente è in /sys/class/backlight/sony/brightness

per cui con un semplice

Codice: Seleziona tutto

$ echo 5 > /sys/class/backlight/sony/brightness
avremo l'aumento della luminosità . I valori vanno da -1 a 7.

ora settiamo l'evento che gestisce la pressone delle hotkey, e per fare ciò ci spostiamoci in /etc/acpi ed editiamo un semplice file in questo modo ( io l'ho chiamato xbacklight.sh )

Codice: Seleziona tutto

#!/bin/sh

brightness=`cat /sys/class/backlight/sony/brightness`

echo ${brightness}


if [ "${1}" = "up" ]; then


        let "brightness+=1"
        echo ${brightness} > /sys/class/backlight/sony/brightness


else

        let "brightness-=1"
        echo ${brightness} > /sys/class/backlight/sony/brightness


fi
il quale non fa altro che aumentare di 1 la luminosità se passiamo come argomento allo script "up" altrimenti decrementa.

Settiamo i permessi di esecuzione al file

Codice: Seleziona tutto

# chmod +x /etc/acpi/xbacklight.sh
Ora non ci resta altro che gestire l'evento tramite le hotkey quindi ci basta editare il file /etc/acpi/events/default in questo modo

Codice: Seleziona tutto

event=.*
action=/etc/acpi/acpi_handler.sh %e
Il quale non fa altro che richiamare il file acpi_handler e passargli uno dei due output che abbiamo visto sopra con acpi_listen.

Ora non ci resta altro che andare in /etc/acpi ed editare "acpi_handler.sh" e richiamare lo script da noi creato "xbacklight.sh" , passando come parametro up se abbiamo premuto FN+F6 o qualsiasi altra stringa se abbiamo rpemuto FN+F5 ( io ho usato down :D )

Codice: Seleziona tutto

#if [ $# != 1 ]; then
#exit 1
#fi
#set $*

echo "$1"
echo "$2"
echo "$3"
echo "$4"

case "$2" in
SPIC)
       if [ "$4" = "00000011" ]; then
   echo "up $4"
          /etc/acpi/xbacklight.sh up
       elif [ "$4" = "00000010" ]; then
   echo "down $4"
                         /etc/acpi/xbacklight.sh down
       fi
                     ;;
 *)
;;
ora ravviate il demone acpid

Codice: Seleziona tutto

# . /etc/rc.d/rc.acpid restart
Starting ACPI daemon:  /usr/sbin/acpid
Ed i tasti dovrebbero funzionare :D

Flavio

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1026
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Re: Settare correttamente le Hotkey dei Sony - Backlight

Messaggio da Burroughs »

Unicondor ha scritto:Salve ragazzi,

ieri sera mentre scrivevo una parte della tesi mi sono accorto che i tasti FN+F5 e FN+F6 non funzionavano correttamente , nel senso che non riuscivo a a settare la luminosità dello schermo.

Voglio precisare che il modulo sony_acpi è correttamento caricato all'avvio ed ho un Sony VGN-A195EP ( è preistorico, ma me ne sono affezionato :D ) con scheda grafica ATI Radeon Mobility 9200.

Per questo motivo vi spiego come ho risolto sperando che sia di aiuto.[CUT]
Prima di tutto, ti ringrazio per la tua guida che cerca di risolvere una delle poche cose che non funzionano sul mio Sony Vaio VGN-NS21Z.
Volevo chiederti, visto che non sono riuscito nell'impresa, di dare un'occhiata al mio file /etc/acpi/acpi_handler.sh...
Son sicuro che è lì che ho commesso un errore:

Codice: Seleziona tutto

root@andy:~# cat /etc/acpi/acpi_handler.sh
#!/bin/sh                                 
# Default acpi script that takes an entry for all actions

IFS=${IFS}/
    set $@ 

    case "$1" in
      button)   
        case "$2" in
          power) /sbin/init 0
             ;;              
          lid) /etc/acpi/lid.sh
             ;;                
          *) logger "ACPI action $2 is not defined"
             ;;                                    
        esac                                       
        ;;                                         
      *)                                           
        logger "ACPI group $1 / action $2 is not defined"
        ;;                                               
       esac                                              

#if [ $# != 1 ]; then
#exit 1              
#fi
#set $*

echo "$1"
echo "$2"
echo "$3"
echo "$4"

        case "$3" in
        SPIC)
       if [ "$4" = "00000011" ]; then
   echo "up $4"
          /etc/acpi/xbacklight.sh up
       elif [ "$4" = "00000010" ]; then
   echo "down $4"
                         /etc/acpi/xbacklight.sh down
       fi
                     ;;
*)
;;
Quel lid.sh che vedi è uno script che mi permette di avviare la sospensione quando chiudo il coperchio del portatile.
Ciao!

Burroughs.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Unicondor
Linux 1.x
Linux 1.x
Messaggi: 147
Iscritto il: mar 30 nov 2004, 0:00
Slackware: 13.1
Kernel: 2.6.37.6
Località: Potenza
Contatta:

Re: Settare correttamente le Hotkey dei Sony - Backlight

Messaggio da Unicondor »

Ciao Burroughs ,

Scusa se ti rispondo in ritardo..

comunque lo script sembra essere tutto ok, l'unica prova che dovresti fare è lanciare

Codice: Seleziona tutto

acpi_listen
e vedere il risultato che ti da, poichè nel mio caso $3 ( il terzo argomento passato allo script ) è di tipo SPIC mentre girovagando su internet ho trovato anche come risultato SNC.

Magari è questo il problema per cui non ti entra nel costrutto "if"

Ti incollo il mio output per essere più chiaro

Codice: Seleziona tutto

$ acpi_listen
sony/hotkey SPIC 00000001 00000010
sony/hotkey SPIC 00000001 0000003b
Fammi sapere..

Buona giornata

Flavio

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1026
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Re: Settare correttamente le Hotkey dei Sony - Backlight

Messaggio da Burroughs »

Unicondor ha scritto:Ciao Burroughs ,

Scusa se ti rispondo in ritardo..

comunque lo script sembra essere tutto ok, l'unica prova che dovresti fare è lanciare... [CUT]
Ciao, figurati...
Sì, hai ragione tu; questo è l'output che ottengo:

Codice: Seleziona tutto

root@andy:~# acpi_listen
sony/hotkey SNC 00000001 00000010
sony/hotkey SNC 00000001 0000003b
Hai trovato qualcosa in rete su come risolvere?
Ciao,

Burroughs.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Unicondor
Linux 1.x
Linux 1.x
Messaggi: 147
Iscritto il: mar 30 nov 2004, 0:00
Slackware: 13.1
Kernel: 2.6.37.6
Località: Potenza
Contatta:

Re: Settare correttamente le Hotkey dei Sony - Backlight

Messaggio da Unicondor »

basta semplicemente cambiare una parte del codice

Codice: Seleziona tutto

case "$3" in
        SPIC)
in

Codice: Seleziona tutto

case "$3" in
        SNC)
e lasciare tutto invariato e funziona ;)

Flavio

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1026
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Re: Settare correttamente le Hotkey dei Sony - Backlight

Messaggio da Burroughs »

Unicondor ha scritto:basta semplicemente cambiare una parte del codice

Codice: Seleziona tutto

case "$3" in
        SPIC)
in

Codice: Seleziona tutto

case "$3" in
        SNC)
e lasciare tutto invariato e funziona ;)

Flavio
No, purtroppo non funziona...
Ti rimando il mio acpi_handler.sh:

Codice: Seleziona tutto

root@andy:/etc/acpi# cat acpi_handler.sh
#!/bin/sh                               
# Default acpi script that takes an entry for all actions

IFS=${IFS}/
    set $@ 

    case "$1" in
      button)   
        case "$2" in
          power) /sbin/init 0
             ;;              
          lid) /etc/acpi/lid.sh
             ;;                
          *) logger "ACPI action $2 is not defined"
             ;;                                    
        esac                                       
        ;;                                         
      *)                                           
        logger "ACPI group $1 / action $2 is not defined"
        ;;                                               
       esac                                              

#if [ $# != 1 ]; then
#exit 1              
#fi
#set $*

echo "$1"
echo "$2"
echo "$3"
echo "$4"

        case "$3" in
        SNC)
       if [ "$4" = "00000011" ]; then
   echo "up $4"
          /etc/acpi/xbacklight.sh up
       elif [ "$4" = "00000010" ]; then
   echo "down $4"
                         /etc/acpi/xbacklight.sh down
       fi
                     ;;
*)
;;
Ciao,

Burroughs.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Unicondor
Linux 1.x
Linux 1.x
Messaggi: 147
Iscritto il: mar 30 nov 2004, 0:00
Slackware: 13.1
Kernel: 2.6.37.6
Località: Potenza
Contatta:

Re: Settare correttamente le Hotkey dei Sony - Backlight

Messaggio da Unicondor »

Codice: Seleziona tutto

#!/bin/sh                               
# Default acpi script that takes an entry for all actions

IFS=${IFS}/
    set $@

    case "$1" in
      button)   
        case "$2" in
          power) /sbin/init 0
             ;;             
          lid) /etc/acpi/lid.sh
             ;;               
          *) logger "ACPI action $2 is not defined"
             ;;                                   
        esac                                       
        ;;                                         
                                            



        case "$3" in
        SPIN)
       if [ "$4" = "00000011" ]; then
   echo "up $4"
          /etc/acpi/xbacklight.sh up
       elif [ "$4" = "00000010" ]; then
   echo "down $4"
                         /etc/acpi/xbacklight.sh down
       fi
                     ;;
*)
;;
così dovrebbe funzionare

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1026
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Re: Settare correttamente le Hotkey dei Sony - Backlight

Messaggio da Burroughs »

Scusa, perché hai messo questo:

Codice: Seleziona tutto

case "$3" in
        SPIN)
Comunque, non funziona ancora...

Burroughs.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Unicondor
Linux 1.x
Linux 1.x
Messaggi: 147
Iscritto il: mar 30 nov 2004, 0:00
Slackware: 13.1
Kernel: 2.6.37.6
Località: Potenza
Contatta:

Re: Settare correttamente le Hotkey dei Sony - Backlight

Messaggio da Unicondor »

Scusami errore di digitura, mi confondo con il mio

Codice: Seleziona tutto

case "$3" in
        SNC)
Ricapitolando

Codice: Seleziona tutto

#!/bin/sh                               
# Default acpi script that takes an entry for all actions

IFS=${IFS}/
    set $@

    case "$1" in
      button)   
        case "$2" in
          power) /sbin/init 0
             ;;             
          lid) /etc/acpi/lid.sh
             ;;               
          *) logger "ACPI action $2 is not defined"
             ;;                                   
              esac
;;                    
                                       
        case "$3" in
        SNC)
       if [ "$4" = "00000011" ]; then
   
          /etc/acpi/xbacklight.sh up
       elif [ "$4" = "00000010" ]; then
   
           /etc/acpi/xbacklight.sh down
       fi
                     ;;
*)
;;

esac
hai reso eseguibile xbacklight.sh??

Nel caso non dovesse funzionare prova a dare questo comando per vedere se xbacklight.sh funziona correttamente

Codice: Seleziona tutto

acpi_listen > /etc/acpi/xbacklight.sh
e poi premi FN+54 o FN+65 e vedi se funziona correttamente lo script

Flavio

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1026
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Re: Settare correttamente le Hotkey dei Sony - Backlight

Messaggio da Burroughs »

Unicondor ha scritto:hai reso eseguibile xbacklight.sh??

Nel caso non dovesse funzionare prova a dare questo comando per vedere se xbacklight.sh funziona correttamente

Codice: Seleziona tutto

acpi_listen > /etc/acpi/xbacklight.sh
e poi premi FN+54 o FN+65 e vedi se funziona correttamente lo script

Flavio
No, Flavio, non funziona niente.
Anche lanciando solo lo script non riesco a settare la luminosità come vorrei.
A questo punto suppongo che il tuo workaround vada bene solo per una certa categoria di Sony Vaio, categoria alla quale il mio, evidentemente, non appartiene.
Ciao,

Burroughs.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Unicondor
Linux 1.x
Linux 1.x
Messaggi: 147
Iscritto il: mar 30 nov 2004, 0:00
Slackware: 13.1
Kernel: 2.6.37.6
Località: Potenza
Contatta:

Re: Settare correttamente le Hotkey dei Sony - Backlight

Messaggio da Unicondor »

Scusa prova a digitare questo da linea di comando

Codice: Seleziona tutto

# echo 3 > /sys/class/backlight/sony/brightness
prova a cambiare numero e vedi se funziona

Flavio

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1026
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Re: Settare correttamente le Hotkey dei Sony - Backlight

Messaggio da Burroughs »

Unicondor ha scritto:Scusa prova a digitare questo da linea di comando

Codice: Seleziona tutto

# echo 3 > /sys/class/backlight/sony/brightness
prova a cambiare numero e vedi se funziona

Flavio
Ciao, Flavio, e scusami per il ritardo, ma sono tornato ad utilizzare il mio Sony Vaio soltanto adesso dopo le vacanze.
Allora, il comando in questione funziona anche perché, da parecchi mesi ormai, appena mi loggo nel mio profilo su KDE lancio la seguente istruzione

Codice: Seleziona tutto

echo "5" > /sys/class/backlight/sony/brightness
e riesco a diminuire la luminosità.
Ergo, non capisco perché con le tue indicazioni non riesca a venirne a capo.
L'unica cosa che ho notato è che, una volta modificato lo script /etc/acpi/acpi_handler.sh, il notebook non va più in sospensione.
Sospetto un errore di sintassi.

Burroughs.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Bart
Staff
Staff
Messaggi: 4249
Iscritto il: lun 9 ago 2004, 0:00
Località: Rimini

Re: Settare correttamente le Hotkey dei Sony - Backlight

Messaggio da Bart »

Idem, se lancio acpi_listen e digito i tasti (con Fn) non vedo nulla da konsole. Modello FS285H.

Rispondi