Pagina 1 di 1

[Kernel] Switch jack cuffie e Dell Inspiron 6400 -

Inviato: mercoledì 29 aprile 2009, 12:56
da ganassa
Ciao
ho un Dell Inspiron 6400 sul quale gira felicemente una Ubuntu 8.10 64 bit da diversi mesi, e al quale ho ricompilato un kernel ad-hoc semplificatissimo grazie al quale ho un notevole guadagno in velocità di boot e in leggerezza generale del sistema.

L'altro giorno mi sono accorto, o meglio si sono accorti i colleghi  ;D, che anche una volta inserito il jack nella presa cuffie del laptop gli altoparlanti rimangono attivi.
Questo accade solo con il mio Kernel custom, mentre con quello fornito da Ubuntu il tutto funziona perfettamente.

Qualche informazione:

Versione del Kernel da me compilato:

Codice: Seleziona tutto

$ uname -a
Linux gray 2.6.27.2-inspiron6400-bestfit-v3 #1 PREEMPT Sun Apr 26 03:34:14 CEST 2009 x86_64 GNU/Linux
opzione del modulo relativo alla scheda audio:

Codice: Seleziona tutto

$ sudo cat /etc/modprobe.d/alsa-base |grep snd-hda-intel
options snd-hda-intel model=dell-m21
differenza tra l'elenco dei moduli installati e utilizzati (lsmod) dal mio kernel e dal kernel standard: a destra (">") sono indicati i moduli presenti nel kernel standard e non nel mio, tra i quali immagino che ci sia il modulo responsabile della gestione dello switch:

Codice: Seleziona tutto

diff lsmod_bestfit_ordered_cut.txt lsmod_standard_ordered_cut.txt
14a15
> container           
15a17
> cpufreq_ondemand    
17a20
> cpufreq_userspace   
22d24
< drm                 
29a32
> freq_table          
31d33
< i915                
36a39,41
> ipv6                
> iTCO_vendor_support 
> iTCO_wdt            
37a43
> joydev              
39a46
> lp                  
46a54,56
> parport             
> parport_pc          
> pata_acpi           
53d62
< ricoh_mmc           
87a97
> wmi                 
Qualcuno ha idea di quale modulo possa essere in relazione con lo switch, o se la soluzione dovesse essere altrove, quale possa essere?

Allego inoltre il file config del mio kernel, nel caso dovesse interessare a qualcuno.

Re: [Kernel] Switch jack cuffie e Dell Inspiron 6400 -

Inviato: giovedì 30 aprile 2009, 11:39
da ganassa
Up (si può?)

Re: [Kernel] Switch jack cuffie e Dell Inspiron 6400 -

Inviato: giovedì 30 aprile 2009, 11:43
da [lost]-Divilinux
non e' nessun modulo per lo switch, semplicemente la versione di alsa diversa
Infatti se noti, da alsamixer, i nomi dei canali ed i canali stessi sono diversi. Per escludere i diffusori interni quando usi gli auricolari devi mettere in mute un canale. Quale? dipende..da me e' "speaker"

Re: [Kernel] Switch jack cuffie e Dell Inspiron 6400 -

Inviato: giovedì 30 aprile 2009, 14:18
da ganassa
[lost]-Divilinux ha scritto: non e' nessun modulo per lo switch, semplicemente la versione di alsa diversa
Infatti se noti, da alsamixer, i nomi dei canali ed i canali stessi sono diversi. Per escludere i diffusori interni quando usi gli auricolari devi mettere in mute un canale. Quale? dipende..da me e' "speaker"
la versione di alsa è la stessa: il confronto è fatto sulla stessa macchina facendo il boot alternativamente tra kernel standard e custom.
Il problema è sicuramente dai canali (che alsa "deduce" dall'hardware, ovvero dal kernel, ovvero dai suoi moduli) tantovero che con il mio kernel custom ne ho solo 3 (al prossimo reboot controllo quanti ne ho con il kernel standard): abbassando "speaker" si abbassano entrambi i volumi, e alzando "headphone" idem.
Un'alternativa che mi viene in mente ora è che il problema risieda non tanto nella presenza o meno di un modulo (che potrebbe comunque essere estraneo dal controllo dell'audio in sé: lo spegnimento degli altoparlanti è un semplice interruttore, sarà poi ALSA a controllarlo all'uopo), ma piuttosto di un parametro di default del modulo audio snd_hda_intel. Purtroppo le mie ricerche su google non hanno avuto esito positivo, perlomeno per il mio Dell (ho visto problemi simili risolti su altre macchine con opzioni in /etc/modules.conf)

Re: [Kernel] Switch jack cuffie e Dell Inspiron 6400 -

Inviato: giovedì 30 aprile 2009, 14:38
da ganassa
Ok, ho fatto il reboot con il kernel standard: alsamixer mi mostra i seguenti controlli:

Master
PCM
IEC958
IEC958 D
Capture

nella versione custom invece:
Headphone
Capture
Speaker

???

Re: [Kernel] Switch jack cuffie e Dell Inspiron 6400 -

Inviato: giovedì 30 aprile 2009, 19:47
da [lost]-Divilinux
basta mettere in mute il canale "speaker" in modo da escludere i diffusori all'inserimento delle cuffie.
Una cosa sopra i driver alsa..una cosa e' il modulo, che puo' essere 1.0.17 o 1.0.18 o 1.0.19 (sono le ultime versioni) ma Ubuntu fornisce le librerie alsa-base e alsa-utils tramite repository, e la versione di quei pacchetti per intrepid, ad esempio, non e' quella dei pacchetti di Jaunty. Per questo ormai su Ubuntu, se vuoi compilare il kernel, non basta il solo modulo snd-hda-intel (o altri) ma serve installare alsa-driver, alsa-lib e alsa-utils da sorgenti..ricordandosi di rimuovere quelli dei repository altrimenti si mischia tutto.

Re: [Kernel] Switch jack cuffie e Dell Inspiron 6400 -

Inviato: giovedì 30 aprile 2009, 21:05
da ganassa
Innanzitutto grazie per l'attenzione  :)
[lost]-Divilinux ha scritto: basta mettere in mute il canale "speaker" in modo da escludere i diffusori all'inserimento delle cuffie.
purtroppo, come dicevo sopra, abbassando speaker si abbassa anche il volume delle cuffie. E ri-alzando headphone, si alza anche l'altoparlante (mi rendo conto che la cosa suona strana, ma il problema è proprio questo).
Inoltre questo sarebbe un escamotage, ciò che mi piacerebbe raggiungere è il comportamento "normale": infili le cuffie, gli altoparlanti si spengono. Ma comunque anche arrivare a controllarli in maniera indipendente sarebbe un passo avanti, purtroppo non è così.
Una cosa sopra i driver alsa..una cosa e' il modulo, che puo' essere 1.0.17 o 1.0.18 o 1.0.19 (sono le ultime versioni) ma Ubuntu fornisce le librerie alsa-base e alsa-utils tramite repository, e la versione di quei pacchetti per intrepid, ad esempio, non e' quella dei pacchetti di Jaunty. Per questo ormai su Ubuntu, se vuoi compilare il kernel, non basta il solo modulo snd-hda-intel (o altri) ma serve installare alsa-driver, alsa-lib e alsa-utils da sorgenti..ricordandosi di rimuovere quelli dei repository altrimenti si mischia tutto.
In pratica, se ho capito bene, ricompilare il kernel (o meglio: ricompilare il modulo della scheda audio) comporta le necessità di ricompilare anche alsa e le sue librerie, altrimenti quelle presenti nella stessa versione ma compilata con il kernel standard fanno funzionare sì la scheda audio, ma non riescono ad accedere alle features avanzate, giusto?
Se è così proverò ASAP, grazie

Re: [Kernel] Switch jack cuffie e Dell Inspiron 6400 -

Inviato: giovedì 30 aprile 2009, 21:11
da [lost]-Divilinux
In pratica, se ho capito bene, ricompilare il kernel (o meglio: ricompilare il modulo della scheda audio) comporta le necessità di ricompilare anche alsa e le sue librerie, altrimenti quelle presenti nella stessa versione ma compilata con il kernel standard fanno funzionare sì la scheda audio, ma non riescono ad accedere alle features avanzate, giusto?
Si piu' o meno. E' che Ubuntu fornisce alsa-base e alsa-utils attraverso i repository..e non e' detto che vadano bene per la versione di alsa che hai installato con un kernel piu' recente rispetto a quello di ubuntu.

Su questo computer ho una intel ICH9 e alsa 1.0.18. Quando inserisco le cuffie i diffusori si disattivano automaticamente. Su un altro portatile ho una ICH7 e la stessa versione di alsa ma devo disattivare manualmente il canale "speaker".

Re: [Kernel] Switch jack cuffie e Dell Inspiron 6400 -

Inviato: giovedì 30 aprile 2009, 21:20
da ganassa
[lost]-Divilinux ha scritto: Si piu' o meno. E' che Ubuntu fornisce alsa-base e alsa-utils attraverso i repository..e non e' detto che vadano bene per la versione di alsa che hai installato con un kernel piu' recente rispetto a quello di ubuntu.
Aspetta che forse non mi sono spiegato bene io, oppure non ho capito bene cosa intendi: sia con il kernel standard che con il kernel ricompilato la versione di ALSA utilizzata è la stessa, identica, perchè sul Dell c'è installata una sola distribuzione (Ubuntu 8.10) e, ovviamente, una sola versione di ALSA. anche il modulo hd-intel è lo stesso, o meglio, proviene dagli stessi sorgenti. In pratica: stessa macchina, stessa distribuzione, stesse versioni di tutti i pacchetti, stessa versione del kernel, ma moduli differenti e differenti direttive di compilazione. La logica mi ha spinto a pensare che il problema dovrebbe essere nella differenza, quindi o in qualche modulo presente in un kernel e non nell'altro, oppure in qualche direttiva di compilazione (ma oltre al CPU type non vedo molti spazi su cui riflettere). Invece pare che non sia esattamente così: quello che penso a questo punto è che la ricompilazione del kernel dislochi qualche oggetto (puntatori, link, qualchealtracosa) in maniera differente rispetto al kernel precompilato, e quindi ALSA necessiti di una ricompilazione perchè il suo build sia costruito ad hoc sul modulo compilato ad hoc.

Re: [Kernel] Switch jack cuffie e Dell Inspiron 6400 -

Inviato: giovedì 30 aprile 2009, 22:50
da [lost]-Divilinux
ma moduli differenti e differenti direttive di compilazione
Piu' che altro patch..

Re: [Kernel] Switch jack cuffie e Dell Inspiron 6400 -

Inviato: venerdì 1 maggio 2009, 0:48
da ganassa
[lost]-Divilinux ha scritto:
ma moduli differenti e differenti direttive di compilazione
Piu' che altro patch..
ovvero? i sorgenti sono del kernel ubuntu (non è il vanilla), le patch sono le stesse applicate al kernel precompilato, quindi salvo moduli e direttive nel kernel non dovrebbero esserci differenze. C'è altro che devo patchare?

Re: [Kernel] Switch jack cuffie e Dell Inspiron 6400 -

Inviato: venerdì 1 maggio 2009, 2:38
da [lost]-Divilinux
Avevo capito male io allora, pensavo fossero due kernel diversi.
Se hai importato la stessa configurazione e c'e' questa differenza, allora non puo' essere un modulo..ma sicuramente qualcosa a livello software.