PulseAudio

Arch Linux Türkiye Belgeleri sitesinden
Atla: kullan, ara


Internet.png Bu yazı ArchWiki üzerinde bulunan PulseAudio yazısının çevirisi temel alınarak hazırlanmıştır. Son güncelleme tarihi 19.02.2009
İngilizce olan ArchWiki sayfasında çeviri tarihinden sonra yapılan değişiklikler için bu bağlantıyı takip edin.

Sayfa özgün sayfaya göre güncelliğini yitirmişse, bu sayfayı düzenleyerek güncelleştirmeye yardım edin!

Tüm çeviri yazıları Özel:SayfayaBağlantılar/Şablon:çeviri_durumu sayfasında görüntüleyebilirsiniz.
Internet.png


Tango-dialog-warning.png Bu yazı güncelliğini yitirmiştir.
Lütfen yazıdaki eski bölümleri çıkartarak, güncel bilgiler ile yenileyerek bu yazıyı yeniden yardımcı olabilecek seviyeye getirmeye katkıda bulunun.
Tango-dialog-warning.png


Konu başlıkları

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.



Kalem.png
ÖNEMLİ:
PulseAudio aRts'ı değiştirmek için YAZILMAMIŞTIR. Eğer KDE 3 kullanıyorsanız, KDE3 ile PulseAudio kullanmak mümkün değildir.

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 -S pulseaudio 

İsterseniz PulseAudio için GTK arayüzlerini de kurabilirsiniz (tavsiye edilmektedir):

# pacman -S 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 -S 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.


Tango-dialog-warning.png
Uyarı:
Her ne olursa olsun type pulse kısmı aynı kalmalıdır.

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

Kalem.png
ÖNEMLİ:
Adobe Flash 10. sürümünden itibaren PulseAudio'yu doğrudan desteklemektedir, bu nedenle ek bir yapılandırmaya gerek duyulmamaktadır.

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"

Önemli: 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 -S 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 -S 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 -S 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

Tango-dialog-warning.png Bu yazı güncelliğini yitirmiştir.
Lütfen yazıdaki eski bölümleri çıkartarak, güncel bilgiler ile yenileyerek bu yazıyı yeniden yardımcı olabilecek seviyeye getirmeye katkıda bulunun.
Sebep: lütfen ayrıntılı bir açıklama sunmak için şablonun ilk argümanını kullanın. (Tartışın)
Tango-dialog-warning.png

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

Kişisel araçlar
GOOGLE
Diğer dillerde