Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati


Guida verificata con Ubuntu: 20.04 22.04

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

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 Ubuntu è preinstallato Alsa che viene utilizzato come server audio dal sistema.

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

Diagnostica

Riconoscimento server audio Alsa

I comandi successivi verrà identificato il nome del modello della scheda audio, utile per una ricerca in rete per risolvere il problema.

Per verificare se il server audio abbia rilevato correttamente la scheda, digitare nel terminale il seguente comando:

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.

Schede Pci-e

Se la scheda audio è di tipo PCI, digitare nel terminale il seguente comando:

lspci | grep -i audio

Schede Usb

Se la scheda audio è di tipo Usb, digitare nel terminale il seguente comando:

lsusb | grep -i audio

Riproduzione

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

Digitare nel terminale il seguente comando:

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

si dovrebbe sentire il suono di una voce che pronuncia le parole «Front center» e il risultato sarà simile al seguente:

Riproduzione in corso WAVE '/usr/share/sounds/alsa/Front_Center.wav' : Signed 16 bit Little Endian, Frequenza 48000 Hz, Mono

ciò significa che il file audio è stato riprodotto.

Risoluzione dei problemi

Configurare il mixer

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

È quindi necessario verificare quali impostazioni impediscono la riproduzione. Questo è possibile attraverso il programma Alsamixer fornito dal pacchetto alsa-utils.

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

Ripristinare i permessi utente

Se la scheda audio viene riconosciuta e la prova di riproduzione è andata a buon fine ma non viene riprodotto alcun suono dai programmi per riprodurre audio, oppure se non è possibile accedere alle impostazioni del volume digitare nel terminale il seguente comando:

sudo chown $USER:$USER -R ~/.config/

Mantenere il volume

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

  • Digitare nel terminale il seguente comando:

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

    sudo alsactl restore 

Blocco della scheda audio

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

  • Per verificarlo, digitare nel terminale il seguente comando:

    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 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.

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.

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.

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.

  • 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

Ulteriori risorse


CategoryHardware CategoryDaRevisionare