私はUbuntu 14.04.5を使用しており、ソースからPulseAudioを再構築する際に問題に直面しました。ここのPulseAudioは4.0-0ubuntu11.1ですが、それを再構築し、最新のパッチを含める必要があります https://patchwork.freedesktop.org/patch/65100/echo-cancel
モジュールを改善します。
Ubuntuコミュニティドキュメント https://help.ubuntu.com/community/UpdatingADeb の指示に従ってPAを再構築しようとしました。つまりapt-get build-dep ...
、apt-get source ...
、patch ...
、debchange -i
、dpkg-source --commit
、debuild -us -uc -i -I
。ビルドは成功し、エラーは1つだけでした-「pulseaudio:postrm-does-not-call-updaterc.d-for-init.d-script etc/init.d/pulseaudio」ですが、無視する必要があると思います。次に、debi
を使用してビルドパッケージをインストールし、PAを起動して次のエラーを取得しようとしました。
$ 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!
起動に失敗する瞬間は、echo-cancel
モジュールが起動する瞬間です。さらに、大幅な変更をせずにPAを再構築しても、同じエラーが発生します。公式のUbuntuリポジトリからPAを使用すると、エラーなしで起動し、echo-cancel
モジュールが正常に起動します。
これがecho-cancel
を有効にする方法です。これらの行は/etc/Pulse/default.pa
の最後に追加しました:
load-module module-echo-cancel source_name=noechosource sink_name=noechosink
set-default-source noechosource
set-default-sink noechosink
PAを再構築することでこの問題をどのように解決できますか?パッケージを再構築する方法は、ある点で間違っているかもしれません。私が言ったように、問題は修正されたPAを再構築することでさえありませんが、変更せずに単純に再構築するので、問題はビルドプロセス自体にあるようです。
少なくとも主に、それを考え出した:
これは、PulseAudio自体とは関係のない、特定のdeb構築の問題です。
RT_CONSISTENT
アサーションエラーは、module-echo-cancel.so
の依存関係の欠落が原因で発生しました。ldd
はlibwebrtc-util.so => not found
を示し、debuild
ログによれば、このファイルはビルドされました、しかしdebにパッケージされていませんシステムtrusty
PAパッケージは、WebRTC AECのサポートなしで構築されます(そして、それがlibwebrtc-util.so
を必要とせず、インストールしない理由です)。libwebrtc-audio-processing-dev
パッケージをインストールしたのです。これらのWebRTCライブラリはPA構成スクリプトによってキャッチされ、PAはWebRTCサポートを使用してビルドされましたが、ビルド後のステップでは、必要なファイルがすべてdebにパッケージ化されませんでした。libwebrtc-util.so
を目的の場所に手動で移動しました。後で、このケースを正しく処理するスクリプトの作成を修正し、戻ってこの回答を更新する方法を見つけます。