lunedì 31 dicembre 2012

Risoluzione problemi audio in Ubuntu.

Maria Susana Diaz | 19:36 |
audio_ubuntuIntroduzione. I problemi audio possono avere molte cause: assenza di codec, errata rilevazione automatica dell'hardware, configurazione o impostazioni errate e, nel peggiore dei casi, hardware non supportato. 

In questa guida verranno mostrati i principali metodi per diagnosticare e risolvere i problemi relativi alle schede audio.

Diagnostica

Riconoscimento.

Ubuntu utilizza Alsa come server audio ed è già presente nel sistema.
  • Per verificare se il server audio abbia rilevato correttamente la scheda, digitare il seguente comando in una finestra di terminale:
    cat /proc/asound/cards

  • Se la scheda audio è stata riconosciuta, il risultato del comando precedente sarà simile al seguente:

     0 [CMI8738MC6     ]: CMI8738-MC6 - C-Media PCI CMI8738-MC6
                          C-Media PCI CMI8738-MC6 (model 55) at 0xd800, irq 19
     1 [V8237          ]: VIA8237 - VIA 8237
                          VIA 8237 with AD1888 at 0xe000, irq 20

    in questo caso, sono state riconosciute due schede audio.

  • Se il risultato del comando precedente fosse:
    no sound cards
    o simile, la scheda audio non è stata rilevata.

  • Se la scheda audio è ti tipo PCI, provare a rilevare la scheda audio digitando il seguente comando in una finestra di terminale:

    lspci | grep -i audio 

  • Se la scheda audio è ti tipo Usb, provare a rilevare la scheda audio digitando il seguente comando in una finestra di terminale:

    lsusb | grep -i audio 

  • Il comandi indicati restituiranno il nome della scheda audio e sarà possibile cominciare una ricerca per risolvere il problema.

Riproduzione.


Se Alsa ha riconosciuto la scheda audio sarà possibile eseguire dei test di riproduzione.

  • Digitare il seguente comando in una finestra di terminale:

    aplay /usr/share/sounds/alsa/Front_Center.wav 

  • Il risultato sarà simile al seguente:

    Wiedergabe Wave '/usr/share/sounds/startup.wav' : Signed 16 bit Little Endian, Samplingrate: 44100 Hz, Stereo

    ciò significa che il file audio è stato riprodotto e inoltre si dovrebbe sentire un suono.


Risoluzione dei problemi.

alsa


Configurare il mixer.



 Potrebbe accadere che la scheda audio sia stata riconosciuta ma la prova di riproduzione non è andata a buon fine.


E' quindi necessario verificare quali impostazioni impediscono la riproduzione. Questo è possibile attraverso il programma Alsamixer fornito dal pacchetto alsamixergui.

In particolare verificare che il controller PCM non sia impostato su "mute".

Reset del mixer.

Se le impostazioni del mixer sono correte ma ancora non si sente nulla può essere di aiuto il reset completo delle impostazioni.

  • In Ubuntu 10.10, digitare il seguente comando in una finestra di terminale:

    sudo /sbin/alsa-utils reset
    sudo /sbin/alsa-utils start 

  • Nelle versioni precedenti di Ubuntu, digitare il seguente comando in una finestra di terminale:

    sudo /etc/init.d/alsa-utils reset
    sudo /etc/init.d/alsa-utils start 

  • Reimpostare Alsamixer.

Mantenere il volume.


Potrebbe accadere che le impostazioni del volume non vengano mantenute al riavvio.


  • Digitare il seguente comando in una finestra di terminale:

    sudo alsactl store 

  • In rari casi occorre ripristinare il volume con il seguente comando:

    sudo alsactl restore 

Permessi utente.


Potrebbe accadere che da Sistema → Preferenze → Audio non sia possibile selezionare una scheda audio.


Spesso questo avviene perché l'utente non dispone dei permessi necessari. In particolare, l'utente non dovrebbe essere parte del gruppo "audio", ovvero sotto Sistema → Amministrazione → Utenti e gruppi → Gestisci gruppi → audio → Proprietà la casella di controllo non dovrebbe essere selezionata.


Blocco della scheda audio.


Un programma per la riproduzione non potrebbe funzionare perché la scheda audio risulta occupata da un altra applicazione.

  • Per verificarlo, digitare il seguente comando in una finestra di terminale:

    lsof | grep pcm

    oppure

    lsof | grep snd 

  • Il risultato sarà simile al seguente:

    mplayer    5301         dm  mem      CHR     116,16                4705 /dev/snd/pcmC0D0p
    mplayer    5301         dm  15u      CHR     116,16                4705 /dev/snd/pcmC0D0p


In questo caso, solo il programma Mplayer sta utilizzando la scheda audio. Se così non fosse, si dovrebbe chiudere l'applicazione e configurare l'uscita audio attraverso il server audio corretto.


Alsa_Modular_Synth


Alsa e Open Sound System.

Alcuni programmi non possono comunicare con Alsa in quanto il suono è in uscita dal file di dispositivo /dev/dsp. Questo perché viene utilizzato il server audio OSS (Open Sound System) ormai obsoleto.

Al fine di far comunicare tali programmi con Alsa è necessario installare il pacchetto alsa-oss.

S/PDIF e TOSLINK.

In presenza degli standard S/PDIF e TOSLINK, il valore per l'intervallo di uscita nel mixer audio di "IEC958" va impostato a zero per ottenere un uscita audio.

Dispositivi audio usb.

Le schede audio Usb, che includono anche le webcam con microfono incorporato ed uscita per le cuffie, sono supportate dal modulo snd-usb-audio. Disponendo di più dispositivi audio Usb collegati, per evitare che l'ordine dei dispositivi cambi dopo un avvio (ovvero ci si trovi nella situazione in cui il sistema imposti come predefinita una scheda audio sbagliata), procedere nel seguente modo:
  • Determinare il numero ID dei dispositivi audio usb collegando i dispositivi e digitando il seguente comando:

    lsusb

  • L'output sarà simile al seguente:

    Bus 008 Device 001: ID 0000:0000
    Bus 007 Device 002: ID 0d8c:000c C-Media Electronics, Inc. Audio Adapter
    Bus 003 Device 002: ID 0471:0311 Philips PCVC740K ToUcam Pro [pwc]  

In questo esempio, vi sono due dispositivi connessi al computer:

  • una webcam (Philips PCVC740K ToUcam Pro),

  • una scheda audio usb (C-Media Electronics, Inc. Audio Adapter).

La riga 0d8c:000c indica l'ID della scheda audio. Questa è composta dal "vid" (vendor id) e dal "pid" (product id) nel formato vid:pid.


Questa informazione deve essere immessa nel file /etc/modprobe.d/snd-usb-audio.


Se il file non esiste è possibile crearlo ricorrendo ad un editor di testo e utilizzando i privilegi di amministrazione:



sudo gedit /etc/modprobe.d/snd-usb-audio 


All'interno del file indicato inserire:


{{{
# Generico
options snd-usb-audio index={a},{b} vid=0x{vid1},0x{vid2} pid=0x{pid1},0x{pid2}
# Esempio
options snd-usb-audio index=2,3 vid=0x0d8c,0x0471 pid=0x000c,0x0311
}}}


I valori fra parentesi grafe sono adattati. Nell'esempio, si considera che al computer sono connessi due dispositivi audio (scheda audio e webcam). Pertanto, le schede esterne saranno ordinate con l'opzione "index= 2,3". Dopo il riavvio successivo il sistema dovrebbe ricordare l'ordine dei dispositivi audio Usb: la scheda audio predefinita è la scheda audio Usb C-Media Electronics.

alsa pulseaudio



Chip Via.



Per alcune schede audio VIA, vi sono più controller VIA DXS. Può essere che non tutti siano stati regolati con valori alti. Potrebbe verificarsi che il suono per alcune applicazioni è molto alto mentre è troppo basso per altre. Regolare al massimo in Alsamixer tutti gli elementi DXS.

Reinstallazione dei moduli Alsa.

Nel caso in cui il kernel sia stato ricompilato non correttamente, i driver Alsa potrebbero non essere più disponibili e sarà necessario reinstallare l'ultimo kernel digitando il seguente comando in una finestra di terminale:


sudo apt-get install --reinstall linux-image-$(uname -r) 


I moduli Alsa, che sono parte del kernel, verranno riportati al loro stato originale.

Passare ad Alsa.


Alcuni programmi non funzionano bene con il server audio predefinito. In questi casi è utile modificare l'uscita predefinita su Alsa.
  • Avviare il Selettore sistemi multimediali digitando il seguente comando in una finestra di terminale:

    gstreamer-properties 

  • Se si desidera utilizzare i suoni di sistema, installare il pacchetto libesd-alsa0.

  • Nel caso di Ubuntu 10.10 installare il pacchetto libesd0.

  • Alsa si avvierà chiedendo a Esd i suoni di sistema e li elaborerà.

Disturbi di interrupt.

Se il suono viene riprodotto a scatti può essere d'aiuto disabilitare l'HPET (High Precision Event Timers) nel BIOS e dare al kernel, attraverso GRUB, l'opzione di avvio "pci=noacpi".

Gestione di più schede audio.

Qualora Alsa abbia rilevato più di una scheda audio, l'output potrebbe essere stato direzionato sulla scheda sbagliata, ovvero il sistema ha automaticamente impostato come predefinita una scheda audio sbagliata.


  • Per selezionare la scheda audio predefinita, installare il pacchetto asoundconf-gtk e avviarlo da Sistema → Preferenze → Default Soundcard.

  • Se ciò non dovesse funzionare digitare in una finestra di terminale il comando:

    cat /proc/asound/modules

  • L'output visualizzerà l'indice e il nome di ogni dispositivo audio presente nel sistema. Prendere nota del nome e decidere quale scheda si desidera come predefinita.

  • Aprire con un editor di testo e con i privilegi di amministrazione il file /etc/modprobe.d/alsa-base.conf.

  • Alla fine del file dovrebbero essere presenti delle righe simili alle seguenti

    options snd-1 index=0
    options snd-2 index=1

  • Nel caso tali righe non siano presenti vanno aggiunte, dove snd-1 e snd-2 sono i nomi dei dispositivi ottenuti con il precedente comando. La scheda audio con index=0 sarà la scheda audio predefinita




 

Ricerca personalizzata

Se ti è piaciuto l'articolo, iscriviti al feed per tenerti sempre aggiornato sui nuovi contenuti del blog:



Trovato questo articolo interessante? Condividilo sulla tua rete di contatti in Twitter, sulla tua bacheca su Facebook, in Linkedin, Instagram o Pinterest. Diffondere contenuti che trovi rilevanti aiuta questo blog a crescere. Grazie!

LINKEDIN