source: multimedia/libdriv/pulseaudio.xml@ f81dfa79

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 9.1 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since f81dfa79 was d8f80e9, checked in by Bruce Dubbs <bdubbs@…>, 5 years ago

Update to pulseaudio-13.0

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

  • Property mode set to 100644
File size: 18.7 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 "e41d606f90254ed45c90520faf83d95c">
11 <!ENTITY pulseaudio-size "1.8 MB">
12 <!ENTITY pulseaudio-buildsize "93 MB (add 2 MB for tests)">
13 <!ENTITY pulseaudio-time "0.5 SBU (Using parallelism=4; add 0.6 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 &lfs90_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-->
134 <!-- This is due to it becoming FATAL to include ALSA headers from
135 /usr/include instead of /usr/include/alsa. Only one of these
136 files uses pkg-config to get it's headers, and as a result,
137 the hardcoded paths need to be updated. In this case, I developed
138 three seds and a call to ./bootstrap.sh to fix this. Other packages
139 may be affected by this upstream ALSA change as well. -->
140<!--
141<screen><userinput>Esed -i "s:asoundlib.h:alsa/asoundlib.h:" src/modules/alsa/*.{c,h} &amp;&amp;
142sed -i "s:use-case.h:alsa/use-case.h:" configure.ac &amp;&amp;
143sed -i "s:use-case.h:alsa/use-case.h:" src/modules/alsa/alsa-ucm.h</userinput></screen>
144-->
145<screen revision="sysv"><userinput>./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>./configure --prefix=/usr \
155 --sysconfdir=/etc \
156 --localstatedir=/var \
157 --disable-bluez4 \
158 --disable-bluez5 \
159 --disable-rpath &amp;&amp;
160make</userinput></screen>
161
162 <para>
163 To test the results, issue: <command>make check</command>.
164 <!-- The volume-test may fail for unknown reasons.
165 Works OK for pa-13.0 -->
166
167 <!-- apparently, the max deviation is higher than expected, i.e. assertion
168 failed, result of 280 > 253 : but it seems to work -->
169 </para>
170
171 <para>
172 Now, as the <systemitem class="username">root</systemitem> user:
173 </para>
174
175<screen role="root"><userinput>make install</userinput></screen>
176
177 <!-- http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SystemWide/ -->
178 <para>
179 While still as the <systemitem class="username">root</systemitem>
180 user, remove the <application>D-Bus</application> configuration file
181 for the system wide daemon to avoid creating unnecessary system
182 users and groups:
183 </para>
184
185<screen role="root"><userinput>rm -fv /etc/dbus-1/system.d/pulseaudio-system.conf</userinput></screen>
186
187 </sect2>
188
189 <sect2 role="commands">
190 <title>Command Explanations</title>
191 <!--
192 <para>
193 <command>AUTOPOINT='intltoolize ...</command>:
194 <command>autoreconf</command> needs to be run after applying the
195 patch. Running <command>intltoolize</command> instead of
196 <command>autopoint</command> prevents an error when running
197 <command>configure</command> afterwards.
198 </para>
199 -->
200
201 <para>
202 <parameter>--disable-bluez4</parameter>: This switch disables
203 support for <application>BlueZ</application> version 4 in favour
204 of <application>BlueZ</application> version 5 since the latter
205 also installs compatibility library for the earlier version.
206 </para>
207
208 <para>
209 <parameter>--disable-bluez5</parameter>: This switch prevents
210 a runtime error if <xref linkend="dbus"/> and <xref linkend="sbc"/>
211 are both installed but <xref linkend="bluez"/> is not installed.
212 Remove this if you have installed all three packages.
213 </para>
214
215 <para>
216 <parameter>--disable-rpath</parameter>: This switch prevents
217 linker from adding a hardcoded runtime path to the installed
218 programs and libraries.
219 </para>
220
221 </sect2>
222
223 <sect2 role="configuration">
224 <title>Configuring PulseAudio</title>
225
226 <sect3 id="pulseaudio-config">
227 <title>Config Files</title>
228 <para>
229 There are system wide configuration files:
230 <filename>/etc/pulse/daemon.conf</filename>,
231 <filename>/etc/pulse/client.conf</filename>,
232 <filename>/etc/pulse/default.pa</filename>, and user configuration
233 files with the same names in
234 <filename class="directory">~/.config/pulse</filename>. User
235 configuration files take precedence over system wide ones.
236 </para>
237
238 <indexterm zone="pulseaudio pulseaudio-config">
239 <primary sortas="e-AA.config-pulse">~/.config/pulse</primary>
240 </indexterm>
241
242 <indexterm zone="pulseaudio pulseaudio-config">
243 <primary
244 sortas="e-etc-pulse-daemon.conf">/etc/pulse/daemon.conf</primary>
245 </indexterm>
246
247 <indexterm zone="pulseaudio pulseaudio-config">
248 <primary
249 sortas="e-etc-pulse-client.conf">/etc/pulse/client.conf</primary>
250 </indexterm>
251
252 <indexterm zone="pulseaudio pulseaudio-config">
253 <primary
254 sortas="e-etc-pulse-default.pa">/etc/pulse/default.pa</primary>
255 </indexterm>
256 </sect3>
257
258 <sect3><title>Configuration Information</title>
259<!--
260 <para>
261 The default configuration files allow setting up a working installation.
262 However, a reference to Console-Kit needs to be removed.
263 Issue the following command as the
264 <systemitem class="username">root</systemitem> user:
265 </para>
266
267<screen role="root"><userinput>sed -i '/load-module module-console-kit/s/^/#/' /etc/pulse/default.pa</userinput></screen>
268
269 In 13.0 this is protected via .ifexists module-console-kit.so
270-->
271 <para>
272 You may have to configure the audio system. You can start
273 <application>pulseaudio</application> in command line mode using
274 <command>pulseaudio -C</command> and then list various
275 information and change settings. See
276 <command>man pulse-cli-syntax</command>.
277 </para>
278
279 <para>
280 If <application>pulseaudio</application> was working but you no-longer
281 have sound, after checking for hardware issues (speakers or headphones
282 not connected, external amplifier not connected) you may need to fix it.
283 </para>
284
285 <para>
286 One suggestion is to close the application, such as
287 <application>firefox</application> where sound has stopped working, then
288 run: <command>pactl list short sinks</command> followed by:
289 <command>pacmd set-default-sink &lt;sink #&gt;</command> and then
290 restart the application.
291 </para>
292
293 <para>
294 If that does not work, a more drastic approach often works. After closing
295 the application, close pulseaudio, either using <command>pulseaudio
296 --kill</command> or, if that fails, <command>killall -KILL
297 pulseaudio</command> and then <command>rm -rf
298 ~/.config/pulse/*</command> (and perhaps also
299 <command>rm -rf ~/.pulse/*</command> if you have used a very old version
300 of pulse on this machine, then run <command>pulseaudio
301 --verbose</command> to restart it. If the daemon starts, restart the
302 application. See <command>man pulseaudio</command> for more options.
303 </para>
304
305 </sect3>
306 </sect2>
307
308 <sect2 role="content">
309 <title>Contents</title>
310
311 <segmentedlist>
312 <segtitle>Installed Programs</segtitle>
313 <segtitle>Installed Libraries</segtitle>
314 <segtitle>Installed Directories</segtitle>
315
316 <seglistitem>
317 <seg>
318 esdcompat, pacat, pacmd, pactl, padsp, pamon (symlink to pacat),
319 paplay (symlink to pacat), parec (symlink to pacat),
320 parecord (symlink to pacat), qpaeq, pasuspender,
321 pax11publish, pulseaudio, and
322 <!-- it looks like the equalizer needs FFTW: qpaeq, -->
323 start-pulseaudio-x11
324 </seg>
325 <seg>
326 libpulse.so
327 libpulse-mainloop-glib.so,
328 libpulse-simple.so,
329 libpulsecommon-&pulseaudio-major-version;.so,
330 libpulsecore-&pulseaudio-major-version;.so, and
331 libpulsedsp.so
332
333 </seg>
334 <seg>
335 /etc/pulse,
336 /usr/include/pulse,
337 /usr/lib/cmake/PulseAudio,
338 /usr/lib/{pulseaudio,pulse-&pulseaudio-major-version;},
339 /usr/libexec/pulse, and
340 /usr/share/pulseaudio
341 </seg>
342 </seglistitem>
343 </segmentedlist>
344
345 <variablelist>
346 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
347 <?dbfo list-presentation="list"?>
348 <?dbhtml list-presentation="table"?>
349
350 <varlistentry id="esdcompat">
351 <term><command>esdcompat</command></term>
352 <listitem>
353 <para>
354 is the <application>PulseAudio</application> ESD wrapper script.
355 </para>
356 <indexterm zone="pulseaudio esdcompat">
357 <primary sortas="b-esdcompat">esdcompat</primary>
358 </indexterm>
359 </listitem>
360 </varlistentry>
361
362 <varlistentry id="pacat">
363 <term><command>pacat</command></term>
364 <listitem>
365 <para>
366 plays back or records raw or encoded audio streams on a
367 <application>PulseAudio</application> sound server.
368 </para>
369 <indexterm zone="pulseaudio pacat">
370 <primary sortas="b-pacat">pacat</primary>
371 </indexterm>
372 </listitem>
373 </varlistentry>
374
375 <varlistentry id="pacmd">
376 <term><command>pacmd</command></term>
377 <listitem>
378 <para>
379 is a tool used to reconfigure a <application>PulseAudio</application>
380 sound server during runtime.
381 </para>
382 <indexterm zone="pulseaudio pacmd">
383 <primary sortas="b-pacmd">pacmd</primary>
384 </indexterm>
385 </listitem>
386 </varlistentry>
387
388 <varlistentry id="pactl">
389 <term><command>pactl</command></term>
390 <listitem>
391 <para>
392 is used to control a running <application>PulseAudio</application>
393 sound server.
394 </para>
395 <indexterm zone="pulseaudio pactl">
396 <primary sortas="b-pactl">pactl</primary>
397 </indexterm>
398 </listitem>
399 </varlistentry>
400
401 <varlistentry id="padsp">
402 <term><command>padsp</command></term>
403 <listitem>
404 <para>
405 is the <application>PulseAudio</application> OSS Wrapper.
406 </para>
407 <indexterm zone="pulseaudio padsp">
408 <primary sortas="b-padsp">padsp</primary>
409 </indexterm>
410 </listitem>
411 </varlistentry>
412
413 <varlistentry id="pamon">
414 <term><command>pamon</command></term>
415 <listitem>
416 <para>
417 is a symbolic link to <command>pacat</command>.
418 </para>
419 <indexterm zone="pulseaudio pamon">
420 <primary sortas="b-pamon">pamon</primary>
421 </indexterm>
422 </listitem>
423 </varlistentry>
424
425 <varlistentry id="paplay">
426 <term><command>paplay</command></term>
427 <listitem>
428 <para>
429 is used to play audio files on a
430 <application>PulseAudio</application> sound server.
431 </para>
432 <indexterm zone="pulseaudio paplay">
433 <primary sortas="b-paplay">paplay</primary>
434 </indexterm>
435 </listitem>
436 </varlistentry>
437
438 <varlistentry id="parec">
439 <term><command>parec</command></term>
440 <listitem>
441 <para>
442 is a symbolic link to <command>pacat</command>.
443 </para>
444 <indexterm zone="pulseaudio parec">
445 <primary sortas="b-parec">parec</primary>
446 </indexterm>
447 </listitem>
448 </varlistentry>
449
450 <varlistentry id="parecord">
451 <term><command>parecord</command></term>
452 <listitem>
453 <para>
454 is a symbolic link to <command>pacat</command>.
455 </para>
456 <indexterm zone="pulseaudio parecord">
457 <primary sortas="b-parecord">parecord</primary>
458 </indexterm>
459 </listitem>
460 </varlistentry>
461
462 <varlistentry id="pasuspender">
463 <term><command>pasuspender</command></term>
464 <listitem>
465 <para>
466 is a tool that can be used to tell a local
467 <application>PulseAudio</application> sound server to temporarily
468 suspend access to the audio devices, to allow other applications
469 to access them directly.
470 </para>
471 <indexterm zone="pulseaudio pasuspender">
472 <primary sortas="b-pasuspender">pasuspender</primary>
473 </indexterm>
474 </listitem>
475 </varlistentry>
476
477 <varlistentry id="pax11publish">
478 <term><command>pax11publish</command></term>
479 <listitem>
480 <para>
481 is the <application>PulseAudio</application>
482 X11 Credential Utility.
483 </para>
484 <indexterm zone="pulseaudio pax11publish">
485 <primary sortas="b-pax11publish">pax11publish</primary>
486 </indexterm>
487 </listitem>
488 </varlistentry>
489
490 <varlistentry id="pulseaudio-prog">
491 <term><command>pulseaudio</command></term>
492 <listitem>
493 <para>
494 is a networked low-latency sound server for Linux.
495 </para>
496 <indexterm zone="pulseaudio pulseaudio-prog">
497 <primary sortas="b-pulseaudio">pulseaudio</primary>
498 </indexterm>
499 </listitem>
500 </varlistentry>
501
502<!-- only installed if FFTW is present -->
503 <varlistentry id="qpaeq">
504 <term><command>qpaeq</command></term>
505 <listitem>
506 <para>
507 is an equalizer interface for
508 <application>PulseAudio</application> equalizer sinks
509 (Requires <xref linkend="fftw"/> at build time).
510 </para>
511 <indexterm zone="pulseaudio qpaeq">
512 <primary sortas="b-qpaeq">qpaeq</primary>
513 </indexterm>
514 </listitem>
515 </varlistentry>
516
517<!-- Not found in PA 7.0
518 <varlistentry id="start-pulseaudio-kde">
519 <term><command>start-pulseaudio-kde</command></term>
520 <listitem>
521 <para>
522 Starts <application>PulseAudio</application> and loads
523 module-device-manager to use KDE routing policies.
524 </para>
525 <indexterm zone="pulseaudio start-pulseaudio-kde">
526 <primary sortas="b-start-pulseaudio-kde">start-pulseaudio-kde</primary>
527 </indexterm>
528 </listitem>
529 </varlistentry>
530-->
531 <varlistentry id="start-pulseaudio-x11">
532 <term><command>start-pulseaudio-x11</command></term>
533 <listitem>
534 <para>
535 starts <application>PulseAudio</application> and registers it to
536 the X11 session manager.
537 </para>
538 <indexterm zone="pulseaudio start-pulseaudio-x11">
539 <primary sortas="b-start-pulseaudio-x11">start-pulseaudio-x11</primary>
540 </indexterm>
541 </listitem>
542 </varlistentry>
543
544 </variablelist>
545
546 </sect2>
547
548</sect1>
Note: See TracBrowser for help on using the repository browser.