PulseAudio (Türkçe)
From ArchWiki
i18n |
---|
Türkçe |
English |
Italiano |
PulseAudio Hakkında
PulseAudio POSIX ve Win32 sistemler için bir ses sunucusudur. PulseAudio, aynı anda bir çok uygulamanın ses çalıştırmasını ve daha çok gelişmiş özellikleri sunmaktadır. Ayrıca enlightened sound daemon (esd, esound) servisinin yerini alabilecek şekilde programlanmıştır.
Bu yazı PulseAudio kurulumu, kullanımı ve hakkında ipucu vermek amacıyla yazılmıştır.
Kurulum
PulseAudio'ya dair bütün paketler community deposunda bulunmaktadır, dolayısıyla bu deponun etkin olduğundan emin olun. PulseAudio'yu kurmak için şu komutu verin:
# pacman -Sy pulseaudio
İsterseniz PulseAudio için GTK arayüzlerini de kurabilirsiniz (tavsiye edilmektedir):
# pacman -Sy padevchooser paman paprefs pavucontrol pavumeter
PulseAudio'yu desteklemeyen fakat ALSA'yı destekleyen uygulamalardan ses alabilmek açısından alsalibs için PulseAudio eklentisini kurmanız tavsiye edilmektedir. Bu eklenti alsa-plugins paketinde yer almaktadır.
# pacman -Sy alsa-plugins
ESD(esound)'yi PulseAudio ile Değiştirmek
Mevcut GNOME sürümleri ESD'yi oturum açılışında çalıştırmak için destek vermektedir. Böylelikle PulseAudio'yu GNOME'a esd olarak tanıtma şansınız bulunmaktadır. Bunu gerçekleştirmek için PulseAudio ile birlikte gelen esdcompat betiği kullanılabilir. esd için sembolik bağ oluşturmanız yeterlidir:
# ln -sf /usr/bin/esdcompat /usr/bin/esd
Böylelikle GNOME her oturum açılışında PulseAudio'yu yükleyecektir.
PulseAudio, farklı kullanıcıların aynı sokete erişimi durumunda çıkabilecek bir probleme karşı öntanımlı olarak farklı bir soket yapısı kullanır (/tmp/.esd-xxxx). Eğer GNOME'un esd (yukarıda anlatılan esdcompat)'yi normal kullanıcı olarak çalıştırmasını istiyorsanız, /etc/pulse/system.pa dosyasını açıp, load-module module-esound-protocol-unix satırını aratıp, aşağıdaki satır ile değiştirin:
load-module module-esound-protocol-unix socket=/tmp/.esd/socket
Bu yöntem eğer bilgisayarı sadece tek kişi kullanıyorsa işe yaramaktadır, farklı bir kullanıcı GNOME ile oturum açtığında sorun yaşayabilir. Genel bir çözüm olarak esdcompat'ı sistem servisi şeklinde kullanmak işe yarayabilir. Ayrıca yukarıdaki satırı değiştirmenize gerek yoktur.
PulseAudio İçin Sistemi Yapılandırmak
Sistem geneli servis (isteğe bağlı)
PulseAudio öntanımlı olarak her kullanıcı için ayrı ve ihtiyaç duyulduğunda çalıştırılmaktadır. Bu yöntem basit, daha etkili ve daha güvenlidir. Bazı nedenlerden ötürü, PulseAudio'yu sistem servisi olarak çalıştırmak için (mesela, birden çok kullanıcılı bir sistemde) aşağıdaki işlemleri gerçekleştirin:
Öncelikle "pulseaudio" servisini to /etc/rc.conf dosyanıza ekleyin. Örnek:
DAEMONS=(syslog-ng ipw3945d network netfs crond fam hal avahi-daemon pulseaudio)
PulseAudio Device Chooser (padevchooser) kullanabilmek için, 'avahi-daemon' servisini de bu listeye eklemelisiniz.
Ardından kullanıcı(ları)nızı pulse-access grubuna ekleyin:
# gpasswd -a kullanıcı pulse-access
ALSA PulseAudio Eklentisi Yapılandırması
Bir çok uygulama doğrudan ALSA destekli olduğu için, ALSA'yı PulseAudio için yapılandırmanız tavsiye edilir. Bu işlemi yapmak için, alsalibs için pulseaudio eklentisini kurmanız (bu eklenti alsa-plugins paketinde yer almaktadır) gerekmektedir. ALSA'nın PulseAudio kullanması için /etc/asound.conf (bu dosya yoksa oluşturun, bu dosyanın kullanılması tavsiye edilmektedir) veya ev dizininizde .asoundrc dosyasına (bu dosya yoksa oluşturun) şu satırları ekleyin:
pcm.pulse { type pulse } ctl.pulse { type pulse }
pcm.pulse ve ctl.pulse kısımlarındaki pulse isteğe bağlı olarak değiştirilebilir, ancak aşağıdaki yönergelerde de aynı ismi kullanmalısınız.
Eğer ALSA'nın PulseAudio'yu öntanımlı olarak kullanmasını istiyorsanız bu satırlardı da /etc/asound.conf veya ~/.asoundrc dosyasına eklemelisiniz.
pcm.!default { type pulse } ctl.!default { type pulse }
Eğer pulse'u öntanımlı aygıt olarak seçmişseniz donanımı PulseAudio için /etc/pulse/system.pa dosyasında tanımlayabilirsiniz:
load-module module-alsa-sink device=hw:0 load-module module-alsa-source device=hw:0
VEYA hal servisini kullanıyorsanız, otomatik tanıma için şu satırın /etc/pulse/system.pa dosyasında yer aldığından emin olmalısınız:
load-module module-hal-detect
Yukarıdaki satır öntanımlı olarak /etc/pulse/system.pa içerisinde yer alır. Bu satırın ; veya # ile yorum satırı haline getirilmediğinden emin olun. Eğer sisteminizde hal servisi kurulu ve çalışıyor ise bu yöntemi kullanmanız tavsiye edilir. İlk yöntem (load module module-alsa....) hal servisinin çalışmadığı sistemlerde işe yarayacaktır.
Eğer PulseAudio'yu ALSA'nın öntanımlı altyapısı olarak ayarlamadıysanız, destekleyen uygulamalarda (uygulamanın seçeneklerinde varsa) alsa yerine pulse seçerek kullanabilirsiniz.
Birden Çok Ses Kartı
Eğer birden fazla ses kartı (hoparlör değil) varsa (mesela ön ve arka çıkışlar için farklı ses kartları kullanıyorsanız vs.), PulseAudio için bunları tanımlamanız gerekmektedir:
load-module module-alsa-sink device=front load-module module-alsa-sink device=rear
Her aygıt için istemcinin (uygulama) ayrı Pulse/ALSA çıktısı kullanmasını istiyorsanız, /etc/asound.conf veya ~/.asoundrc dosyasını şu şekilde düzenleyebilirsiniz.
pcm.pulsefront { type pulse device front } pcm.pulserear { type pulse device rear }
Uygun ctl öğelerini de belirlemenizde fayda vardır:
ctl.pulsefront { type pulse device front } ctl.pulserear { type pulse device rear }
Adobe Flash eklentisini PulseAudio ile Çalıştırmak
SDL'i PulseAudio İçin Ayarlamak
SDL 1.2.12 sürümünden itibaren pulseaudio desteği vermektedir. Kullanmak için .bashrc veya farklı bir profil dosyasına şu satırı ekleyin:
export SDL_AUDIODRIVER="pulse"
Kullanabileceğiniz diğer değişkenler PASERVER ve PADEVICE'tır. Bunlar sırasıyla sunucu ve aygıtı ayarlamak için kullanılmaktadır. Bu konuda yeterli doküman bulunmadığı için yeterli destek verilmemektedir.
Eğer yukarıdaki yöntem çalışmadıysa veya eski bir SDL sürümü kullanıyorsanız, şunu kullanabilirsiniz:
export SDL_AUDIODRIVER="esd"
Not: PulseAudio desteği için ABS kullanarak SDL'i tekrar derlemeniz gerekebilir.
GStreamer'ı PulseAudio İçin Yapılandırmak
GStreamer'ın PulseAudio kullanmasını istiyorsanız, gstreamer0.10-pulse paketini kurmanız ve gconf-editor veya komut kullanarak /system/gstreamer/0.10/default/audiosink ve /system/gstreamer/0.10/default/audiosrc değerlerini değiştirmeniz gerekmektedir.
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
Alternatif bir yöntem olarak, gstreamer-properties uygulamasını kullanarak gconf kayıtlarını düzenleyebilirsiniz. (bu araç gnome-media içerisinde yer almaktadır.)
pacman -Sy gnome-media gstreamer-properties
OpenAL'yi PulseAudio İçin Yapılandırmak
OpenAL kullanan uygulamaları PulseAudio desteği ile kullanmak için şu satırı ~/.openalrc dosyanıza ekleyebilirsiniz:
(define devices '(esd))
veya alternatif olarak şu satırları ekleyebilirsiniz
(define devices '(alsa)) (define alsa-device "pulse")
libao'yu PulseAudio İçin Ayarlamak
# pacman -Sy libao-pulse
/etc/libao.conf dosyasını açıp, şu satırı ekleyin:
default_driver=pulse
OSS Uygulamalarını PulseAudio İle Kullanmak
Eğer uygulama sadece OSS kullanıyorsa, uygulamayı padsp komutu ile çalıştırabilirsiniz:
$ padsp OSSuygulaması
Örnek:
$ padsp aumix $ padsp sox foo.wav -t ossdsp /dev/dsp
İsterseniz OSS kullanan programın adını OSSprogramı-yedek olarak değiştirip (kopyalayıp), gerçeğinin yerine şuna benzer bir betik ile çalıştırabilirsiniz:
#!/bin/sh if test -x /usr/bin/padsp ; then exec /usr/bin/padsp /usr/bin/OSSprogramı-yedek "$@" else exec /usr/bin/OSSprogramı "$@" fi
Ağ Üzerinden PulseAudio
PulseAudio'nun en güzel özelliklerinden biri de TCP vasıtasıyla ağ üzerinden ses yayını yapabilmesidir. Böylece (bir uygulamanın) ses çıktısı ağ üzerinden diğer bilgisayarlardan alınabilir.
Bunu gerçekleştirmek için sunucu görevini yapan bilgisayarda module-native-protocol-tcp modülü etkinleştirilmeli ve pulse-cookie dosyası istemcilere gönderilmelidir. Modülü etkinleştirmek için /etc/pulse/system.pa dosyasına şu satırı ekleyin:
load-module module-native-protocol-tcp
Dışarıdan gelen bağlantıları kabul etmek için /etc/hosts.allow dosyanıza şu satırı ekleyin:
pulseaudio-native: ALL
Eğer sistem genelinde (sistem servisi olarak) PulseAudio kullanıyorsanız -ki ağ üzerinden ses yayını için bu kullanım gereklidir- cookie dosyası /var/run/pulse/.pulse-cookie'dir. Bu cookie dosyası istemciye gönderilmelidir ve pulse-access grubunun okuyabileceği bir yere konulmalıdır.
# scp /var/run/pulse/.pulse-cookie client:/etc/pulse-cookie
# chown pulse:pulse-access /etc/pulse-cookie # chmod 640 /etc/pulse-cookie
Pulse istemcisinde cookie dosyasının nerede olduğu belirtilmelidir: (/etc/pulse/client.conf)
### Cookie dosyası cookie-file = /etc/pulse-cookie
Ayrıca istemcinin hangi sunucuya bağlanacağı da belirtilmelidir: (/etc/pulse/client.conf)
## Sunucu default-server = 192.168.0.5
Sorun Giderme
authkey.c: Failed to open cookie file '/home/<user>/.esd_auth': Permission denied
Eğer bu mesaj /var/log/errors.log içerisinde görünüyorsa, aşağıda yazanları
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
/etc/rc.d/pulseaudio dosyasında "add_daemon pulseaudio" satırının üstüne yazın.
module-x11-publish
Eğer PulseAudio çalışmıyorsa ve
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.
gibi çıktılar gösteriyorsa, module-x11-publish modülünü /etc/pulse/system.pa içerisinde devre dışı bırakın:
#load-module module-x11-publish
"daemon startup failed"
Eğer PulseAudio servisi çalıştırılamıyorsa ve şu hatayı veriyorsa
E: main.c: daemon startup failed.
/etc/pulse/system.pa tek başına aşağıdaki satır var ise # ile kaldırın.
.fail
Audacity
PulseAudio.org Wikisinde de yazdığı üzere, Audacity şimdilik PulseAudio'yu desteklememektedir. Ancak Audacity kullanmak için pulseaudio sürecini sonlandırabilirsiniz. referans.
PulseAudio Device Chooser (padevchooser)
Eğer PulseAudio Device Chooser (padevchooser) uygulaması çalışmıyorsa, Avahi daemon'u (tekrar) başlatın:
$ sudo /etc/rc.d/avahi-daemon restart
VLC
DVD'lerde ses problemi yaşıyorsanız, VLC'yi kaldırıp onun yerine AUR üzerindeki vlc-nightly paketini kurun ve ses çıkışını "Pulseaudio" olarak tanımlayın.
mpd
mpd'nin pulseaudio etkinleştirilmiş sürümü AUR üzerinde bulunmaktadır. mpd kullanıcısını "pulse-access" grubuna eklemeniz gerekmektedir.
module-hal-detect
Eğer HAL servisi hakkında hata mesajı alıyorsanız, HAL servisinin çalıştığından emin olun. Eğer çalışmasına rağmen hata alıyorsanız, /etc/pulse/system.pa dosyasında module-hal ile ilgili satırların başına # koyup devredışı bırakın ve ALSA aygıtlarını kendiniz belirtin. Mesela:
load-module module-alsa-sink device=hw:0 load-module module-alsa-source device=hw:0
Kurduktan Sonra Ses Alamıyorum
Eğer kurduktan sonra, ALSA'yı öntanımlı aygıtta kullanmanıza rağmen ses alamıyorsanız, sesi açmanız gerekebilir. Bunu yapmak için alsamixer'ı çalıştırıp, her sütunda yeşil 00 yazmasına dikkat edin. (alternatif olarak m'ye de basabilirsiniz.)
$ alsamixer -c 0
Surround Ses Kartım var; fakat PulseAudio sadece 2 hoparlör çalıştırıyor
Bir çok kullanıcıda surround ses kartı olmasına rağmen hoparlörlerini iki kanallı olduğu PulseAudio öntanımlı bir surround ayarı yapmamaktadır. Bütün kanalları etkinleştirmek için /etc/pulse/daemon.conf'u açıp, default-sample-channels satırındaki ; işaretini kaldırıp, kanal sayısını belirlemelisiniz. Eğer 5.1 bir ses sisteminiz varsa değerini 6 yapabilirsiniz, 7.1 ses sistemi için de değeri 8 yapabilirsiniz. Bu değişiklikleri yaptıktan sonra pulseaudio servisini tekrar başlatmalısınız. Örnekler:
# Öntanımlı için default-sample-channels = 2 # 5.1 için default-sample-channels = 6 # 7.1 için default-sample-channels = 8
Ayrıca Bkz
Dış Bağlantılar
- 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
- http://www.pulseaudio.org/wiki/FAQ - PulseAudio FAQ