2

I work with Ubuntu 14.04.5 and faced troubles with rebuilding PulseAudio from source. PulseAudio here is 4.0-0ubuntu11.1, but I need to rebuild it and include recent patch https://patchwork.freedesktop.org/patch/65100/ which improves echo-cancel module.

I tried to rebuild PA following instructions from Ubuntu community docs https://help.ubuntu.com/community/UpdatingADeb . I.e. apt-get build-dep ..., apt-get source ..., patch ..., debchange -i, dpkg-source --commit, debuild -us -uc -i -I. Built was successful, only one error - "pulseaudio: postrm-does-not-call-updaterc.d-for-init.d-script etc/init.d/pulseaudio", but I think it should be ignored. Then I installed built packages using debi, tried to launch PA and get following error:

$ pulseaudio -vvv
<...>
D: [pulseaudio] module-systemd-login.c: Added new session c2
I: [pulseaudio] module.c: Loaded "module-systemd-login" (index: #14; argument: "").
I: [pulseaudio] module.c: Loaded "module-position-event-sounds" (index: #15; argument: "").
I: [pulseaudio] module.c: Loaded "module-filter-heuristics" (index: #16; argument: "").
I: [pulseaudio] module.c: Loaded "module-filter-apply" (index: #17; argument: "").
Inconsistency detected by ld.so: dl-open.c: 689: _dl_open: Assertion `_dl_debug_initialize (0, args.nsid)->r_state == RT_CONSISTENT' failed!

The moment when launch fails is exact the moment when echo-cancel module should start. Furthermore, even if I rebuild PA without any significant changes - I get same error. If I use PA from officical Ubuntu repo - it starts without any error and launchs echo-cancel module successfully.

This is how I enable echo-cancel, these lines I added to the end of /etc/pulse/default.pa:

load-module module-echo-cancel source_name=noechosource sink_name=noechosink
set-default-source noechosource
set-default-sink noechosink

Could anybody suggest how can I solve this problem with rebuilding PA? Maybe the way I rebuild package is wrong in some point. As I said, the problem is not even with rebuilding modified PA, but with simple rebuilding it without any changes, so seems that the problem is with build process itself.

1

Figured it out, at least in the main:

It is a specific deb building problem, not related to PulseAudio itself:

  • The RT_CONSISTENT assertion failure was caused by the missing dependency of module-echo-cancel.so:
    ldd on this module shows libwebrtc-util.so => not found and according to debuild log this file was built, but not packaged to deb and so was not installed to the system
  • The default trusty PA package is built without support of WebRTC AEC (and that's why you don't need and don't install libwebrtc-util.so).
  • But I need exactly this kind of AEC and that's why I've installed the libwebrtc-audio-processing-dev package before rebuilding the PA. These WebRTC libs were caught by the PA configure script and the PA was built with WebRTC support, but during post-built steps not all required files were packaged to deb.
  • Now as a temporary measure I manually moved libwebrtc-util.so to its desired location. Later I'll find out how to fix building scripts to handle this case correctly and come back and update this answer.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.