PulseAudio (Italiano)
From ArchWiki
i18n |
---|
English |
Italiano |
Türkçe |
Introduzione
PulseAudio è un sound server per sistemi POSIX e Win32. Esso permette di avere più programmi che riproducono suoni sulla stessa macchina e molte altre funzioni avanzate. PulseAudio è un'alternativa al demone sonoro esd.
Attenzione PulseAudio NON è un'alternativa per aRts. Se si sta usando KDE 3, non è per ora possibile usare PulseAudio.
Questo articolo riguarda le funzioni di base di PulseAudio.
Installazione
Tutti i pacchetti si trovano nel repository community, quindi è necessario averlo abilitato. Quindi, per installare pulseaudio utilizziamo:
pacman -Sy pulseaudio
Si possono inoltre installare alcune interfaccie GTK per Pulseaudio (raccomandato):
pacman -Sy padevchooser paman paprefs pavucontrol
Per le applicazioni che non supportano PulseAudio e supportano ALSA è raccomandato installare il plugin di PulseAudio per alsalibs. Il plugin si trova nel pacchetto alsa-plugins.
pacman -Sy alsa-plugins
Rimpiazziamento di ESD (EsounD)
ln -sf /usr/bin/esdcompat /usr/bin/esd
Pulseaudio usa di default una serie di socket (/tmp/.esd-xxxx) per evitare che ogni utente acceda alla stessa socket. Se volete che gnome avvii esd (esdcompat) automaticamente come utente dovete editare il file /etc/pulse/default.pa per fare in modo che usi la socket di default:
load-module module-esound-protocol-unix socket=/tmp/.esd/socket
Questo funziona solo se siete l'unico utente nel computer, se un secondo utente facesse accesso allo stesso computer si avrebbero problemi.
Configurazione
Per prima cosa è necessario aggiungere il demone "pulseaudio" al file /etc/rc.conf. Es:
DAEMONS=(syslog-ng ipw3945d network netfs crond fam hal avahi-daemon pulseaudio)
Per usare padevchooser (il selettore di dispositivo di PulseAudio), dovete aggiungere anche il demone 'avahi-daemon' alla lista.
Dovete inoltre aggiungere gli utenti al gruppo pulse-access, anche root (se volete avere il suono da root).
gpasswd -a <user> pulse-access
Ora dovete solo settare tutte le applicazioni all'uso di pulse, possibilmente attraverso un plugin.
Configurazione del plugin ALSA PulseAudio plugin
E' consigliato configurare ALSA per utilizzare PulseAudio, poiche molte applicazioni usano ALSA. Questo può essere fatto attraverso il plugin PulseAudio per le alsalibs (il plugin ALSA PulseAudio si trova nel pacchetto alsa-plugins). Per fare in modo che ALSA usi PulseAudio dobbiamo editare /etc/asound.conf (raccomandato) o ~/.asoundrc e inserire:
pcm.pulse { type pulse } ctl.pulse { type pulse }
pulse nel caso di pcm.pulse e ctl.pulse è solo un nome, potete cambiarlo ma dovrete cambiarlo anche nel prossimo passo.
Se volete che ALSA usi PulseAudio per default dovete aggiungere al file /etc/asound.conf o ~/.asoundrc
pcm.!default { type pulse } ctl.!default { type pulse }
Se avete settato pulse audio come dispositivo di default allora dovrete specificare il dispositivo hardware nel file /etc/pulse/default.pa esempio:
load-module module-alsa-sink device=hw:0 load-module module-alsa-source device=hw:0
o potete usare il rilevamento automatico usando hal:
load-module module-hal-detect
Se non avete configurato PulseAudio come default per ALSA, dovete cambiare il device ALSA a "pulse" nelle applicazioni che usate.
Dispositivi PulseAudio Multipli in ALSA
Se volete usare più schede sonore o più PCM virtuali della vostra scheda (per esempio, per separare gli output anteriore da quello posteriore), dovrete dire a PulseAudio di usare più ALSA sink:
load-module module-alsa-sink device=front load-module module-alsa-sink device=rear
Se si vuole che il cliente abbia output separati per ogni dispositivo, editate /etc/asound.config
Usare più dispositivi ALSA con PulseAudio
Se si volessero usare più schede sonore o più PCM virtuali della stessa scheda (per esempio per separare l'output anteriore da quello posteriore), è necessario dire a PulseAudio di usare più ALSA sink:
load-module module-alsa-sink device=front load-module module-alsa-sink device=rear
Se volete che il client abbia output separati per ogni dispositivo, basterà inserire in /etc/asound.conf o ~/.asoundrc:
pcm.pulsefront { type pulse device front } pcm.pulserear { type pulse device rear }
E specificare gli elementi ctl appropriati:
ctl.pulsefront { type pulse device front } ctl.pulserear { type pulse device rear }
Configurazione di Adobe Flash plugin per PulseAudio
Il plugin di default Adobe Flash per Mozilla non funziona bene col plugin PulseAudio per alsa quindi non si avrà l'audio... ma c'è un modo per far funzionare il plugin Flash con PulseAudio anche se con un piccolo ritardo. Questo può essere fatto attraverso le libflashsupport, si trova il pacchetto in AUR al link: [1]
Questa versione della libreria dovrebbe trovare automaticamente PulseAudio, se questo non accadesse è possibile forzala all'uso di PulseAudio. Ciò può essere fatto attraverso la variabile d'ambiente FLASH_FORCE_PULSEAUDIO e per fare in modo che funzioni per ogni utente senza problemi possiamo creare la variabile al login di ogni utente. Basterà quindi editare lo script /etc/profile.d/libflashsupport.sh (createlo se non esiste) e inserirvi:
export FLASH_FORCE_PULSEAUDIO="1" # export FLASH_AUDIODEBUG="1" If you want to see debug from the flash audio # export FLASH_PULSEDEBUG="1" If you want to know the delay from the sound
Se il demone PulseAudio sta girando in remoto Flash non lo rileverà automaticamente. Quindi bisognerà specificare la variabile d'ambiente PULSE_SERVER
export PULSE_SERVER=192.168.0.5
rimpiazzando l'indirizzo IP con quello del vostro server.
Configurazione di SDL per PulseAudio
Fin dalla versione 1.2.12 SDL ha un supporto nativo per pulseaudio.
export SDL_AUDIODRIVER="pulse"
Altre variabile da configurare: settare PASERVER con l'host in si trova PulseAudio e PADEVICE sul dispositivo usato sul server. (il driver "pulse" non ha il supporto, per ora, per leggere la vostra configurazione di pulseaudio.).
Se questo driver non funzionasse o se si usa una versione vecchia di SDL, basterà:
export SDL_AUDIODRIVER="esd
Nota: Potrebbe essere necessario usare ABS per compilare SDL con il supporto pulseaudio. E consigliato usare la patch che si trova qui SDL PulseAudio Patch. Questa dovrebbe risolvere la maggior parte dei problemi che potreste incontrare.
Configurazione di GStreamer per PulseAudio
Per far in modo che GStreamer usi PulseAudio bisognerà installare il pacchetto gstreamer0.10-pulse e settare /system/gstreamer/0.10/default/audiosink e /system/gstreamer/0.10/default/audiosrc ai valore desiderati:
pacman -Sy gstreamer0.10-pulse gconftool-2 -t string --set /system/gstreamer/0.10/default/audiosink pulsesink gconftool-2 -t string --set /system/gstreamer/0.10/default/audiosrc pulsesrc
Im alternativa, potremmo usare l'applicazione gstreamer-properties per settare i valori di gconf:
gstreamer-properties
Configurazione di OpenAL per PulseAudio
I giochi che usano OpenAL possono usare PulseAudio, basterà aggiungere al file ~/.openalrc (createlo se non esiste) la seguente riga:
(define devices '(esd))
Configurazione di libao per PulseAudio
Basterà installare il seguente pacchetto:
pacman -Sy libao-pulse
Ed aggiungere al file /etc/libao.conf la seguente riga:
default_driver=pulse
Usare le applicazioni OSS con il wrapper di PulseAudio
Se si hanno programmi che fanno uso di OSS è possibile fare in modo che questi usino PulseAudio usando padsp in questo modo:
padsp ApplicazioneCheUsaOSS
Volendo è possibile spostare l'eseguibile dell'applicazione che fa uso di OSS in Programma-Reale e sostituirvi uno script come questo:
#!/bin/sh if test -x /usr/bin/padsp ; then exec /usr/bin/padsp /usr/bin/OSSprogram-real "$@" else exec /usr/bin/OSSprogram "$@" fi
PulseAudio sulla rete
Una delle magnifiche funzioni di PulseAudio è quella di poter fare lo streaming audio su TCP, permettendo di fare streaming nella vostra LAN. Per realizzare ciò è necessario abilitare module-native-protocol-tcp, e copiare i pulse-cookie nei clients. Per abilitare il modulo TCP basterà aggiungere al file /etc/pulse/default.pa:
load-module module-native-protocol-tcp
I cookie si trovano in /var/run/pulse/.pulse-cookie. Questi devono essere messi sul cliente in un punto in cui il gruppo pulse-access possa leggerli (e con i permessi messi in modo che solo loro possano leggerli).
root@server ~ $ scp /var/run/pulse/.pulse-cookie client:/etc/pulse-cookie
root@client ~ $ chown pulse:pulse-access /etc/pulse-cookie root@client ~ $ chmod 640 /etc/pulse-cookie
I client devono poi sapere dove trovare i cookie, quindi bisogna inserire in /etc/pulse/client.conf:
### Cookie file cookie-file = /etc/pulse-cookie
Rimane solo da configurare il client per connettersi con il server. In /etc/pulse/client.conf:
## The default server to connect to default-server = 192.168.0.5
FATTO!!!!
Problemi Noti
authkey.c: Failed to open cookie file '/home/<user>/.esd_auth': Permission denied
Se questo messaggio appare in /var/log/errors.log provare ad aggiungere
if [ -e /var/run/pulse/.esd_auth ]; then chown pulse:pulse-access /var/run/pulse/.esd_auth chmod 640 /var/run/pulse/.esd_auth fi
prima di "add_daemon pulseaudio" nel file /etc/rc.d/pulseaudio
module-x11-publish
Se PulseAudio non si avvia e appare nei log il seguente messaggio:
x11wrap.c: XOpenDisplay() failed module.c: Failed to load module "module-x11-publish" (argument: ""): initialization failed. main.c: Module load failed. main.c: failed to initialize daemon.
allora è necessario disabilitare il modulo module-x11-publish in /etc/pulse/default.pa:
#load-module module-x11-publish
"daemon startup failed"
Se PulseAudio non si avvia come demone e nei log si trova il seguente messaggio:
E: main.c: daemon startup failed.
bisognerà commentare la seguente linea in /etc/pulse/default.pa:
.fail
semplicemente aggiungendo un "#" davanti.
Audacity
Come citato sul Wiki di PulseAudio.org, Audacity correntemente non supporta PulseAudio. Quindi loro consigliano di stoppare pulseaudio prima di usarlo.
Il selettore di dispositivo (padevchooser)
Se non si riesce ad avviare padevchooser basterà provare a (ri)avviare il demone Avahi nel seguente modo:
sudo /etc/rc.d/avahi-daemon restart
VLC
Se si hanno problemi con l'esecuzione audio dei DVD in VLC, disinstallare VLC e installare al suo posto vlc-nightly da AUR, e impostate come metodo di output audio a Pulseaudio.
mpd
C'è una versione con il supporto a Pulseaudio di mpd su AUR. Avrete bisogno di aggiungere l'utente mpd al gruppo "pulse-access" per permettere a mpd di interfacciarsi correttamente con il demone pulseaudio.
module-hal-detect
Se ottenete un errore riguardo ad HAL, module-hal, o qualcosa di simile, avete probabilmente bisogno di rimuovere la voce module-hal-detect dal vostro /etc/pulse/system.pa e fare esplicito riferimento alla periferica ALSA manualmente, ad esempio:
load-module module-alsa-sink device=hw:0 load-module module-alsa-source device=hw:0
Niente suono dopo l'installazione
Se non ottenete nessuna riproduzione sonora usando ALSA come periferica di default, avete forse bisogno di togliere il muto dalla vostra scheda. Per farlo, lanciate il pannello di alsamixer e assicuratevi che tutto sia a posto (ogni colonna deve avere un 00 verde sotto di essa), eventualmente potete togliere il muto selezionando le colonne e premendo 'm'.
$ alsamixer -c 0
Ho una scheda audio con il surround, ma PulseAudio usa solo le casse frontali!
Molte persone hanno una scheda audio surround, ma hanno solo una quantità di casse adatte a due soli canali, quindi Pulseaudio non può impostare di default un'impostazione per il surround. Per abilitare tutti i canali, modificare il file /etc/pulse/daemon.conf e decommentare la linea default-sample-channels (es. togliete il punto e virgola dall'inizio della riga) e impostate il valore a 6 se avete un sistema 5.1, o 8 se avete un sistema 7.1 ecc. Dopo aver fatto questa modifica, riavviate il demone pulseaudio.
# Default default-sample-channels = 2 # per il 5.1 default-sample-channels = 6 # per il 7.1 default-sample-channels = 8
Guardare anche
Allow multiple programs to play sound at once
Link esterni
http://www.pulseaudio.org/wiki/PerfectSetup - A good guide to make your configuration perfect
http://www.alsa-project.org/main/index.php/Asoundrc - Alsa wiki on .asoundrc
http://www.pulseaudio.org/ - PulseAudio official site
http://mpd.wikia.com/wiki/PulseAudio#Version_0.12.0_and_later - Configuring MPD for PulseAudio