source: multimedia/libdriv/pulseaudio.xml@ f677c49

elogind
Last change on this file since f677c49 was 22b8124, checked in by DJ Lucas <dj@…>, 5 years ago

Cleanup branch in prep for merge.

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/branches/BOOK-elogind@21666 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 18.6 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY pulseaudio-download-http
8 "https://www.freedesktop.org/software/pulseaudio/releases/pulseaudio-&pulseaudio-version;.tar.xz">
9 <!ENTITY pulseaudio-download-ftp " ">
10 <!ENTITY pulseaudio-md5sum "c42f1f1465e8df9859d023dc184734bf">
11 <!ENTITY pulseaudio-size "1.6 MB">
12 <!ENTITY pulseaudio-buildsize "112 MB (add 2 MB for tests)">
13 <!ENTITY pulseaudio-time "1.2 SBU (add 0.7 SBU for tests)">
14]>
15
16<sect1 id="pulseaudio" xreflabel="PulseAudio-&pulseaudio-version;">
17 <?dbhtml filename="pulseaudio.html"?>
18
19 <sect1info>
20 <othername>$LastChangedBy$</othername>
21 <date>$Date$</date>
22 </sect1info>
23
24 <title>PulseAudio-&pulseaudio-version;</title>
25
26 <indexterm zone="pulseaudio">
27 <primary sortas="a-PulseAudio">PulseAudio</primary>
28 </indexterm>
29
30 <sect2 role="package">
31 <title>Introduction to PulseAudio</title>
32
33 <para>
34 <application>PulseAudio</application> is a sound system for POSIX OSes,
35 meaning that it is a proxy for sound applications. It allows you to do
36 advanced operations on your sound data as it passes between your
37 application and your hardware. Things like transferring the audio to a
38 different machine, changing the sample format or channel count and mixing
39 several sounds into one are easily achieved using a sound server.
40 </para>
41
42 &lfs84_checked;
43
44 <bridgehead renderas="sect3">Package Information</bridgehead>
45 <itemizedlist spacing="compact">
46 <listitem>
47 <para>
48 Download (HTTP): <ulink url="&pulseaudio-download-http;"/>
49 </para>
50 </listitem>
51 <listitem>
52 <para>
53 Download (FTP): <ulink url="&pulseaudio-download-ftp;"/>
54 </para>
55 </listitem>
56 <listitem>
57 <para>
58 Download MD5 sum: &pulseaudio-md5sum;
59 </para>
60 </listitem>
61 <listitem>
62 <para>
63 Download size: &pulseaudio-size;
64 </para>
65 </listitem>
66 <listitem>
67 <para>
68 Estimated disk space required: &pulseaudio-buildsize;
69 </para>
70 </listitem>
71 <listitem>
72 <para>
73 Estimated build time: &pulseaudio-time;
74 </para>
75 </listitem>
76 </itemizedlist>
77
78 <bridgehead renderas="sect3">PulseAudio Dependencies</bridgehead>
79
80 <bridgehead renderas="sect4">Required</bridgehead>
81 <para role="required">
82 <xref linkend="libsndfile"/>
83 </para>
84
85 <bridgehead renderas="sect4">Recommended</bridgehead>
86 <para role="recommended">
87 <xref linkend="alsa-lib"/>,
88 <xref linkend="dbus"/>,
89 <phrase revision="sysv"><xref linkend="elogind"/>,</phrase>
90 <xref linkend="glib2"/>,
91 <xref linkend="libcap-pam"/>,
92 <xref linkend="speex"/> and
93 <xref linkend="xorg7-lib"/>
94 </para>
95
96 <bridgehead renderas="sect4">Optional</bridgehead>
97 <para role="optional">
98 <xref linkend="avahi"/>,
99 <xref linkend="bluez"/>,
100 <xref linkend="fftw"/>,
101 <xref linkend="GConf"/>,
102 <xref linkend="gtk3"/>,
103 <xref linkend="libsamplerate"/>,
104 <xref linkend="sbc"/> (Bluetooth support),
105 <xref linkend="valgrind"/>,
106 <ulink url="http://www.jackaudio.org/">JACK</ulink>,
107 <ulink url="http://0pointer.de/lennart/projects/libasyncns/">libasyncns</ulink>,
108 <ulink url="http://www.lirc.org/">LIRC</ulink>,
109 <ulink url="http://gstreamer.freedesktop.org/src/orc/">ORC</ulink>,
110 <ulink url="https://sourceforge.net/projects/soxr/">soxr</ulink>,
111 <ulink url="http://tdb.samba.org/">TDB</ulink>,
112 <ulink url="http://freedesktop.org/software/pulseaudio/webrtc-audio-processing/">
113 WebRTC AudioProcessing</ulink> and
114 <ulink url="http://www.xenproject.org/">XEN</ulink>
115 </para>
116
117 <para condition="html" role="usernotes">User Notes:
118 <ulink url="&blfs-wiki;/pulseaudio"/>
119 </para>
120 </sect2>
121
122 <sect2 role="installation">
123 <title>Installation of PulseAudio</title>
124
125 <para>
126 Install <application>PulseAudio</application> by running the following
127 commands:
128 </para>
129
130 <para>
131 First, adapt Pulseaudio to upstream ALSA API changes:
132 </para>
133 <!-- This is due to it becoming FATAL to include ALSA headers from
134 /usr/include instead of /usr/include/alsa. Only one of these
135 files uses pkg-config to get it's headers, and as a result,
136 the hardcoded paths need to be updated. In this case, I developed
137 three seds and a call to ./bootstrap.sh to fix this. Other packages
138 may be affected by this upstream ALSA change as well. -->
139
140<screen><userinput>sed -i "s:asoundlib.h:alsa/asoundlib.h:" src/modules/alsa/*.{c,h} &amp;&amp;
141sed -i "s:use-case.h:alsa/use-case.h:" configure.ac &amp;&amp;
142sed -i "s:use-case.h:alsa/use-case.h:" src/modules/alsa/alsa-ucm.h</userinput></screen>
143
144<screen revision="sysv"><userinput>NOCONFIGURE=1 ./bootstrap.sh &amp;&amp;
145./configure --prefix=/usr \
146 --sysconfdir=/etc \
147 --localstatedir=/var \
148 --disable-bluez4 \
149 --disable-bluez5 \
150 --disable-rpath \
151 --with-systemduserunitdir=no &amp;&amp;
152make</userinput></screen>
153
154<screen revision="systemd"><userinput>NOCONFIGURE=1 ./bootstrap.sh &amp;&amp;
155./configure --prefix=/usr \
156 --sysconfdir=/etc \
157 --localstatedir=/var \
158 --disable-bluez4 \
159 --disable-bluez5 \
160 --disable-rpath &amp;&amp;
161make</userinput></screen>
162
163 <para>
164 To test the results, issue: <command>make check</command>.
165 The volume-test may fail for unknown reasons.
166 <!-- apparently, the max deviation is higher than expected, i.e. assertion
167 failed, result of 280 > 253 : but it seems to work -->
168 </para>
169
170 <para>
171 Now, as the <systemitem class="username">root</systemitem> user:
172 </para>
173
174<screen role="root"><userinput>make install</userinput></screen>
175
176 <!-- http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SystemWide/ -->
177 <para>
178 While still as the <systemitem class="username">root</systemitem>
179 user, remove the <application>D-Bus</application> configuration file
180 for the system wide daemon to avoid creating unnecessary system
181 users and groups:
182 </para>
183
184<screen role="root"><userinput>rm -fv /etc/dbus-1/system.d/pulseaudio-system.conf</userinput></screen>
185
186 </sect2>
187
188 <sect2 role="commands">
189 <title>Command Explanations</title>
190 <!--
191 <para>
192 <command>AUTOPOINT='intltoolize ...</command>:
193 <command>autoreconf</command> needs to be run after applying the
194 patch. Running <command>intltoolize</command> instead of
195 <command>autopoint</command> prevents an error when running
196 <command>configure</command> afterwards.
197 </para>
198 -->
199
200 <para>
201 <parameter>--disable-bluez4</parameter>: This switch disables
202 support for <application>BlueZ</application> version 4 in favour
203 of <application>BlueZ</application> version 5 since the latter
204 also installs compatibility library for the earlier version.
205 </para>
206
207 <para>
208 <parameter>--disable-bluez5</parameter>: This switch prevents
209 a runtime error if <xref linkend="dbus"/> and <xref linkend="sbc"/>
210 are both installed but <xref linkend="bluez"/> is not installed.
211 Remove this if you have installed all three packages.
212 </para>
213
214 <para>
215 <parameter>--disable-rpath</parameter>: This switch prevents
216 linker from adding a hardcoded runtime path to the installed
217 programs and libraries.
218 </para>
219
220 </sect2>
221
222 <sect2 role="configuration">
223 <title>Configuring PulseAudio</title>
224
225 <sect3 id="pulseaudio-config">
226 <title>Config Files</title>
227 <para>
228 There are system wide configuration files:
229 <filename>/etc/pulse/daemon.conf</filename>,
230 <filename>/etc/pulse/client.conf</filename>,
231 <filename>/etc/pulse/default.pa</filename>, and user configuration
232 files with the same names in
233 <filename class="directory">~/.config/pulse</filename>. User
234 configuration files take precedence over system wide ones.
235 </para>
236
237 <indexterm zone="pulseaudio pulseaudio-config">
238 <primary sortas="e-AA.config-pulse">~/.config/pulse</primary>
239 </indexterm>
240
241 <indexterm zone="pulseaudio pulseaudio-config">
242 <primary
243 sortas="e-etc-pulse-daemon.conf">/etc/pulse/daemon.conf</primary>
244 </indexterm>
245
246 <indexterm zone="pulseaudio pulseaudio-config">
247 <primary
248 sortas="e-etc-pulse-client.conf">/etc/pulse/client.conf</primary>
249 </indexterm>
250
251 <indexterm zone="pulseaudio pulseaudio-config">
252 <primary
253 sortas="e-etc-pulse-default.pa">/etc/pulse/default.pa</primary>
254 </indexterm>
255 </sect3>
256
257 <sect3><title>Configuration Information</title>
258
259 <para>
260 The default configuration files allow setting up a working installation.
261 However, a reference to Console-Kit needs to be removed if it is
262 not installed. For example, issue the following command as the
263 <systemitem class="username">root</systemitem> user:
264 </para>
265
266<screen role="root"><userinput>sed -i '/load-module module-console-kit/s/^/#/' /etc/pulse/default.pa</userinput></screen>
267
268 <para>
269 You may also have to configure the audio system. You can start
270 <application>pulseaudio</application> in command line mode using
271 <command>pulseaudio -C</command> and then list various
272 information and change settings. See
273 <command>man pulse-cli-syntax</command>.
274 </para>
275
276 <para>
277 If <application>pulseaudio</application> was working but you no-longer
278 have sound, after checking for hardware issues (speakers or headphones
279 not connected, external amplifier not connected) you may need to fix it.
280 </para>
281
282 <para>
283 One suggestion is to close the application, such as
284 <application>firefox</application> where sound has stopped working, then
285 run: <command>pactl list short sinks</command> followed by:
286 <command>pacmd set-default-sink &lt;sink #&gt;</command> and then
287 restart the application.
288 </para>
289
290 <para>
291 If that does not work, a more drastic approach often works. After closing
292 the application, close pulseaudio, either using <command>pulseaudio
293 --kill</command> or, if that fails, <command>killall -KILL
294 pulseaudio</command> and then <command>rm -rf
295 ~/.config/pulse/*</command> (and perhaps also
296 <command>rm -rf ~/.pulse/*</command> if you have used a very old version
297 of pulse on this machine, then run <command>pulseaudio
298 --verbose</command> to restart it. If the daemon starts, restart the
299 application. See <command>man pulseaudio</command> for more options.
300 </para>
301
302 </sect3>
303 </sect2>
304
305 <sect2 role="content">
306 <title>Contents</title>
307
308 <segmentedlist>
309 <segtitle>Installed Programs</segtitle>
310 <segtitle>Installed Libraries</segtitle>
311 <segtitle>Installed Directories</segtitle>
312
313 <seglistitem>
314 <seg>
315 esdcompat, pacat, pacmd, pactl, padsp, pamon (symlink to pacat),
316 paplay (symlink to pacat), parec (symlink to pacat),
317 parecord (symlink to pacat), pasuspender,
318 pax11publish, pulseaudio, and
319 <!-- it looks like the equalizer needs FFTW: qpaeq, -->
320 start-pulseaudio-x11
321 </seg>
322 <seg>
323 libpulse.so
324 libpulse-mainloop-glib.so,
325 libpulse-simple.so,
326 libpulsecommon-&pulseaudio-major-version;.so,
327 libpulsecore-&pulseaudio-major-version;.so, and
328 libpulsedsp.so
329
330 </seg>
331 <seg>
332 /etc/pulse,
333 /usr/include/pulse,
334 /usr/lib/cmake/PulseAudio,
335 /usr/lib/{pulseaudio,pulse-&pulseaudio-major-version;},
336 /usr/libexec/pulse, and
337 /usr/share/pulseaudio
338 </seg>
339 </seglistitem>
340 </segmentedlist>
341
342 <variablelist>
343 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
344 <?dbfo list-presentation="list"?>
345 <?dbhtml list-presentation="table"?>
346
347 <varlistentry id="esdcompat">
348 <term><command>esdcompat</command></term>
349 <listitem>
350 <para>
351 is the <application>PulseAudio</application> ESD wrapper script.
352 </para>
353 <indexterm zone="pulseaudio esdcompat">
354 <primary sortas="b-esdcompat">esdcompat</primary>
355 </indexterm>
356 </listitem>
357 </varlistentry>
358
359 <varlistentry id="pacat">
360 <term><command>pacat</command></term>
361 <listitem>
362 <para>
363 plays back or records raw or encoded audio streams on a
364 <application>PulseAudio</application> sound server.
365 </para>
366 <indexterm zone="pulseaudio pacat">
367 <primary sortas="b-pacat">pacat</primary>
368 </indexterm>
369 </listitem>
370 </varlistentry>
371
372 <varlistentry id="pacmd">
373 <term><command>pacmd</command></term>
374 <listitem>
375 <para>
376 is a tool used to reconfigure a <application>PulseAudio</application>
377 sound server during runtime.
378 </para>
379 <indexterm zone="pulseaudio pacmd">
380 <primary sortas="b-pacmd">pacmd</primary>
381 </indexterm>
382 </listitem>
383 </varlistentry>
384
385 <varlistentry id="pactl">
386 <term><command>pactl</command></term>
387 <listitem>
388 <para>
389 is used to control a running <application>PulseAudio</application>
390 sound server.
391 </para>
392 <indexterm zone="pulseaudio pactl">
393 <primary sortas="b-pactl">pactl</primary>
394 </indexterm>
395 </listitem>
396 </varlistentry>
397
398 <varlistentry id="padsp">
399 <term><command>padsp</command></term>
400 <listitem>
401 <para>
402 is the <application>PulseAudio</application> OSS Wrapper.
403 </para>
404 <indexterm zone="pulseaudio padsp">
405 <primary sortas="b-padsp">padsp</primary>
406 </indexterm>
407 </listitem>
408 </varlistentry>
409
410 <varlistentry id="pamon">
411 <term><command>pamon</command></term>
412 <listitem>
413 <para>
414 is a symbolic link to <command>pacat</command>.
415 </para>
416 <indexterm zone="pulseaudio pamon">
417 <primary sortas="b-pamon">pamon</primary>
418 </indexterm>
419 </listitem>
420 </varlistentry>
421
422 <varlistentry id="paplay">
423 <term><command>paplay</command></term>
424 <listitem>
425 <para>
426 is used to play audio files on a
427 <application>PulseAudio</application> sound server.
428 </para>
429 <indexterm zone="pulseaudio paplay">
430 <primary sortas="b-paplay">paplay</primary>
431 </indexterm>
432 </listitem>
433 </varlistentry>
434
435 <varlistentry id="parec">
436 <term><command>parec</command></term>
437 <listitem>
438 <para>
439 is a symbolic link to <command>pacat</command>.
440 </para>
441 <indexterm zone="pulseaudio parec">
442 <primary sortas="b-parec">parec</primary>
443 </indexterm>
444 </listitem>
445 </varlistentry>
446
447 <varlistentry id="parecord">
448 <term><command>parecord</command></term>
449 <listitem>
450 <para>
451 is a symbolic link to <command>pacat</command>.
452 </para>
453 <indexterm zone="pulseaudio parecord">
454 <primary sortas="b-parecord">parecord</primary>
455 </indexterm>
456 </listitem>
457 </varlistentry>
458
459 <varlistentry id="pasuspender">
460 <term><command>pasuspender</command></term>
461 <listitem>
462 <para>
463 is a tool that can be used to tell a local
464 <application>PulseAudio</application> sound server to temporarily
465 suspend access to the audio devices, to allow other applications
466 to access them directly.
467 </para>
468 <indexterm zone="pulseaudio pasuspender">
469 <primary sortas="b-pasuspender">pasuspender</primary>
470 </indexterm>
471 </listitem>
472 </varlistentry>
473
474 <varlistentry id="pax11publish">
475 <term><command>pax11publish</command></term>
476 <listitem>
477 <para>
478 is the <application>PulseAudio</application>
479 X11 Credential Utility.
480 </para>
481 <indexterm zone="pulseaudio pax11publish">
482 <primary sortas="b-pax11publish">pax11publish</primary>
483 </indexterm>
484 </listitem>
485 </varlistentry>
486
487 <varlistentry id="pulseaudio-prog">
488 <term><command>pulseaudio</command></term>
489 <listitem>
490 <para>
491 is a networked low-latency sound server for Linux.
492 </para>
493 <indexterm zone="pulseaudio pulseaudio-prog">
494 <primary sortas="b-pulseaudio">pulseaudio</primary>
495 </indexterm>
496 </listitem>
497 </varlistentry>
498
499<!-- only installed if FFTW is present
500 <varlistentry id="qpaeq">
501 <term><command>qpaeq</command></term>
502 <listitem>
503 <para>
504 is an equalizer interface for
505 <application>PulseAudio</application> equalizer sinks.
506 </para>
507 <indexterm zone="pulseaudio qpaeq">
508 <primary sortas="b-qpaeq">qpaeq</primary>
509 </indexterm>
510 </listitem>
511 </varlistentry>
512-->
513<!-- Not found in PA 7.0
514 <varlistentry id="start-pulseaudio-kde">
515 <term><command>start-pulseaudio-kde</command></term>
516 <listitem>
517 <para>
518 Starts <application>PulseAudio</application> and loads
519 module-device-manager to use KDE routing policies.
520 </para>
521 <indexterm zone="pulseaudio start-pulseaudio-kde">
522 <primary sortas="b-start-pulseaudio-kde">start-pulseaudio-kde</primary>
523 </indexterm>
524 </listitem>
525 </varlistentry>
526-->
527 <varlistentry id="start-pulseaudio-x11">
528 <term><command>start-pulseaudio-x11</command></term>
529 <listitem>
530 <para>
531 starts <application>PulseAudio</application> and registers it to
532 the X11 session manager.
533 </para>
534 <indexterm zone="pulseaudio start-pulseaudio-x11">
535 <primary sortas="b-start-pulseaudio-x11">start-pulseaudio-x11</primary>
536 </indexterm>
537 </listitem>
538 </varlistentry>
539
540 </variablelist>
541
542 </sect2>
543
544</sect1>
Note: See TracBrowser for help on using the repository browser.