diff options
Diffstat (limited to 'doc/FAQ.html.in')
-rw-r--r-- | doc/FAQ.html.in | 59 |
1 files changed, 51 insertions, 8 deletions
diff --git a/doc/FAQ.html.in b/doc/FAQ.html.in index ac9bc466..f1bf2414 100644 --- a/doc/FAQ.html.in +++ b/doc/FAQ.html.in @@ -62,14 +62,34 @@ embed Polypaudio in the aRts process.</p></li> <li><p><b>I often hear noises when playing back with Polypaudio, what can I do?</b></p> - <p>There are to possible solutions: either make the polypaudio - binary SUID root (<tt>chmod u+s /usr/bin/polypaudio</tt>) and run it - with argument <tt>--high-priority=1</tt> or increase the fragment sizes of the audio + <p>There are to possible solutions: run polypaudio with argument +<tt>--high-priority=1</tt> and make yourself member of the group +<tt>realtime</tt>, or increase the fragment sizes of the audio drivers. The former will allow Polypaudio to activate <tt>SCHED_FIFO</tt> high priority scheduling (root rights are dropped - immediately after this) Keep in mind that is a potential security hole!</p></li> - - <li><p><b>I only want to run polypaudio when it is needed, how do I do this?</b></p> + immediately after this) Keep in mind that this is a potential security hole!</p></li> + + <li><p><b>The <tt>polypaudio</tt> executable is installed SUID root by default. Why this? Isn't this a potential security hole?</b></p> + + <p>Polypaudio activates <tt>SCHED_FIFO</tt> scheduling if the user +passes <tt>--high-priority=1</tt>. 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 +<tt>CAP_SYS_NICE</tt> (At least on systems that support it, like Linux; see <tt>man 7 +capabilities</tt> for more information). If the calling user is not a +member of the group <tt>realtime</tt> (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 <tt>realtime</tt>) 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.</p></li> + + <li><p><b>I want to run polypaudio only when it is needed, how do I do this?</b></p> <p>Set <tt>autospawn = yes</tt> in <tt>client.conf</tt>. That configuration file may be found either in <tt>/etc/polypaudio/</tt> or @@ -81,12 +101,35 @@ in <tt>~/.polypaudio/</tt>.</p></li> <p>Add <tt>-v</tt> for terse usage instructions.</p> - <li><p><b>What environment does polypaudio care about?</b></p> +<li><p><b>How do I use polypaudio over the network?</b></p> + +<p>Just set <tt>$POLYP_SERVER</tt> to the host name of the polypaudio server.</p> + +<li><p><b>Is polypaudio capable of providing synchronized audio playback over the network for movie players like <tt>mplayer</tt>?</b></p> + +<p>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.</p> + + <li><p><b>What environment variables does polypaudio care about?</b></p> <p>The client honors: <tt>POLYP_SINK</tt> (default sink to connect to), <tt>POLYP_SOURCE</tt> (default source to connect to), <tt>POLYP_SERVER</tt> (default server to connect to, like <tt>ESPEAKER</tt>), <tt>POLYP_BINARY</tt> (the binary to start when autospawning a daemon), <tt>POLYP_CLIENTCONFIG</tt> (path to the client configuration file).</p> <p>The daemon honors: <tt>POLYP_SCRIPT</tt> (default CLI script file run after startup), <tt>POLYP_CONFIG</tt> (default daemon configuration file), <tt>POLYP_DLPATH</tt> (colon separated list of paths where to look for modules)</p></li> - + + +<li><p><b>I saw that SIGUSR2 provokes loading of the module <tt>module-cli-protocol-unix</tt>. But how do I make use of that?</b></p> + +<p>A brilliant guy named Lennart Poettering once wrote a nifty tool +for that purpose: <a +href="http://0pointer.de/lennart/projects/bidilink/">bidilink</a>. To +connect to a running polypaudio daemon try using the following commands:</p> + +<pre>killall -USR2 polypaudio +bidilink unix-client:/tmp/polypaudio/cli</pre> + +<p><i>BTW: Someone should package that great tool for Debian!</i></p> + +</li> + </ol> <hr/> |