From 7fdc1ee0838d3c55e29d8f44f2919a60f9415e56 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 5 Nov 2007 23:56:00 +0000 Subject: add a couple of more man pages git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@2024 fefdeb5f-60dc-0310-8127-8f9354f1896f --- man/pulseaudio.1.xml.in | 69 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 68 insertions(+), 1 deletion(-) (limited to 'man/pulseaudio.1.xml.in') diff --git a/man/pulseaudio.1.xml.in b/man/pulseaudio.1.xml.in index b30f4484..1f53a60b 100644 --- a/man/pulseaudio.1.xml.in +++ b/man/pulseaudio.1.xml.in @@ -28,6 +28,7 @@ USA. pulseaudio [options] pulseaudio --help + pulseaudio --version pulseaudio --dump-conf pulseaudio --dump-modules pulseaudio --dump-resample-methods @@ -363,7 +364,73 @@ USA.
- Blablub +

To minimize the risk of drop-outs during playback it is + recommended to run PulseAudio with real-time scheduling if the + underlying platform supports it. This decouples the scheduling + latency of the PulseAudio daemon from the system load and is thus + the best way to make sure that PulseAudio always gets CPU time + when it needs it to refill the hardware playback + buffers. Unfortunately this is a security risk on most systems, + since PulseAudio runs as user process, and giving realtime + scheduling priviliges to a user process always comes with the risk + that the user misuses it to lock up the system -- which is + possible since making a process real-time effectively disables + preemption.

+ +

To minimize the risk PulseAudio by default does not enable + real-time scheduling. It is however recommended to enable it + on trusted systems. To do that start PulseAudio with + --realtime (see above) or enabled the appropriate option in + daemon.conf. Since acquiring realtime scheduling is a + priviliged operation on most systems, some special changes to the + system configuration need to be made to allow them to the calling + user. Two options are available:

+ +

On newer Linux systems the system resource limit RLIMIT_RTPRIO + (see for more information) + can be used to allow specific users to acquire real-time + scheduling. This can be configured in + /etc/security/limits.conf, a resource limit of 9 is recommended.

+ +

Alternatively, the SUID root bit can be set for the PulseAudio + binary. Then, the daemon will drop root priviliges immediately on + startup, however retain the CAP_NICE capability (on systems that + support it), but only if the calling user is a member of the + pulse-rt group (see above). For all other users all + capababilities are dropped immediately. The advantage of this + solution is that the real-time priviliges are only granted to the + PulseAudio daemon -- not to all the user's processes.

+ +

Alternatively, if the risk of locking up the machine is + considered too big to enable real-time scheduling, high-priority + scheduling can be enabled instead (i.e. negative nice level). This + can be enabled by passing --high-priority (see above) + when starting PulseAudio and may also be enabled with the + approriate option in daemon.conf. Negative nice + levels can only be enabled when the appropriate resource limit + RLIMIT_NICE is set (see for + more information), possibly configured in + /etc/security/limits.conf. A resource limit of 31 + (corresponding with nice level -11) is recommended.

+
+ +
+ +

The PulseAudio client libraries check for the existance of the + following environment variables and change their local configuration accordingly:

+ +

$PULSE_SERVER: the server string specifying the server to connect to when a client asks for a sound server connection and doesn't explicitly ask for a specific server.

+ +

$PULSE_SINK: the symbolic name of the sink to connect to when a client creates a playback stream and doesn't explicitly ask for a specific sink.

+ +

$PULSE_SOURCE: the symbolic name of the source to connect to when a client creates a record stream and doesn't explicitly ask for a specific source.

+ +

$PULSE_BINARY: path of PulseAudio executable to run when server auto-spawning is used.

+ +

$PULSE_CLIENTCONFIG: path of file that shall be read instead of client.conf (see above) for client configuration.

+ +

These environment settings take precedence -- if set -- over the configuration settings from client.conf (see above).

+
-- cgit