Come si collegano ALSA e PulseAudio?


30

Mentre cercavo di far funzionare il mio suono , mi chiedevo quali fossero i ruoli di ALSA e PulseAudio. Ho installato entrambi e mi chiedevo, ad esempio, chi di loro ha bisogno di sapere sulla mia scheda audio.

Entrambi sembrano essere in grado di usarsi a vicenda, c'è un plug-in pulseaudio per ALSA e sul mio sistema, alsa si presenta come una scheda audio in pulseaudio.

Quale dei due cosa fa, sono alternative o complementari?

Risposte:


32

ALSA è il mixer audio a livello di kernel, gestisce direttamente la tua scheda audio. ALSA da sola può gestire solo un'applicazione alla volta. Naturalmente, c'è ' dmix ', che è stato scritto per risolvere questo problema. (È un modulo ALSA.)

PulseAudio è un mixer software, in cima all'area utente (come se avessi eseguito un'app). Quando funziona, utilizza Alsa - senza dmix - e gestisce ogni tipo di missaggio, i dispositivi, i dispositivi di rete, tutto da solo.

Nel 2014, è ancora possibile eseguire solo ALSA. Ma a meno che tu non compili le tue applicazioni per te stesso e abiliti il ​​supporto ALSA ovunque - o usi una distribuzione basata su sorgenti come Gentoo - potresti avere problemi di missaggio. Le applicazioni precompilate fornite dalle distribuzioni sono generalmente costruite solo con il supporto di Pulseaudio, non di ALSA puro. Ubuntu, ad esempio, preferisce PulseAudio. Viene fornito con PulseAudio per impostazione predefinita, quindi ogni applicazione viene compilata per utilizzare solo PulseAudio.

PulseAudio ha i suoi vantaggi. La gente dice che è buono per lavorare con l'audio attraverso una rete e risolve alcuni problemi con i flussi audio multicanale che si sono verificati con ALSA puro. È anche presumibilmente più semplice sviluppare app per PA. Per quanto riguarda l'utente finale, è facile selezionare nuovi dispositivi, controllare il volume per app, ecc.

Tuttavia, nella configurazione predefinita aggiunge una quantità non insignificante di latenza nel mix. Questo è un grande svantaggio per alcuni tipi di attività che richiedono bassa latenza come alcuni giochi e software.

OSS è un'alternativa a entrambi, ma non è concesso in licenza ai sensi della GPL, il che rende improbabile che si verifichino molte adozioni da parte delle distribuzioni.

Illustrazione :
tipici sistemi audio basati su PulseAudio, come Ubuntu:
Kernel: ALSA -> Userland: PulseAudio -> app1, app2, app3
Nel tipico sistema Linux, PulseAudio mescola l'audio di tutte le diverse app e le fornisce alla catena di ALSA.

ALSA:
Kernel: ALSA -> dmix -> Userland: app1, app2, app3
Con solo ALSA puro, hai bisogno di dmix per mescolare più app. Senza di essa, ALSA può riprodurre solo un flusso audio da un'app alla volta.

OSS:
Kernel: OSS -> Userland: app1, app2, app3
Con OSS, le app userland parlano direttamente con OSS nel kernel, che mescola i flussi stessi.

Quindi, per riassumere, al giorno d'oggi nel tuo sistema tipico, ALSA parla direttamente con le tue schede audio e Pulseaudio parla con le tue app e programmi e li inserisce in ALSA.


2
In realtà, ogni volta che ho trovato Pulseaudio ho trovato PROBLEMI! La cosa divertente è che sembra (almeno in base alle mie esperienze) avere problemi anche con la versione RT del kernel, vale a dire ... vuoi un ambiente Linux facile da riprodurre musica? Stai pensando al nuovo UbuntuStudio? Bene,
ripensaci

4
Oh non pensare. Anche la grafica è un mucchio di ... Linux NON è per uso desktop per dirla semplicemente e senza mezzi termini. Xorg è un server X , quindi fondamentalmente si avvia un SERVER e lo si GUARDA (che assurdità? Sì). Su MAC, Windows, Haiku, la GUI viene eseguita dal kernel (va bene all'interno del kernel). Bene. Avrebbe senso vero? Inoltre, non esiste un'interfaccia nativa. Come su Windows, Windows.Forms. Su MAC Cocoa. Qui, puoi usare solo toolkit FAT, come GTK, Qt. | La rete è concordata, è nel kernel, è OK (va bene se il produttore fornisce un buon driver come Intel) ... quindi è tutto.
Apache,

3
On MAC, Windows, Haiku, GUI runs from the kernel (okay its inside the kernel). Well. It would make sense doesnt it? In realtà no. Ricordi i brutti vecchi tempi di "NT 4 driver video che hanno eliminato il sistema"? Sì, questo è ciò che l'ha causato: eseguire driver scadenti nello spazio del kernel. Perché pensi che Microsoft abbia improvvisamente messo insieme le armi per ottenere i driver firmati in Windows? Bingo! Perché i driver scadenti causavano arresti anomali del sistema. Farli firmare significava farli controllare , e un gran numero di QA fa molta strada ...
Avery Payne,

1
Avery: ora supporta moduli non scaricabili. Quindi, se si blocca, ricaricherà semplicemente il modulo per la scheda grafica. Ma per quanto ne so sono ancora moduli. (Non in esecuzione nello spazio utenti .. impossibile.) | Informazioni su SDL: è ok. Ogni sceneggiatore si lamenta perché offre prestazioni lente, problemi complicati, ecc. Ecc. (Non li elencherò, controllerò attraverso una ricerca.) Anche il magnate del trasporto open source è lento con SDL.
Apache,

2
@Skiki - Mi rendo conto che la risposta è obsoleta ora, ma puoi fornire riferimenti in cui Valve ha abbandonato Linux? Per quanto posso vedere, stanno ancora andando avanti a tutto vapore, badate al gioco di parole.
aggregato
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.