PulseAudio-12.2

#### Beyond Linux® From Scratch (systemd Edition) - Version 9.0

### Chapter 42. Multimedia Libraries and Drivers

- Prev

  Pipewire-0.2.6

- Next

  SBC-1.4

- Up
- Home

# PulseAudio-12.2

## Introduction to PulseAudio

PulseAudio is a sound system for POSIX OSes, meaning that it is a proxy for sound applications. It allows you to do advanced operations on your sound data as it passes between your application and your hardware. Things like transferring the audio to a different machine, changing the sample format or channel count and mixing several sounds into one are easily achieved using a sound server.

This package is known to build and work properly using an LFS-9.0 platform.

### Package Information

- Download (HTTP): https://www.freedesktop.org/software/pulseaudio/releases/pulseaudio-12.2.tar.xz

- Download MD5 sum: c42f1f1465e8df9859d023dc184734bf

- Download size: 1.6 MB

- Estimated disk space required: 112 MB (add 2 MB for tests)

- Estimated build time: 1.2 SBU (add 0.7 SBU for tests)

### PulseAudio Dependencies

#### Required

libsndfile-1.0.28

#### Recommended

alsa-lib-1.1.9, dbus-1.12.16, GLib-2.60.6, libcap-2.27 with PAM, Speex-1.2.0 and Xorg Libraries

#### Optional

Avahi-0.7, BlueZ-5.50, fftw-3.3.8, GConf-3.2.6, GTK+-3.24.10, libsamplerate-0.1.9, SBC-1.4 (Bluetooth support), Valgrind-3.15.0, JACK, libasyncns, LIRC, ORC, soxr, TDB, WebRTC AudioProcessing and XEN

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pulseaudio

## Installation of PulseAudio

Install PulseAudio by running the following commands:

First, adapt Pulseaudio to upstream ALSA API changes:

    sed -i "s:asoundlib.h:alsa/asoundlib.h:" src/modules/alsa/*.{c,h} &&
    sed -i "s:use-case.h:alsa/use-case.h:" configure.ac &&
    sed -i "s:use-case.h:alsa/use-case.h:" src/modules/alsa/alsa-ucm.h

    NOCONFIGURE=1 ./bootstrap.sh     &&
    ./configure --prefix=/usr        \
                --sysconfdir=/etc    \
                --localstatedir=/var \
                --disable-bluez4     \
                --disable-bluez5     \
                --disable-rpath      &&
    make

To test the results, issue: make check. The volume-test may fail for unknown reasons.

Now, as the `root` user:

    make install

While still as the `root` user, remove the D-Bus configuration file for the system wide daemon to avoid creating unnecessary system users and groups:

    rm -fv /etc/dbus-1/system.d/pulseaudio-system.conf

## Command Explanations

`--disable-bluez4`: This switch disables support for BlueZ version 4 in favour of BlueZ version 5 since the latter also installs compatibility library for the earlier version.

`--disable-bluez5`: This switch prevents a runtime error if dbus-1.12.16 and SBC-1.4 are both installed but BlueZ-5.50 is not installed. Remove this if you have installed all three packages.

`--disable-rpath`: This switch prevents linker from adding a hardcoded runtime path to the installed programs and libraries.

## Configuring PulseAudio

### Config Files

There are system wide configuration files: `/etc/pulse/daemon.conf`, `/etc/pulse/client.conf`, `/etc/pulse/default.pa`, and user configuration files with the same names in `~/.config/pulse`. User configuration files take precedence over system wide ones.

### Configuration Information

The default configuration files allow setting up a working installation. However, a reference to Console-Kit needs to be removed. Issue the following command as the `root` user:

    sed -i '/load-module module-console-kit/s/^/#/' /etc/pulse/default.pa

You may also have to configure the audio system. You can start pulseaudio in command line mode using pulseaudio -C and then list various information and change settings. See man pulse-cli-syntax.

If pulseaudio was working but you no-longer have sound, after checking for hardware issues (speakers or headphones not connected, external amplifier not connected) you may need to fix it.

One suggestion is to close the application, such as firefox where sound has stopped working, then run: pactl list short sinks followed by: pacmd set-default-sink <sink #> and then restart the application.

If that does not work, a more drastic approach often works. After closing the application, close pulseaudio, either using pulseaudio --kill or, if that fails, killall -KILL pulseaudio and then rm -rf ~/.config/pulse/* (and perhaps also rm -rf ~/.pulse/* if you have used a very old version of pulse on this machine, then run pulseaudio --verbose to restart it. If the daemon starts, restart the application. See man pulseaudio for more options.

## Contents

Installed Programs: esdcompat, pacat, pacmd, pactl, padsp, pamon (symlink to pacat), paplay (symlink to pacat), parec (symlink to pacat), parecord (symlink to pacat), pasuspender, pax11publish, pulseaudio, and start-pulseaudio-x11
Installed Libraries: libpulse.so libpulse-mainloop-glib.so, libpulse-simple.so, libpulsecommon-12.2.so, libpulsecore-12.2.so, and libpulsedsp.so
Installed Directories: /etc/pulse, /usr/include/pulse, /usr/lib/cmake/PulseAudio, /usr/lib/{pulseaudio,pulse-12.2}, /usr/libexec/pulse, and /usr/share/pulseaudio

### Short Descriptions

esdcompat | is the PulseAudio ESD wrapper script.
pacat | plays back or records raw or encoded audio streams on a PulseAudio sound server.
pacmd | is a tool used to reconfigure a PulseAudio sound server during runtime.
pactl | is used to control a running PulseAudio sound server.
padsp | is the PulseAudio OSS Wrapper.
pamon | is a symbolic link to pacat.
paplay | is used to play audio files on a PulseAudio sound server.
parec | is a symbolic link to pacat.
parecord | is a symbolic link to pacat.
pasuspender | is a tool that can be used to tell a local PulseAudio sound server to temporarily suspend access to the audio devices, to allow other applications to access them directly.
pax11publish | is the PulseAudio X11 Credential Utility.
pulseaudio | is a networked low-latency sound server for Linux.
start-pulseaudio-x11 | starts PulseAudio and registers it to the X11 session manager.

Last updated on 2019-08-17 15:49:15 -0700

- Prev

  Pipewire-0.2.6

- Next

  SBC-1.4

- Up
- Home