Changes

Created page with 'Benvenuti nella pagina Wiki di Simone Giustetti. Lingue: [http://www.giustetti.net/wiki/index.php?title=default_sound_card English] - '''Italiano''' ---- Ho recentemente agg…'
Benvenuti nella pagina Wiki di Simone Giustetti.


Lingue: [http://www.giustetti.net/wiki/index.php?title=default_sound_card English] - '''Italiano'''

----


Ho recentemente aggiornato la macchina che uso per lavoro alla versione 14.0 di Slackware Linux dalla precedente 13.37, che incominciava a mostrare i segni del tempo. L'operazione è stata nel complesso semplice e veloce e nel giro di un paio d'ore ho potuto avviare il nuovo sistema operativo. Purtroppo durante la successiva fase di configurazione ho rilevato il manifestarsi di alcuni problemi con la scheda audio. Nel seguito dell'articolo verranno descritti i problemi riscontrati e la soluzione applicata.


Configurando il sottosistema audio, il kernel 3.2.29 segnalava la presenza di due schede anzichè dell'unica rilevata dal precedentemente utilizzato 2.6.37. La nuova scheda impostata come default dal sistema operativo non sembrava però funzionare risultando in molti fastidiosi problemi con le applicazioni multimediali installate:
* Difficoltà nel controllare il volume delle applicazioni.
* Necesssità di assegnare il controllo corrispondente al volume nel mixer successivamente ad ogni reboot.
* Impossibilità di '''eseguire più applicazioni multimediali contemporaneamente'''. La prima avviata occupava in maniera esclusiva mixer e schede sonore impedendo alle altre di riprodurre alcunchè.
* Continua comparsa di messaggi di errore relativi al sottosistema sonoro.
* Impossibilità di '''riprodurre file musicali o filmati in applicazioni che girassero con Wine'''.
Lo scenario non era certamente ottimale, non potendo tornare alla precedente versione di Slackware, ho deciso di risolvere il problema di configurazione.


== Diagnosi ==
Mi sono inizialmente preoccupato di capire perchè il kernel 3.2.29 rilevasse due schede audio essendo la macchina dotata di una sola. Per farlo ho interrogato lo pseudo file '''/proc/asound/cards''':
root@darkstar_5:~# '''cat''' /proc/asound/cards
0 [Generic ]: HDA-Intel - HD-Audio Generic
HD-Audio Generic at 0xfeb44000 irq 42
1 [Generic_1 ]: HDA-Intel - HD-Audio Generic
HD-Audio Generic at 0xfeb40000 irq 16
In seguito ho determinato la configurazione dei due dispositivi consultando l'output del comando '''amixer''' selezionando la scheda con l'opzione '''-c''':
root@darkstar_5:~# '''amixer info''' ''-c'' 0
Card default 'Generic'/'HD-Audio Generic at 0xfeb44000 irq 42'
Mixer name : 'ATI R6xx HDMI'
Components : 'HDA:1002aa01,00aa0100,00100200'
Controls : 5
Simple ctrls : 1
root@darkstar_5:~# '''amixer info''' ''-c'' 1
Card hw:1 'Generic_1'/'HD-Audio Generic at 0xfeb40000 irq 16'
Mixer name : 'Realtek ALC269VB'
Components : 'HDA:10ec0269,144dc608,00100100'
Controls : 17
Simple ctrls : 11
Ho così appreso che una delle schede rilevate fosse in realtà '''l'uscita [http://it.wikipedia.org/wiki/High-Definition_Multimedia_Interface HDMI] della scheda video ATI''' installata nella macchina. Il supporto HDMI è stato introdotto nei kernel della serie 3.2 per questa ragione i problemi non si erano mai presentati con Slackware 13.37. Il kernel 2.6' non era comunque in grado di far funzionare tale hardware.


== Soluzioni ==
Diagnosticata la causa dei malfunzionamenti si presentavano due potenziali soluzioni:
# Disabilitare la "scheda" HDMI in modo che il sistema la ignorasse.
# Configurare la scheda Realtek come default per il sistema operativo.

Ho inizialmente intrapreso la prima strada in quanto non utilizzo comunque dispositivi esterni collegati alla scheda video. Ho pensato quindi di disabilitare il relativo modulo del kernel inserendo una istruzione '''blacklist''' nel file '''/etc/modprobe.d/alsa-base.conf'''. Per capire quali moduli utilizzassero le due schede audio ho ispezionato l'output del comando '''lspci''' lanciato con l'ausilio della opzione '''-v'''. Segue un estratto:
root@darkstar_5:~# lspci -v
...
00:01.1 Audio device: Advanced Micro Devices [AMD] nee ATI BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series]
Subsystem: Advanced Micro Devices [AMD] nee ATI BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series]
Flags: bus master, fast devsel, latency 0, IRQ 42
Memory at feb44000 (32-bit, non-prefetchable) [size=16K]
Capabilities: [50] Power Management version 3
Capabilities: [58] Express Root Complex Integrated Endpoint, MSI 00
Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
'''Kernel driver in use: snd_hda_intel'''
...
00:14.2 Audio device: Advanced Micro Devices [AMD] Hudson Azalia Controller (rev 01)
Subsystem: Samsung Electronics Co Ltd Device c608
Flags: bus master, slow devsel, latency 32, IRQ 16
Memory at feb40000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [50] Power Management version 2
'''Kernel driver in use: snd_hda_intel'''
Entrambe le schede utilizzano il medesimo modulo ne risulta l'impossibilit&agrave; di escluderne il caricamento all'avvio del sistema. Non resta che la seconda strada: '''configurare la scheda Realtek come predefinita'''.


La versione di [http://www.alsa-project.org/main/index.php/Main_Page ALSA] installata, la 1.0.26, &egrave; in grado di funzionare in assenza di file di configurazione, interfacciandosi con il sistema. Per aggirare la configurazione di sistema ed imporne una personalizzata i file devono per&ograve; essere creati. Nello specifico ho scritto il file '''/etc/asound.conf''' finalizzato alla configurazione globale delle schede audio. Il contenuto del file influenza la configurazione del sottosistema audio per tutti gli utenti. Nel file ho inserito le righe:
root@darkstar_5:~# '''cat''' /etc/asound.conf
# Set the realtek sound card as the default one
defaults.ctl.card 1
defaults.pcm.card 1
defaults.pcm.device 0
Per verificare l'efficacia della configurazione ho riavviato ALSA:
root@darkstar_5:~# '''/etc/rc.d/rc.alsa restart'''
Loading ALSA mixer settings: /usr/sbin/alsactl restore
Found hardware: "HDA-Intel" "Realtek ALC269VB" "HDA:10ec0269,144dc608,00100100" "0x144d" "0xc608"
Hardware is initialized using a generic method
Potendo subito constatare che la nuova configurazione corrispondesse ai miei desideri:
root@darkstar_5:~# '''amixer info''' ''-c'' 0
Card hw:0 'Generic'/'HD-Audio Generic at 0xfeb44000 irq 42'
Mixer name : 'ATI R6xx HDMI'
Components : 'HDA:1002aa01,00aa0100,00100200'
Controls : 5
Simple ctrls : 1
root@darkstar_5:~# '''amixer info''' ''-c'' 1
Card hw:1 'Generic_1'/'HD-Audio Generic at 0xfeb40000 irq 16'
Mixer name : 'Realtek ALC269VB'
Components : 'HDA:10ec0269,144dc608,00100100'
Controls : 17
Simple ctrls : 11
root@darkstar_5:~# '''amixer info''' ''-d'' default
Card default 'Generic_1'/'HD-Audio Generic at 0xfeb40000 irq 16'
Mixer name : 'Realtek ALC269VB'
Components : 'HDA:10ec0269,144dc608,00100100'
Controls : 17
Simple ctrls : 11
Per ulteriore verifica ho lanciato la riproduzione di un file di test tramite il comando '''aplay''' specificando il dispositivo di default con l'opzione '''-D''':
root@darkstar_5:~# '''aplay''' ''-D'' default /usr/share/sounds/alsa/Front_Center.wav
Playing WAVE '/usr/share/sounds/alsa/Front_Center.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono
Gli altoparlanti hanno riprodotto la sequenza di parole "front center" quando prima ottenevo solo un irritante silenzio.


Per commenti, consigli, domande inviate una e-mail all'indirizzo ''studiosg [chiocciola] giustetti [punto] net''.


Link esterni

----

* [http://www.alsa-project.org/main/index.php/Documentation La documentazione del progetto ALSA]
* [https://wiki.archlinux.org/index.php/Advanced_Linux_Sound_Architecture La pagina dedicata ad ALSA del WIKI di ArchLinux]

----

Lingue: [http://www.giustetti.net/wiki/index.php?title=default_sound_card English] - '''Italiano'''