From 405fac5ea7070fa7b50a77952fa8042f87f588a8 Mon Sep 17 00:00:00 2001
From: Lennart Poettering
I often hear noises when playing back with Polypaudio, what can I do?
-There are to possible solutions: either make the polypaudio - binary SUID root (chmod u+s /usr/bin/polypaudio) and run it - with argument --high-priority=1 or increase the fragment sizes of the audio +
There are to possible solutions: run polypaudio with argument +--high-priority=1 and make yourself member of the group +realtime, or increase the fragment sizes of the audio drivers. The former will allow Polypaudio to activate SCHED_FIFO high priority scheduling (root rights are dropped - immediately after this) Keep in mind that is a potential security hole!
I only want to run polypaudio when it is needed, how do I do this?
+ immediately after this) Keep in mind that this is a potential security hole!The polypaudio executable is installed SUID root by default. Why this? Isn't this a potential security hole?
+ +Polypaudio activates SCHED_FIFO scheduling if the user +passes --high-priority=1. This will only succeed when +executed as root, therefore the binary is marked SUID root by +default. Yes, this is a potential security hole. However, polypaudio +tries its best to minimize the security threat: immediately after +startup polypaudio drops all capabilities except +CAP_SYS_NICE (At least on systems that support it, like Linux; see man 7 +capabilities for more information). If the calling user is not a +member of the group realtime (which is required to have a GID +< 1000), root rights are dropped immediately. This means, you can +install polypaudio SUID root, but only a subset of your users (the +members of the group realtime) may make use of realtime +scheduling. Keep in mind that these users might load their own binary +modules into the polypaudio daemon which may freeze the machine. The +daemon has a minimal protection against CPU hogging (the daemon is +killed after hogging more than 70% CPU for 5 seconds), but this may +be circumvented easily by evildoers.
I want to run polypaudio only when it is needed, how do I do this?
Set autospawn = yes in client.conf. That configuration file may be found either in /etc/polypaudio/ or @@ -81,12 +101,35 @@ in ~/.polypaudio/.
Add -v for terse usage instructions.
-What environment does polypaudio care about?
+How do I use polypaudio over the network?
+ +Just set $POLYP_SERVER to the host name of the polypaudio server.
+ +Is polypaudio capable of providing synchronized audio playback over the network for movie players like mplayer?
+ +Yes! Unless your network is congested in some way (i.e. transfer latencies vary strongly) it works perfectly. Drop me an email for experimental patches for MPlayer.
+ +What environment variables does polypaudio care about?
The client honors: POLYP_SINK (default sink to connect to), POLYP_SOURCE (default source to connect to), POLYP_SERVER (default server to connect to, like ESPEAKER), POLYP_BINARY (the binary to start when autospawning a daemon), POLYP_CLIENTCONFIG (path to the client configuration file).
The daemon honors: POLYP_SCRIPT (default CLI script file run after startup), POLYP_CONFIG (default daemon configuration file), POLYP_DLPATH (colon separated list of paths where to look for modules)
I saw that SIGUSR2 provokes loading of the module module-cli-protocol-unix. But how do I make use of that?
+ +A brilliant guy named Lennart Poettering once wrote a nifty tool +for that purpose: bidilink. To +connect to a running polypaudio daemon try using the following commands:
+ +killall -USR2 polypaudio +bidilink unix-client:/tmp/polypaudio/cli+ +
BTW: Someone should package that great tool for Debian!
+ +Version 0.5.1 released; +changes include: improve esound protocol compatibility; fix +autospawning via libesd; make use of POSIX capabilities; +allow SCHED_FIFO scheduling only for users in group +realtime; minor build system fix.
+Version 0.5 released; changes include: extensive API improvements, new module @@ -222,7 +229,9 @@ compilation and make install (as root) for installation of
The current release is @PACKAGE_VERSION@
-Get polypaudio's development sources from the Subversion repository. (viewcvs)
+Get polypaudio's development sources from the Subversion repository (viewcvs):
+ +svn checkout svn://seth.intheinter.net/polypaudio/trunk polypaudio
If you want to be notified whenever I release a new version of this software use the subscription feature of Freshmeat.
diff --git a/doc/modules.html.in b/doc/modules.html.in index 00fe3388..4bf6044b 100644 --- a/doc/modules.html.in +++ b/doc/modules.html.in @@ -220,7 +220,7 @@ about the two possible suffixes of this module.This is used internally when auto spawning a new daemon.
+This is used internally when auto spawning a new daemon. Don't use it directly.
This is a compatibility module for libesd based autospawning of polypaudio. Don't use it directly.
+ +This is a compatibility module for libesd based autospawning of polypaudio. Don't use it directly.
+