User Tools

Site Tools


doc:appunti:linux:sa:pulseaudio

This is an old revision of the document!


PulseAudio e ALSA

Il sistema predefinito per la gestione dell'audio in Debian GNU/Linux si avvale di ALSA e di PulseAdio. Vedere le pagine del Debian Wiki: ALSA e PulseAudio.

ALSA fornisce i driver e una libreria (API) a basso livello, PulseAudio invece implementa una architettura client-server per collegare tra loro sources (processi, hardware di cattura audio, ecc.) e sinks (schede audio, processi locali o remoti, ecc.).

ALSA

ALSA fornisce alcuni moduli kernel per pilotare l'hardware (schede audio), inoltre fornisce di una libreria (pacchetto Debian libasound2) che consente ai programmi di accedere a particolari funzioni, quali canali audio multipli, Dolby AC3, ecc. Vengono forniti anche alcuni tool (nel pacchetto Debian alsa-utils) generalmente utilizzabili da riga di comando, quali aplay, alsamixer, ecc.

Per verificare se il sistema ALSA funziona correttamente:

  1. Verificare se sono stati caricati i moduli kernel snd_*, in particolar modo snd_pcm. Se si deve utilizzare un programma che richiede l'obsoleto sistema OSS (Open Sound System), si dovrà caricare il modulo di compatibilità snd-*-oss, ma in tal caso non è possibile utilizzare il sistema ALSA nativo.
  2. Verificare che ALSA abbia identificato l'hardware di playback disponibile:
    aplay -l
    **** List of PLAYBACK Hardware Devices ****
    card 0: PCH [HDA Intel PCH], device 0: ALC255 Analog [ALC255 Analog]
    Subdevices: 0/1
    Subdevice #0: subdevice #0
  3. Verificare quali dispositivi PCM (Pulse-code modulation, cioè dispositivi di suono digitale, sia di input che di output) sono disponibili:
    aplay -L
    null
        Discard all samples (playback) or generate zero samples (capture)
    jack
        JACK Audio Connection Kit
    pulse
        PulseAudio Sound Server
    default:CARD=PCH
        HDA Intel PCH, ALC255 Analog
        Default Audio Device
    sysdefault:CARD=PCH
        HDA Intel PCH, ALC255 Analog
        Default Audio Device
    front:CARD=PCH,DEV=0
        HDA Intel PCH, ALC255 Analog
        Front speakers
    ...
  4. Eseguire alsamixer e impostare i livelli per i device di playback, accertarsi che i canali non siano muti (tasto M).
  5. Provare sia da utente root che da utente normale ad inviare un audio digitale direttamente al dispositivo hardware predefinito. Provare eventualmente anche gli altri device elencati da aplay -L:
    aplay --device=default /usr/share/sounds/alsa/Noise.wav

PulseAudio

Per verificare che il sistema PulseAudio funzioni:

  1. Eseguire il mixer grafico pavucontrol, nella sezione Output Devices, Hardware Output Devices. Se non risulta alcun device si deve probabilmente caricare qualche modulo PulseAudio. Ecco alcuni comandi da provare:
    pactl load-module module-detect
    pactl load-module module-alsa-card
  2. Elencare i device di tipo sink (che possono ricevere audio digitale). Se esiste solo auto_null vuol dire che la scheda audio ALSA non è stata presa in considerazione e quindi non è utilizzabile:
    pacmd list-sinks
    1 sink(s) available.
      * index: 0
            name: <auto_null>
            driver: <module-null-sink.c>
    ...
  3. Verificare che il demone /usr/bin/pulseaudio sia in esecuzione. Viene avviato a nome dell'utente che ha effettuato il login nell'ambiente grafico.
  4. Verificare se qualche processo ha in uso i device audio, eseguite come utente root:
    fuser -v /dev/snd/*
    lsof /dev/snd/*

Web References

doc/appunti/linux/sa/pulseaudio.1571174983.txt.gz · Last modified: 2019/10/15 21:29 by niccolo