User Tools

Site Tools


doc:appunti:linux:sa:pulseaudio

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
doc:appunti:linux:sa:pulseaudio [2019/10/15 21:30] – [PulseAudio] niccolodoc:appunti:linux:sa:pulseaudio [2019/10/17 14:36] – [PulseAudio e ALSA] niccolo
Line 3: Line 3:
 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: **[[https://wiki.debian.org/ALSA|ALSA]]** e **[[https://wiki.debian.org/PulseAudio|PulseAudio]]**. 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: **[[https://wiki.debian.org/ALSA|ALSA]]** e **[[https://wiki.debian.org/PulseAudio|PulseAudio]]**.
  
-**ALSA** fornisce i **driver** e una libreria (API) 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** fornisce i **driver** e una libreria (API) di 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 =====
Line 40: Line 40:
 ===== PulseAudio ===== ===== PulseAudio =====
  
-Per verificare che il sistema PulseAudio funzioni:+Per verificare che il sistema PulseAudio funzioni è necessario anzitutto avere l'**elenco dei device** riconosciuti:
  
-  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:<code>pactl load-module module-detect +<code> 
-pactl load-module module-alsa-card+pacmd list-sinks 
 +3 sink(s) available. 
 +  index: 1 
 +        name: <alsa_output.default
 +        driver: <module-alsa-sink.c> 
 +        ...
 </code> </code>
-  - 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. Deve piuttosto risultare un sink che usa il driver **module-alsa-card.c**:<code>pacmd list-sinks +         
-1 sink(s) available. +quindi si prova ad inviare dell'audio ad uno di essi
-  * index: 0 + 
-        name: <auto_null+<code
-        driver: <module-null-sink.c> +paplay --device=alsa_output.default -p /usr/share/sounds/alsa/Front_Center.wav
-...+
 </code> </code>
-  - Verificare che il demone **/usr/bin/pulseaudio** sia in esecuzione. Viene avviato a nome dell'utente che ha effettuato il login nell'ambiente grafico. + 
-  - Verificare se qualche processo ha in uso i device audio, eseguite come **utente root**:<code>fuser -v /dev/snd/+Verificare che il demone **/usr/bin/pulseaudio** sia in esecuzione. Nei normali ambienti grafici viene avviato a nome dell'utente che ha effettuato il login
-lsof /dev/snd/*</code>+ 
 +L'utente può autonomamente fermare e riavviare il demone, ad esempio per rileggere la configurazione oppure per annullare tutte le modifiche temporanee fatte dalla console **pacmd**: 
 + 
 +<code> 
 +pulseaudio --kill 
 +pulseaudio --start 
 +</code> 
 + 
 +Eseguire il mixer grafico **pavucontrol**. Nella sezione //Output Devices//, //Hardware Output Devices// deve risultare la scheda audio pilotata da ALSA, ad esempio **Built-in Audio Analog Stereo**
 + 
 +Se risulta **No output devices available** ovviamente l'audio non può funzionare. Dalla console testuale **pacmd** è possibile indagare lo stato attuale del sistema PulseAudio. Ecco alcuni comandi utili: 
 + 
 +<code> 
 +help 
 +list-cards 
 +list-sinks 
 +list-modules 
 +</code> 
 + 
 +In condizioni normali deve risultare almeno una **scheda audio** e un **sink** (cioè un dispositivo che può ricevere audio digitale) entrambi pilotati dal driver **module-alsa-card.c**, Se esiste solo il sink **auto_null** (driver **module-null-sink.c**) vuol dire che la scheda audio ALSA non è stata presa in considerazione e quindi non è utilizzabile. 
 + 
 +In generale, se non funziona tutto in automatico, è il sintomo di qualche problema; tuttavia si può provare a caricare qualche **modulo PulseAudio** manualmente. Ecco alcuni comandi da provare sempre nella console **pacmd**: 
 + 
 +<code> 
 +load-module module-alsa-sink 
 +list-sinks 
 +</code> 
 + 
 +Ad esempio il bug [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=901148|#901148]] di Debian 10 impedisce il funzionamento dell'audio se è attivo il demone Timidity, infatti risulta disponibile solo il **sink null**. Caricando manualmente il modulo //module-alsa-sink// compare un sink con driver **module-alsa-sink.c** e nome **alsa_output.default**; grazie a questo l'audio funziona nuovamente. In **pavucontrol**, //Output Devices// è infatti apparso un device hardware **Built-in Audio**. 
 + 
 +<code> 
 +load-module module-detect 
 +list-sinks 
 +</code> 
 + 
 +Caricando il modulo **module-detect** viene rilevato un nuovo sink, sempre associato al driver **module-alsa-sink.c**, ma con il nome **alsa_output.0.hdmi-stereo**. Si tratta dell'uscita audio su porta HDMI presente sulla scheda madre. In **pavucontrol**, //Output Devices//, compare anche il device hardware **Built-in Audio Digital Stereo (HDMI)**. L'elenco prodotto da **list-modules** si è allungato di un elemento. 
 + 
 +Se si caricano nuovamente gli stessi moduli, si ottiene una duplicazione inutile dei sink disponibili. 
 + 
 +<code> 
 +load-module module-alsa-card 
 +list-cards 
 +</code> 
 + 
 +Verificare se qualche processo ha in uso i device audio, eseguite come **utente root**: 
 + 
 +<code> 
 +fuser -v /dev/snd/
 +lsof /dev/snd/* 
 +</code> 
 + 
 +Nel caso del bug [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=901148|#901148]] pare che il demone timidity prende possesso della scheda audio prima che lo faccia pulse PulseAudio, infatti alcuni dei device risultavano utilizzati dal processo timidity.
  
 ===== Web References ===== ===== Web References =====
doc/appunti/linux/sa/pulseaudio.txt · Last modified: 2020/12/25 10:36 by niccolo