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/16 04:39] – [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 =====
  
-Come 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// deve risultare la scheda audio pilotata da ALSA, ad esempio **Built-in Audio**.+<code> 
 +pacmd list-sinks 
 +3 sink(s) available. 
 +  * index: 1 
 +        name: <alsa_output.default> 
 +        driver: <module-alsa-sink.c> 
 +        ... 
 +</code> 
 +         
 +quindi si prova ad inviare dell'audio ad uno di essi: 
 + 
 +<code> 
 +paplay --device=alsa_output.default -p /usr/share/sounds/alsa/Front_Center.wav 
 +</code> 
 + 
 +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. 
 + 
 +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 invece risulta //No output devices available//, si può provare a caricare qualche **modulo PulseAudio**. Ecco alcuni comandi da provare nella console **pacmd**:+Se risulta **No output devices available** ovviamente l'audio non può funzionareDalla console testuale **pacmd** è possibile indagare lo stato attuale del sistema PulseAudio. Ecco alcuni comandi utili:
  
 <code> <code>
Line 53: Line 77:
 </code> </code>
  
-Controllare i device di tipo **sink** (cioè 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**. Nel nostro caso risultava disponibile solo il sink fittizio con driver **module-null-sink.c**, infatti i programmi che utilizzano PulseAudio non producevano alcun suono.+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** manualmenteEcco alcuni comandi da provare sempre nella console **pacmd**:
  
 <code> <code>
Line 60: Line 86:
 </code> </code>
  
-Compare un sink con driver **module-alsa-sink.c** e nome **alsa_output.default**. Grazie a questo l'audio ha cominciato a funzionare. In **pavucontrol**, //Output Devices//, risulta infatti disponibile un device hardware **Built-in Audio**.+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> <code>
Line 75: Line 101:
 list-cards list-cards
 </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**: Verificare se qualche processo ha in uso i device audio, eseguite come **utente root**:
Line 85: Line 108:
 lsof /dev/snd/* lsof /dev/snd/*
 </code> </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