Resmi talimatlar çoğu insan için bir ağ üzerinde bir "doğrudan bağlantı" umarım sadece iş yaratmak için, ancak pulseaudio görünüyor ve bunu iyi geçiniyor yok: bu götürdü saatleri . ["Doğrudan bağlantı" nın yanı sıra, aşağıda açıklanan "tünel" yöntemini de kullanabilirsiniz, ancak önce bunu okumanızı öneririz.]
Şimdi pi'ye (fedora 17) masaüstü akış sesim var. Her /etc/pulse
iki taraftaki yapılandırma dosyalarını küçülttüm. Masaüstü tarafında:
/etc/pulse/client.conf
# See man pulse-client.conf
default-server = tcp:192.168.2.13:4713
Pi'nin LAN adresi, varsayılan pulseaudio portu ile. Ama işte o zaman bir süredir kafam karıştı - bir sunucu belirtildiğinde, pulseaudio bile başlamazdı:
> pulseaudio --start
N: [pulseaudio] main.c: User-configured server at tcp:192.168.2.13:4713, refusing to start/autospawn.
Ön planda çalışır (muhtemelen o zaman pulse-client.conf? Ancak , ortaya çıktığı gibi, onu masaüstü (gönderme) tarafında çalıştırmanıza gerek yoktur , pulseaudio belgelerinde belirtilmeyen bir şey. lsof -i -P
Bunu kullanarak , çeşitli medya oynatıcılar için daha düşük seviye eklentiler işi yapar gibi görünüyor.
Yani, bir satır "client.conf" aslında masaüstü / istemci tarafında ihtiyacınız olan tek şeydir, eğer yapacağınız tek şey ağı kullanmaksa (ancak aşağıdaki "Daha Fazla Komplikasyon" a bakınız).
Pulseaudio arka plan programı (alıcı / sunucu tarafında) bir sistem hizmeti olarak çalıştırılabilse de, nabız geliştiricileri buna karşı tavsiye eder ve aslında pi'de init betiği sadece bir uyarı verilmesine neden olur: yine de başlatmanız gerekir kendiniz. Fedora bunun için bir systemd önyükleme hizmeti girişi bile içermez.
Bu nedenle, pi tarafında, bu şekilde yapılandırılmış pulseaudio sunucu işlemini açıkça başlatmalı ve durdurmalısınız:
/etc/pulse/daemon.conf
# See man pulse-daemon.conf
log-level = info
exit-idle-time = 10800 # 3 hours
Sen kullanabilirsiniz -1 için exit-idle-time
süresiz çalışan cini tutmak. Bu saniye ve varsayılan 20 (bu ayarlamazsanız "gizemli" ölmeye devam edecek) dikkat edin.
/etc/pulse/default.pa'yı
# See man default.pa
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.2.0/24
load-module module-alsa-sink device=hw:0,0
Bu bir ağ uygulaması olduğundan, root olarak çalıştırmak iyi bir fikir değildir. Ancak, daha önce de belirtildiği gibi man pulseaudio
, süreci daha yüksek bir öncelik vermek için "yeniden adlandırmak" iyi bir fikirdir. Bunu manuel olarak yapabilirsiniz nice
, ancak pulseaudio bunu kök veya pulse-rt
grup üyeleri için otomatik olarak yapar , eğer yürütülebilir dosya "setuid" ise, bazı kök ayrıcalıklarından yararlanabilir ve daha sonra doğru ayrılmamış uid'e geçebilir ( ping
ve passwd
Ayrıca bunu yapmak gerekir). Yani (kök veya sudo olarak):
chmod u+s /usr/bin/pulseaudio
pulse-rt
Pulpeaudio raspbian'a yüklendiğinde oluşturulan grup yok , bu yüzden:
groupadd pulse-rt
Bu size 1003 gibi bir yön verir. Bu gruba kullanıcı pi'yi ekleyin (örn.):
usermod -aG pulse-rt pi
Ama raspbian'da, pi olarak yeniden karar veremezsiniz. Bunun için şunu ekleyin /etc/security/limits.conf
:
@pulse-rt hard nice -20
@pulse-rt soft nice -20
Bu değişiklikler gerçekleşmeden önce bir oturum açmanız gerekir; Eğer pi ile ssh kullanıyorsanız, sadece kullanın login
. Şimdi pulseaudio'yu başlatabilirsiniz ve kendini -11 olarak yeniden adlandırır, ki bu muhtemelen diğer işlemlerin çoğundan daha yüksektir (NICE değerine bakın top
).
Ağdan akan sesi çalarken, pi'deki pulseaudio CPU'nun yaklaşık% 10'unu ve önemsiz miktarda belleği kullanır. :) Bu ve masaüstüm kablolu bir LAN'da; darbe ham pcm veri akışı (inanıyorum), bu nedenle bant genişliği kullanımı kaynağın örnek hızına karşılık gelir, 1 kB / s ve üstü. Ne yazık ki, video izliyorsanız seste belirgin bir gecikme var.
Daha Fazla Komplikasyon ...
Ne yazık ki, bilgisayarımdaki çeşitli ses uygulamalarının hiçbiri hemen işe yaramadı; mpg123
hiç çalışmaz. Bunun için fedora'da mpg123-plugins-pulseaudio
pakete ihtiyacınız var . Tarayıcıdaki flash şeyler için (örneğin, youtude) ihtiyacınız vardır alsa-plugins-pulseaudio
(bunlar aslında uzak sunucuya bağlanan şeydir). Diğer dağıtımların benzer paketleri olmalıdır. Daha önce pulseaudio kullanıyorsanız (ben değildim), bunları önceden yüklemiş olabilirsiniz.
KDE'nin masaüstü zilleri ve ıslıkları da işe yaramadı. Yerel bir pulseaudio sunucusu arar ve açıklandığı gibi, doğrudan bir bağlantı kullanmak, hiçbir sunucunun yerel olarak çalıştırılamayacağı anlamına gelir. Bunun yolu "tünel" yöntemini kullanmaktır.
Modül tünel lavabo
Bu, pulseaudio belgelerinde belirtilen diğer yoldur. Bu durumda, her iki tarafta çalışan bir sunucunuz var ve bir eliniz diğerine gidiyor. Bunu yapmak için, "varsayılan sunucu" alanına yorum yazın /etc/client.conf
ve aşağıdakileri /etc/default.pa
içeren bir yerel ekleyin :
load-module module-tunnel-sink sink_name=rpi_tunnel server=tcp:192.168.2.13:4713 sink=bcm1
Bir koymazsanız sink_name
in, pulseaudio başlamaz. Bu sink
, daha sonra bir isme ihtiyaç duyan pi tarafındaki lavabo adını ifade eder; karşılık gelen eklemek sink_name
için module-alsa-sink
hat default.pa
var:
load-module module-alsa-sink device=hw:0,0 sink_name=bcm1
Her iki tarafta sunucuyu başlatın ve ... KDE bipleri de dahil olmak üzere her şey taşınırken, tarayıcı flash oynatımı kötü bir şekilde kekeledi. Ancak, başka bir masaüstü ortamında (aslında, sadece bir pencere yöneticisi, fvwm) iyiydi.
KDE'yi seviyorum ama uykusuz yaşayabilirim, bu yüzden şimdilik doğrudan bağlantıya bağlı kalacağım.
Sorun giderme
Sorun yaşarsanız pulseaudio -vvvv --log-level=debug
, pi'de kullanmak çok sayıda hata ayıklama mesajı sağlar. Başlangıçta pi ses alamadım zaman bu ses sadece alsa ile iyi olduğundan bana garip görünüyordu "ALSA bcm2835 sürücüsündeki bir hata ile ilgili" bir sorun bildirdi ve eminim ki etrafında pi yazılımı var bağlıdır pulseaudio'da - apt-get remove pulseaudio
ve yeniden kurulum apt-get install pulseaudio
bunu düzeltiyor gibiydi ... Görmeyi sevdiğim bir çözüm değil, ama hey, en azından şimdi her kutuya hoparlör takmadan tish dinleyebiliyorum. Çoğunlukla.