Ubuntu 12.10 (Linux 3.5) e sony-laptop

Il kernel 3.5 ha portato diversi cambiamenti, ma per il mio portatile ha portato anche diversi problemi: ad esempio kbd_backlight e kbd_backlight_timeout sono spariti e ACPI non rileva più i tasti associati ad Fn. Dopo un po’ di test, ho scoperto che il problema sembra essere circoscritto al modulo sony-laptop.c, quindi per il momento sto ovviando al problema usando il modulo incluso nel kernel 3.4.

Se avete un VPCS11E7E o riscontrate problemi analoghi col vostro VAIO, ho preparato un PPA per rendere il downgrade più semplice:

sudo add-apt-repository ppa:shiba89/vaio-kernel
sudo apt-get update
sudo apt-get install linux-headers-generic sony-laptop-dkms

Il pacchetto che andrete ad installare contiene il modulo sony-laptop del kernel 3.4 con alcune patch prese da http://www.absence.it/vaio-acpi/source/patches/. Compilazione e installazione sono gestite da DKMS, quindi non avrete bisogno di effettuare nessuna modifica manuale. Una volta finita l’installazione è sufficiente riavviare il computer. Per tornare al modulo incluso nel vostro kernel

sudo apt-get purge sony-laptop-dkms

PS: Non fate caso agli altri pacchetti presenti nel repo, sono vecchi test inutili.

Appunti sulle patch aggiunte al modulo

(Tutto questo è scritto molto di fretta, e non escludo che non si capisca niente)

Sto usando queste patch da ormai più di un anno, e fin’ora non ho riscontrato problemi. Per il mio modello, aggiungono alcune funzionalità interessanti sotto /sys/devices/platform/sony-laptop:

Controlli per il sensore di luce ambiente

Avete presente che su Windows la retroilluminazione della tastiera e dello schermo vengono regolate automaticamente? Questi sono i controlli necessari a far sì che questo accada. Sfortunatamente non c’è un demone stabile che si occupi di farli funzionare (se volete provare qualcosa di sperimentale, ve lo linko nei commenti), né sono in grado io di scriverlo.

  • als_backlight
  • als_backlight_levels
  • als_defaults
  • als_kelvin
  • als_lux
  • als_managed
  • als_power

Controllo della carica della batteria

Indica a quale percentuale la carica della batteria deve fermarsi.

  • battery_care_limiter: 0 – 100%, 1 – 80%, 2 – 50%

Protezione dell’hard disk da shock

Non ho la più pallida idea se e come funzionino.

  • gsensor_protection
  • gsensor_sensitivity
  • gsensor_val_type
  • gsensor_xval
  • gsensor_yval
  • gsensor_zval

Controllo per lo spegnimento dell’unità DVD

Impostato a 0 spegne l’unità DVD. Per riaccenderla è sufficiente reimpostare il controllo a 1 o premere il tasto di espulsione dell’unità

  • odd_power

Controlli per il comportamento della ventola

  • thermal_profiles: espone il numero di profili per il comportamento della ventola (3 sul mio PC: 0 balanced, 1 silence, 2 performance).
  • thermal_control: accetta i valori esposti da thermal_profiles.

Queste patch vanno anche a modificare il comportamento di rfkill, aggiungendo due controlli:

$ rfkill list | grep sony
0: sony-wifi: Wireless LAN
1: sony-bluetooth: Bluetooth

Questi permettono una migliore gestione dell’accensione e dello spegnimento delle periferiche wireless. Un esempio banale: se spegnete wi-fi e bluetooth da Windows, vi sarà possibile riattivarli da Ubuntu.

15 pensieri su “Ubuntu 12.10 (Linux 3.5) e sony-laptop”

  1. Ciao Shiba,

    io con il mio Vaio cpcs12c5e ci lavoro sodo tutti i giorni, ma non ho più tempo e testa di rimediare ai paciocchi che ogni tanto succedono tra Ubuntu ed il Kernel.

    Ormai faccio un giro qui da te per trovare qualche soluzione. Ed anche questa volta mi hai dato una grossa mano! Funziona di nuovo bene: i tasti funzione generano di nuovo degli acpi events. 🙂

    Non riesco a fare gli “echo” dentro gli altri files per il controllo del lettore dvd e del thermal_control….permission denied. Evabbò! In ogni caso tutto funziona come prima dell’aggiornamento.

    Grazie grazie

  2. Per controllare la luminosità dello schermo e il funzionamento in automatico della tastiera, è possibile utilizzare questo programmino

    http://sourceforge.net/projects/sony-acpid/

    Per farlo funzionare al meglio, dopo aver introdotto le modifiche al file xorg.conf e ancora prima di compilarlo, ho dovuto modificare il fileacpi_funcs.h definendo così queste due variabili:

    static int const ACPI_MIN_BRGT = 0;
    static int const ACPI_MAX_BRGT = 28;

    È possibile testare quali siano i propri valori minimi e massimi, cambiando il valore di questo file:

    sudo nano /sys/class/backlight/nvidia_backlight/brightness

    Spero di essere stato utile.

    1. È lo stesso che ho provato io, solo una versione un pochino più vecchia.
      Qui trovi l’ultima versione http://code.google.com/p/vaio-f11-linux/wiki/AutoDimmingBacklightDaemon , che non è comuqnue nuovissima (l’ultimo commit è del 2 giugno 2011), ma semplifica un po’ il codice. Tuttavia, dopo qualche minuto che il demone è in funzione, smette misteriosamente di funzionare (i vari als_* però continuano ad aggiornarsi) e non sono ancora riuscito a capirne il motivo…

  3. Ciao shiba,

    volevo chiederti un paio di cose.

    Innanzitutto, io sono ancora sulla 12.04 ed usavo felicemente questa distro con tutti i tuoi scriptini e cose simili, se non fosse che ad un certo punto ho deciso di usare il ppa che ti mette gli ultimi driver nvidia visto che promettevano un raddoppio delle performance per quanto riguarda le opengl et similia (uso delle simulazioni molto pesanti quindi mi è servito un sacco). Da un paio di giorni però ho notato appunto che la tastiera non si spegne più, e la luminosità è andata a donnine.

    La mia prima domanda è: il ppa qui sopra funziona anche per il mio povero precise pangolin? O devo fare qualche ulteriore accorgimento?

    La seconda è: se il ppa fosse compatibile con la mia distro, e soprattutto se funzionasse, magicamente mi tornerebbero a funzionare i tasti Fn+F4, Fn+F5, Fn+F9 Fn+F10 così come li avevo impostati seguendo la tua guida oppure no?

    Grazie,

    Ale

    1. Allora, prima di tutto una piccola premessa che potrebbe tornarti utile: solitamente sconsiglio i PPA X Updates e soprattutto xorg-edgers (penso il tuo sia uno di questi) perché oltre ai driver aggiornano anche parti di X che, se tutto funziona bene, non ti interessa aggiornare. Detto questo, su Precise sono disponibili i pacchetti nvidia-experimental-304 e nvidia-experimental-310, non aggiornati all’ultimissima release, ma hanno tutti i vantaggi introdotti delle versioni 304 e 310.
      Ora veniamo al tuo problema. Hai aggiornato solo i driver video o hai cambiato pure kernel? Visto che usi Precise dovresti avere il 3.2.0-3* (controlla con uname -r), con il quale i tastini e il controllo della retroilluminazione della tastiera dovrebbero funzionare out of the box. In caso, controlla quali file hai sotto /sys/devices/platform/sony-laptop e postameli qui. Prova anche ad aprire un terminale e digitare acpi_listen, poi premi i tasti Fn+F* e vedi se li rileva. Posta il tutto che passiamo al passo successivo 😀

      PS: puoi anche provare ad aggiungere il mio PPA, mal che vada non cambia niente, e la rimozione del pacchetto è pulita.

      1. > Possibile che io non sia in grado di risponderti
        > perchè ti ho scritto un messaggio troppo lungo?
        Sembra che lo metta in spam, forse proprio perché è troppo lungo. Ora lo sblocco 😀

        Risposta breve: sì, il mio PPA risolve quel problema, almeno fino al kernel 3.5, già col 3.6 il modulo non compila più.
        È disponibile una patch apposita per 3.6 e successivi, ma non è ancora entrata ufficialmente mainline. Spero che per il rilascio di Ubuntu 13.04 l’avranno inclusa nel kernel 3.8.

        Comunque sì, xorg-edgers aggiorna anche il kernel, altra pratica che a differenza di molti sconsiglio (a meno che non si conosca un effetto in particolare che si vuole nel nuovo kernel e ne si conoscano tutte le possibili regressioni). Se ti senti coraggioso e fortunato puoi provare ad usare ppa-purge per rimuovere il PPA: “sudo ppa-purge xorg-edgers”. Sulla pagina di xorg-edgers dicono che usando la loro versione di ppa-purge dovrebbe filare tutto liscio.
        Scegli una delle due strade, o il mio PPA, o rimuovere xorg-edgers 🙂

  4. Allora, ti rispondo punto per punto:

    1- grazie per l’info (averla saputa prima!), comunque sì, ho il ppa xorg-edgers (ho semplicemente cercato su internet come fare per avere i driver nvidia su precise ed ho trovato questa come la soluzione da seguire — ed ovviamente essendo io un pecorone mi sono ciecamente fidato)
    2- ho il kernel 3.5.0-18-generic, che credo mi sia stato aggiornato dal ppa xorg-edgers perchè non ho altri ppa “esotici” a parte l’ubuntu-x-swat-x-updates che non so minimamente cosa faccia ma magari tu hai lumi in merito
    3- ecco cosa ho nella cartella che mi hai chiesto (ho dato ls -al * così magari puoi vedere più roba utile):
    alecive@calliope:/sys/devices/platform/sony-laptop$ ls -al *
    lrwxrwxrwx 1 root root 0 dic 3 09:03 driver -> ../../../bus/platform/drivers/sony-laptop
    -r–r–r– 1 root root 4096 dic 3 11:57 modalias
    lrwxrwxrwx 1 root root 0 dic 3 09:03 subsystem -> ../../../bus/platform
    -rw-r–r– 1 root root 4096 dic 3 11:57 thermal_control
    -r–r–r– 1 root root 4096 dic 3 11:57 thermal_profiles
    -rw-r–r– 1 root root 4096 dic 3 11:57 touchpad
    -rw-r–r– 1 root root 4096 dic 3 09:03 uevent
    power:
    totale 0
    drwxr-xr-x 2 root root 0 dic 3 11:57 .
    drwxr-xr-x 3 root root 0 dic 3 09:03 ..
    -rw-r–r– 1 root root 4096 dic 3 11:57 async
    -rw-r–r– 1 root root 4096 dic 3 11:57 autosuspend_delay_ms
    -rw-r–r– 1 root root 4096 dic 3 11:57 control
    -r–r–r– 1 root root 4096 dic 3 11:57 runtime_active_kids
    -r–r–r– 1 root root 4096 dic 3 11:57 runtime_active_time
    -r–r–r– 1 root root 4096 dic 3 11:57 runtime_enabled
    -r–r–r– 1 root root 4096 dic 3 11:57 runtime_status
    -r–r–r– 1 root root 4096 dic 3 11:57 runtime_suspended_time
    -r–r–r– 1 root root 4096 dic 3 11:57 runtime_usage
    4- dando acpi_listen, alla digitazione di Fn+F5, Fn+F6, Fn+F9, Fn+F10 (luminosità up/down e retroilluminazione tastiera no/sì) non succede nulla. Palle di fieno che rotolano. Se clicco gli altri tasti non succede niente ma almeno fanno quello che dovrebbero fare (tipo il volume). L’unica eccezione è Fn+F8 che non è associato a nessun comando e mi ritorna come output “^[[19~”
    5- allora provo ad installare il tuo ppa? Non sarebbe allora meglio togliere il ppa xorg-edgers (e magari pure ubuntu-x-swat-x-updates) ed installare gli nvidia-experimental-310?

  5. Ho installato il ppa, e funziona di nuovo tutto alla grande! Grazieeeeeeee! 🙂
    Una domanda: quindi tra un po’ xorg-edgers aggiornerà il kernel alla 3.6 e mi ritroverò di nuovo a terra? Sai quando questo succederà? Dovrei togliere il tuo ppa per non fare casini quando succederà?

    1. Se vuoi una risposta sincera: non so se e quando lo aggiorneranno. Su quel PPA per Oneiric sono fermi al 3.2, per Precise al 3.5 mentre per Quantal sono al 3.7. È probabile che non lo aggiornino quindi, però chissà…

  6. Ciao, come mai non riesco a modificare il contenuto del file thermal_profiles? Dice che il file è di sola lettura è non posso modificarlo.

    1. Perché quello modificabile è thermal_control:
      -rw-r–r– 1 root root 4096 gen 7 13:17 thermal_control
      -r–r–r– 1 root root 4096 gen 7 13:17 thermal_profiles

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *