source: multimedia/libdriv/pulseaudio.xml@ 8ff1930

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 12.2 9.0 9.1 gimp3 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/for-12.3 xry111/intltool xry111/llvm18 xry111/soup3 xry111/spidermonkey128 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 8ff1930 was dc2615fa, checked in by Douglas R. Reno <renodr@…>, 5 years ago

Adapt PulseAudio to ALSA API changes.

With ALSA 1.1.9, it became fatal to include headers from /usr/include rather than /usr/include/alsa, and the headers in /usr/include added a warning regarding this. Pulseaudio also doesn't use pkg-config for a large majority of it's headers (reported upstream), so a modification had to be done to account for that as well.

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

  • Property mode set to 100644
File size: 18.5 KB
RevLine 
[cff37d6]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
[f6aa5d4]7 <!ENTITY pulseaudio-download-http
[8dfc5c3]8 "https://www.freedesktop.org/software/pulseaudio/releases/pulseaudio-&pulseaudio-version;.tar.xz">
[cff37d6]9 <!ENTITY pulseaudio-download-ftp " ">
[2f461be]10 <!ENTITY pulseaudio-md5sum "c42f1f1465e8df9859d023dc184734bf">
[96f2797]11 <!ENTITY pulseaudio-size "1.6 MB">
[2f461be]12 <!ENTITY pulseaudio-buildsize "112 MB (add 2 MB for tests)">
13 <!ENTITY pulseaudio-time "1.2 SBU (add 0.7 SBU for tests)">
[cff37d6]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
[c479d83d]33 <para>
[a161de9]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
[0956cf1]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.
[c479d83d]40 </para>
[cff37d6]41
[38489aa0]42 &lfs84_checked;
[cff37d6]43
44 <bridgehead renderas="sect3">Package Information</bridgehead>
45 <itemizedlist spacing="compact">
46 <listitem>
[c479d83d]47 <para>
48 Download (HTTP): <ulink url="&pulseaudio-download-http;"/>
49 </para>
[cff37d6]50 </listitem>
51 <listitem>
[c479d83d]52 <para>
53 Download (FTP): <ulink url="&pulseaudio-download-ftp;"/>
54 </para>
[cff37d6]55 </listitem>
56 <listitem>
[c479d83d]57 <para>
58 Download MD5 sum: &pulseaudio-md5sum;
59 </para>
[cff37d6]60 </listitem>
61 <listitem>
[c479d83d]62 <para>
63 Download size: &pulseaudio-size;
64 </para>
[cff37d6]65 </listitem>
66 <listitem>
[c479d83d]67 <para>
68 Estimated disk space required: &pulseaudio-buildsize;
69 </para>
[cff37d6]70 </listitem>
71 <listitem>
[c479d83d]72 <para>
73 Estimated build time: &pulseaudio-time;
74 </para>
[cff37d6]75 </listitem>
76 </itemizedlist>
77
[2f461be]78<!--<bridgehead renderas="sect3">Additional Downloads</bridgehead>
[a3f2e9cc]79 <itemizedlist spacing="compact">
80 <listitem>
81 <para>
82 Required patch if using glibc-2.27:
83 <ulink url="&patch-root;/pulseaudio-&pulseaudio-version;-glibc_2.27_fix-1.patch"/>
84 </para>
85 </listitem>
[2f461be]86 </itemizedlist>-->
[a3f2e9cc]87
[cff37d6]88 <bridgehead renderas="sect3">PulseAudio Dependencies</bridgehead>
89
90 <bridgehead renderas="sect4">Required</bridgehead>
[c479d83d]91 <para role="required">
[adf6dd9a]92 <xref linkend="libsndfile"/>
[c479d83d]93 </para>
[cff37d6]94
95 <bridgehead renderas="sect4">Recommended</bridgehead>
[c479d83d]96 <para role="recommended">
97 <xref linkend="alsa-lib"/>,
[54666831]98 <xref linkend="dbus"/>,
[88136e4d]99 <xref linkend="glib2"/>,
[56605b9]100 <xref linkend="libcap-pam"/>,
[d835b55]101 <xref linkend="speex"/> and
[88136e4d]102 <xref linkend="xorg7-lib"/>
[250cf69]103 </para>
104
[cff37d6]105 <bridgehead renderas="sect4">Optional</bridgehead>
[ff43ebb]106 <para role="optional">
[c479d83d]107 <xref linkend="avahi"/>,
[576b3dd]108 <xref linkend="bluez"/>,
[f5fc7d0]109 <phrase revision="sysv">
110 <xref role="runtime" linkend="consolekit"/> (runtime),</phrase>
[0e6052db]111 <xref linkend="fftw"/>,
[88136e4d]112 <xref linkend="GConf"/>,
113 <xref linkend="gtk3"/>,
[758637c]114 <xref linkend="libsamplerate"/>,
[98e2adf]115 <xref linkend="sbc"/> (Bluetooth support),
116 <xref linkend="valgrind"/>,
117 <ulink url="http://www.jackaudio.org/">JACK</ulink>,
[ded78c6]118 <ulink url="http://0pointer.de/lennart/projects/libasyncns/">libasyncns</ulink>,
[c479d83d]119 <ulink url="http://www.lirc.org/">LIRC</ulink>,
[d42f02c6]120 <ulink url="http://gstreamer.freedesktop.org/src/orc/">ORC</ulink>,
[2f461be]121 <ulink url="https://sourceforge.net/projects/soxr/">soxr</ulink>,
[d835b55]122 <ulink url="http://tdb.samba.org/">TDB</ulink>,
123 <ulink url="http://freedesktop.org/software/pulseaudio/webrtc-audio-processing/">
124 WebRTC AudioProcessing</ulink> and
[d42f02c6]125 <ulink url="http://www.xenproject.org/">XEN</ulink>
[c479d83d]126 </para>
[88136e4d]127
[cff37d6]128 <para condition="html" role="usernotes">User Notes:
[6f57c53]129 <ulink url="&blfs-wiki;/pulseaudio"/>
130 </para>
[cff37d6]131 </sect2>
132
133 <sect2 role="installation">
134 <title>Installation of PulseAudio</title>
135
[c479d83d]136 <para>
137 Install <application>PulseAudio</application> by running the following
138 commands:
139 </para>
[cff37d6]140
[dc2615fa]141 <para>
142 First, adapt Pulseaudio to upstream ALSA API changes:
143 </para>
144 <!-- This is due to it becoming FATAL to include ALSA headers from
145 /usr/include instead of /usr/include/alsa. Only one of these
146 files uses pkg-config to get it's headers, and as a result,
147 the hardcoded paths need to be updated. In this case, I developed
148 three seds and a call to ./bootstrap.sh to fix this. Other packages
149 may be affected by this upstream ALSA change as well. -->
150
151<screen><userinput>sed -i "s:asoundlib.h:alsa/asoundlib.h:" src/modules/alsa/*.{c,h} &amp;&amp;
152sed -i "s:use-case.h:alsa/use-case.h:" configure.ac &amp;&amp;
153sed -i "s:use-case.h:alsa/use-case.h:" src/modules/alsa/alsa-ucm.h</userinput></screen>
154
155<screen><userinput>NOCONFIGURE=1 ./bootstrap.sh &amp;&amp;
156./configure --prefix=/usr \
[758637c]157 --sysconfdir=/etc \
158 --localstatedir=/var \
159 --disable-bluez4 \
[576b3dd]160 --disable-bluez5 \
[5622b1b7]161 --disable-rpath &amp;&amp;
[cff37d6]162make</userinput></screen>
163
[c479d83d]164 <para>
165 To test the results, issue: <command>make check</command>.
[2f461be]166 The volume-test may fail for unknown reasons.
167 <!-- apparently, the max deviation is higher than expected, i.e. assertion
168 failed, result of 280 > 253 : but it seems to work -->
[c479d83d]169 </para>
[cff37d6]170
[c479d83d]171 <para>
172 Now, as the <systemitem class="username">root</systemitem> user:
173 </para>
[cff37d6]174
175<screen role="root"><userinput>make install</userinput></screen>
176
[88136e4d]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
[e7c2eeb]182 users and groups:
[88136e4d]183 </para>
184
[96f2797]185<screen role="root"><userinput>rm -fv /etc/dbus-1/system.d/pulseaudio-system.conf</userinput></screen>
[88136e4d]186
[cff37d6]187 </sect2>
188
189 <sect2 role="commands">
190 <title>Command Explanations</title>
[369d8906]191 <!--
[a3f2e9cc]192 <para>
193 <command>AUTOPOINT='intltoolize ...</command>:
[369d8906]194 <command>autoreconf</command> needs to be run after applying the
[a3f2e9cc]195 patch. Running <command>intltoolize</command> instead of
196 <command>autopoint</command> prevents an error when running
197 <command>configure</command> afterwards.
198 </para>
[369d8906]199 -->
[a3f2e9cc]200
[88136e4d]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
[576b3dd]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
[88136e4d]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
[250cf69]221 </sect2>
[cff37d6]222
[e5d2270e]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>
[03de2e3]261 The default configuration files allow setting up a working installation.
262 However, a reference to Console-Kit needs to be removed if it is
[e5d2270e]263 not installed. For example, issue the following command as the
264 <systemitem class="username">root</systemitem> user:
265 </para>
266
[03de2e3]267<screen role="root"><userinput>sed -i '/load-module module-console-kit/s/^/#/' /etc/pulse/default.pa</userinput></screen>
[e5d2270e]268
269 <para>
[03de2e3]270 You may also have to configure the audio system. You can start
[e5d2270e]271 <application>pulseaudio</application> in command line mode using
[03de2e3]272 <command>pulseaudio -C</command> and then list various
273 information and change settings. See
[e5d2270e]274 <command>man pulse-cli-syntax</command>.
275 </para>
[a8f5df3]276
277 <para>
278 If <application>pulseaudio</application> was working but you no-longer
279 have sound, after checking for hardware issues (speakers or headphones
280 not connected, external amplifier not connected) you may need to fix it.
281 </para>
282
283 <para>
284 One suggestion is to close the application, such as
285 <application>firefox</application> where sound has stopped working, then
286 run: <command>pactl list short sinks</command> followed by:
287 <command>pacmd set-default-sink &lt;sink #&gt;</command> and then
288 restart the application.
289 </para>
290
291 <para>
292 If that does not work, a more drastic approach often works. After closing
293 the application, close pulseaudio, either using <command>pulseaudio
294 --kill</command> or, if that fails, <command>killall -KILL
295 pulseaudio</command> and then <command>rm -rf
296 ~/.config/pulse/*</command> (and perhaps also
297 <command>rm -rf ~/.pulse/*</command> if you have used a very old version
298 of pulse on this machine, then run <command>pulseaudio
299 --verbose</command> to restart it. If the daemon starts, restart the
300 application. See <command>man pulseaudio</command> for more options.
301 </para>
302
[e5d2270e]303 </sect3>
304 </sect2>
305
[cff37d6]306 <sect2 role="content">
307 <title>Contents</title>
308
309 <segmentedlist>
310 <segtitle>Installed Programs</segtitle>
311 <segtitle>Installed Libraries</segtitle>
312 <segtitle>Installed Directories</segtitle>
313
314 <seglistitem>
[c479d83d]315 <seg>
[03de2e3]316 esdcompat, pacat, pacmd, pactl, padsp, pamon (symlink to pacat),
[c870dc3]317 paplay (symlink to pacat), parec (symlink to pacat),
[03de2e3]318 parecord (symlink to pacat), pasuspender,
[5622b1b7]319 pax11publish, pulseaudio, and
[e5d2270e]320 <!-- it looks like the equalizer needs FFTW: qpaeq, -->
[5622b1b7]321 start-pulseaudio-x11
[c479d83d]322 </seg>
323 <seg>
[d42f02c6]324 libpulse.so
[96f2797]325 libpulse-mainloop-glib.so,
326 libpulse-simple.so,
327 libpulsecommon-&pulseaudio-major-version;.so,
328 libpulsecore-&pulseaudio-major-version;.so, and
329 libpulsedsp.so
330
[c479d83d]331 </seg>
332 <seg>
[4b141a4]333 /etc/pulse,
334 /usr/include/pulse,
[5622b1b7]335 /usr/lib/cmake/PulseAudio,
[d42f02c6]336 /usr/lib/{pulseaudio,pulse-&pulseaudio-major-version;},
[c870dc3]337 /usr/libexec/pulse, and
[4b141a4]338 /usr/share/pulseaudio
[c479d83d]339 </seg>
[cff37d6]340 </seglistitem>
341 </segmentedlist>
342
343 <variablelist>
344 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
345 <?dbfo list-presentation="list"?>
346 <?dbhtml list-presentation="table"?>
347
348 <varlistentry id="esdcompat">
349 <term><command>esdcompat</command></term>
350 <listitem>
[c479d83d]351 <para>
352 is the <application>PulseAudio</application> ESD wrapper script.
353 </para>
[cff37d6]354 <indexterm zone="pulseaudio esdcompat">
355 <primary sortas="b-esdcompat">esdcompat</primary>
356 </indexterm>
357 </listitem>
358 </varlistentry>
359
360 <varlistentry id="pacat">
361 <term><command>pacat</command></term>
362 <listitem>
[c479d83d]363 <para>
[0956cf1]364 plays back or records raw or encoded audio streams on a
[c479d83d]365 <application>PulseAudio</application> sound server.
366 </para>
[cff37d6]367 <indexterm zone="pulseaudio pacat">
368 <primary sortas="b-pacat">pacat</primary>
369 </indexterm>
370 </listitem>
371 </varlistentry>
372
373 <varlistentry id="pacmd">
374 <term><command>pacmd</command></term>
375 <listitem>
[c479d83d]376 <para>
377 is a tool used to reconfigure a <application>PulseAudio</application>
378 sound server during runtime.
379 </para>
[cff37d6]380 <indexterm zone="pulseaudio pacmd">
381 <primary sortas="b-pacmd">pacmd</primary>
382 </indexterm>
383 </listitem>
384 </varlistentry>
385
386 <varlistentry id="pactl">
387 <term><command>pactl</command></term>
388 <listitem>
[c479d83d]389 <para>
[a161de9]390 is used to control a running <application>PulseAudio</application>
[c479d83d]391 sound server.
392 </para>
[cff37d6]393 <indexterm zone="pulseaudio pactl">
394 <primary sortas="b-pactl">pactl</primary>
395 </indexterm>
396 </listitem>
397 </varlistentry>
398
399 <varlistentry id="padsp">
400 <term><command>padsp</command></term>
401 <listitem>
[c479d83d]402 <para>
403 is the <application>PulseAudio</application> OSS Wrapper.
404 </para>
[cff37d6]405 <indexterm zone="pulseaudio padsp">
406 <primary sortas="b-padsp">padsp</primary>
407 </indexterm>
408 </listitem>
409 </varlistentry>
410
[250cf69]411 <varlistentry id="pamon">
[cff37d6]412 <term><command>pamon</command></term>
413 <listitem>
[c479d83d]414 <para>
[a161de9]415 is a symbolic link to <command>pacat</command>.
[c479d83d]416 </para>
[cff37d6]417 <indexterm zone="pulseaudio pamon">
418 <primary sortas="b-pamon">pamon</primary>
419 </indexterm>
420 </listitem>
[250cf69]421 </varlistentry>
[cff37d6]422
423 <varlistentry id="paplay">
424 <term><command>paplay</command></term>
425 <listitem>
[c479d83d]426 <para>
[a161de9]427 is used to play audio files on a
[c479d83d]428 <application>PulseAudio</application> sound server.
429 </para>
[cff37d6]430 <indexterm zone="pulseaudio paplay">
431 <primary sortas="b-paplay">paplay</primary>
432 </indexterm>
433 </listitem>
434 </varlistentry>
435
[250cf69]436 <varlistentry id="parec">
[cff37d6]437 <term><command>parec</command></term>
438 <listitem>
[c479d83d]439 <para>
[a161de9]440 is a symbolic link to <command>pacat</command>.
[c479d83d]441 </para>
[cff37d6]442 <indexterm zone="pulseaudio parec">
443 <primary sortas="b-parec">parec</primary>
444 </indexterm>
445 </listitem>
446 </varlistentry>
447
448 <varlistentry id="parecord">
449 <term><command>parecord</command></term>
450 <listitem>
[c479d83d]451 <para>
[a161de9]452 is a symbolic link to <command>pacat</command>.
[c479d83d]453 </para>
[cff37d6]454 <indexterm zone="pulseaudio parecord">
455 <primary sortas="b-parecord">parecord</primary>
456 </indexterm>
457 </listitem>
[250cf69]458 </varlistentry>
[cff37d6]459
460 <varlistentry id="pasuspender">
461 <term><command>pasuspender</command></term>
462 <listitem>
[c479d83d]463 <para>
464 is a tool that can be used to tell a local
465 <application>PulseAudio</application> sound server to temporarily
466 suspend access to the audio devices, to allow other applications
[a161de9]467 to access them directly.
[c479d83d]468 </para>
[cff37d6]469 <indexterm zone="pulseaudio pasuspender">
470 <primary sortas="b-pasuspender">pasuspender</primary>
471 </indexterm>
472 </listitem>
473 </varlistentry>
474
[250cf69]475 <varlistentry id="pax11publish">
[cff37d6]476 <term><command>pax11publish</command></term>
477 <listitem>
[c479d83d]478 <para>
479 is the <application>PulseAudio</application>
480 X11 Credential Utility.
481 </para>
[cff37d6]482 <indexterm zone="pulseaudio pax11publish">
483 <primary sortas="b-pax11publish">pax11publish</primary>
484 </indexterm>
485 </listitem>
[250cf69]486 </varlistentry>
[cff37d6]487
488 <varlistentry id="pulseaudio-prog">
[250cf69]489 <term><command>pulseaudio</command></term>
[cff37d6]490 <listitem>
[c479d83d]491 <para>
492 is a networked low-latency sound server for Linux.
493 </para>
[cff37d6]494 <indexterm zone="pulseaudio pulseaudio-prog">
[c479d83d]495 <primary sortas="b-pulseaudio">pulseaudio</primary>
[cff37d6]496 </indexterm>
497 </listitem>
498 </varlistentry>
499
[e5d2270e]500<!-- only installed if FFTW is present
[250cf69]501 <varlistentry id="qpaeq">
502 <term><command>qpaeq</command></term>
503 <listitem>
[c479d83d]504 <para>
505 is an equalizer interface for
506 <application>PulseAudio</application> equalizer sinks.
507 </para>
[250cf69]508 <indexterm zone="pulseaudio qpaeq">
509 <primary sortas="b-qpaeq">qpaeq</primary>
510 </indexterm>
511 </listitem>
512 </varlistentry>
[e5d2270e]513-->
[03de2e3]514<!-- Not found in PA 7.0
[758637c]515 <varlistentry id="start-pulseaudio-kde">
516 <term><command>start-pulseaudio-kde</command></term>
517 <listitem>
518 <para>
519 Starts <application>PulseAudio</application> and loads
520 module-device-manager to use KDE routing policies.
521 </para>
522 <indexterm zone="pulseaudio start-pulseaudio-kde">
523 <primary sortas="b-start-pulseaudio-kde">start-pulseaudio-kde</primary>
524 </indexterm>
525 </listitem>
526 </varlistentry>
[03de2e3]527-->
[cff37d6]528 <varlistentry id="start-pulseaudio-x11">
529 <term><command>start-pulseaudio-x11</command></term>
530 <listitem>
[c479d83d]531 <para>
[0956cf1]532 starts <application>PulseAudio</application> and registers it to
[c479d83d]533 the X11 session manager.
534 </para>
[cff37d6]535 <indexterm zone="pulseaudio start-pulseaudio-x11">
536 <primary sortas="b-start-pulseaudio-x11">start-pulseaudio-x11</primary>
537 </indexterm>
538 </listitem>
[250cf69]539 </varlistentry>
[cff37d6]540
541 </variablelist>
542
543 </sect2>
544
545</sect1>
Note: See TracBrowser for help on using the repository browser.