Home > jet tech > Alle volte basta dormirci un po’ su: kernel linux 2.6.23.9 e sony_acpi

Alle volte basta dormirci un po’ su: kernel linux 2.6.23.9 e sony_acpi

11 Dicembre 2007

 

Ieri, dopo le disavventure con il simpaticissimo mondo dell’assistenza sanitaria pubblica – peraltro conclusosi oggi con un successo e il necessario appuntamento allo stomatologico – ho deciso di infittirmi per avere sul mio pc le prestazioni in termini di copia su disco che vedevo sui kernel debian precompilati. Io uso il mio kernel, ed esso non voleva saperne: spostava le cose su disco a una velocità 8 volte minore che i kernel debian, in maniera inspiegabile.

Sfruttando il mio uso di una unstable mi sono installato il kernel 2.6.23-1-686, ho copiato il suo .config e l’ho schiaffato dentro la dir dei sorgenti del kernel 2.6.23.9 (ultima versione buona). A questo punto ho anche editato un minimo il .config: ho levato un botto di moduli per schede di rete o audio che non centrano con il mio pc e via dicendo. Non ho toccato nulla della parte riguardante i dischi (a dire il vero una prima volta si, ma vabbé) e ho levato il supporto degli initrd. Risultato: due o tre compilazioni in cui il kernel non ne voleva sapere di partire, e poi di partire e darmi i risultati sperati con la velocità di scrittura su dischi sata. Ieri notte ci ho bestemmiato sopra fino all’una.

Poi stamattina ho riaperto il pc, ho messo il .config del kernel debian nella directory dei sorgenti del kernel 2.6.23.9, ho corretto solo il nome della local versione e il processore usato (avere un kernel per pentium I mi pareva brutto), ho lanciato make-kpkg clean e poi "make-kpkg –initrd kernel_image". Dopo un quarto d’ora di cui dieci minuti a compilare moduli che non mi serviranno mai, ho rebootato e funzionava tutto alla perfezione. Poi ho pensato bene di passare il resto della mattinata a cercare di eliminare i moduli inutili non riuscendo mai a ottenere il risultato che mi ponevo: vorrà dire che mi terrò un kernel 2.6.23.9 più grasso del previsto.

Poi mi è venuto in mente perché avevo cominciato a pacioccare: con i kernel debian e con i nuovi kernel il supporto sony-laptop è incluso nel kernel. Ovvero senza dover compilare il modulo esterno a parte sony_acpi il sistema di gestione delle risorse di linux dovrebbe vedere i comandi per gli hotkeys del vaio e altre cosucce. Indagando in rete sono riuscito a trovare dove sony_laptop.ko infila i file relativi al controllo di tutto ciò, ma avevo il problema che il wrapper che mi consentiva di controllare l’azione dei vari hotkeys sui file in /proc di sony_acpi.ko non funzionavano più. Allora mi sono messo e ho corretto il codice del wrapper fsfn, sostituendo alle varie occorrenze di "/proc/acpi/sony/brightness" i valori corretti ("/sys/devices/platform/sony-laptop/brightness" e "/sys/class/backlight/sony/brightness"). Ho compilato il nuovo wrapper e ho dovuto correggere il file /etc/fsfn.conf per leggere il device di input giusto (nel mio caso /dev/event/input0) relativo alla tastiera. Che fatica, ma ora funziona tutto!

In pratica: scaricate il sorgente di fsfn, editate acpihandler.c con i valori corretti, correggete anche lo script di inizializzazione da piazzare in /etc/init.d/ (che deve controllare l’esistenza dei file creati da sony_laptop.ko e non di quelli creati da sony_acpi.ko), compilate e settate correttamente i valori di /etc/fsfn.conf. Non è proprio immediato ma poi gli hotkeys relativi a luminosità dello schermo e volumi funzionano perfettamente 🙂 

Categorie:jet tech Tag:
  1. Daniele
    1 Gennaio 2008 a 16:50 | #1

    Ciao anche io ho un vaio (FZ18M) e funziona tutto a parte quel maledetto Fn-f5 , Fn-f6 oppure qualsiasi cosa per farmi cambiare la luminosità. Ho il kernel 2.6.23-1 (debian-sid) siccome ho visto che a te funziona il tutto mi potresti dire come fare cosa contrallare e come agire dettagliatamente per abilitarli???? non sono un niubbo ma nemmeno un guru quindi ti prego di non essere troppo approssimativo.
    Grazie

  2. nero
    1 Gennaio 2008 a 17:15 | #2

    In pratica per fare funzionare la cosa io uso un po’ di cose: intrecciando i report che ho fatto qui e in questo post dovresti riuscire a ritrovartici.

    In pratica il modulo utile è sony-laptop (fino a poco tempo fa usavo un modulo extra kernel chiamato sony_acpi). Come spiego negli ultimi due paragrafi per far funzionare il tutto ho dovuto scaricarmi un programmino (fsfn) che serve a intercettare i segnali della tastiera e a rimapparli come valori negli appositi file.

    Scarica fsfn, modifica il codice (in pratica devi mettere delle directory diverse da quelle del codice) e compilalo. Poi sempre nel codice di fsfn troverai uno scriptino da mettere tra gli script di init per far partira a ogni avvio fsfn. L’ultimo passaggio sara’ configurare bene il file /etc/fsfn.conf dove devi dirgli il corretto path dove trova gli event della tastiera (per me è /dev/event/input0) e alcune altre cose.

    commenta ancora se non ti riesce, ma dimmi almeno cosa hai provato a fare 🙂

I commenti sono chiusi.