試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

Gentoo Linux上のPulseAudioのインストールに関する覚え書き(2008/9/4現在)

ここでは、オーディオデーモンの1つであるPulseAudioのGentoo Linuxへの導入に関する覚え書きの中の、システムに関する部分(主にパッケージのインストール)についてを扱う。

安定しているバージョンは?

0.9.9/0.9.10/0.9.11の3つのバージョンを試したところ、大きな不具合がなかったのはバージョン0.9.10だけだったので、ここでは主にバージョン0.9.10を扱う。

PulseAudioのライブラリを使用したパッケージの注意点

パッケージ「pulseaudio」にはPulseAudioを使用するためのライブラリが含まれるが、これを使用する外部パッケージをビルドしたときのPulseAudioのバージョンと実際に使用するPulseAudioのバージョンが一致していないと、挙動が怪しい。
例えば、バージョン0.9.9のPulseAudioがインストールされている状態で外部プレーヤをビルドした後、PulseAudioのバージョンを0.9.10系に上げたときに何か問題が起こった場合は、プレーヤ側の再ビルドも行ったほうがよい。

(2008/9/13)PulseAudioの新しいバージョン0.9.12を試した*1ところ、他のパッケージの再ビルドは行っていないが、動作は良好。

PulseAudioのUSEフラグについて

以下のUSEフラグは付けておくことを推奨。

  • alsa: ALSAライブラリを経由してドライバへ出力する・dmix使用可
  • jack: JACK Audio Connection KitのクライアントとしてPulseAudioを動かして、JACK対応アプリケーションと組み合わせることを可能にする(JACKを全く使用しないのであれば不要)
  • avahi(「USE=dbus」指定が必要): PulseAudio Device Chooser(padevchooser)のために必要

この他、手元の環境では、GConfサポートの「gnome」USEフラグは外している。

avahiの衝突パッケージ

avahiをインストールしようとしたところ

[blocks B     ] net-dns/avahi (is blocking net-misc/mDNSResponder-107.6-r5)
[blocks B     ] net-misc/mDNSResponder (is blocking net-dns/avahi-0.6.22-r1)

となってしまって入れられなかった。

$ equery depends mDNSResponder   
[ Searching for packages depending on mDNSResponder... ]
kde-base/kdelibs-3.5.9-r4 (!avahi & !bindist? net-misc/mDNSResponder)
kde-base/kdelibs-4.1.0-r1 (zeroconf & !bindist? net-misc/mDNSResponder)
net-misc/ntp-4.2.4_p4 (zeroconf? net-misc/mDNSResponder)
net-print/cups-1.3.8-r1 (zeroconf & !avahi? net-misc/mDNSResponder)

結局、衝突パッケージの「mDNSResponder」をKDE3のkdelibsのみが依存しているという状態(しかもavahiで置換可能)だったため、これを外してavahiに置き換えることでインストールはできた。
avahiのインストール後はOS起動時に自動起動するようにしつつ開始しておく。

$ sudo rc-update add avahi-daemon default
$ sudo /etc/init.d/avahi-daemon start

GUIツール群のパッケージ名

色々なGUIツールが用意されてはいるものの、パッケージ名が多少分かりにくかったので、ここにまとめておく。

  • pavucontrol(PulseAudio Volume Control): 音量調整
  • pavumeter(PulseAudio Volume Meter): 音量の確認(動作は重め)
  • paman(PulseAudio Manager): 各種情報の取得と操作
  • padevchooser(PulseAudio Device Chooser): ネットワーク上のデバイスを選択、各種GUIツールの簡単起動など・システムトレイに常駐
  • paprefs(PulseAudio Preferences): 幾つかの設定を変更できる

動作に必要なデーモン

USEフラグのところで触れたが、PulseAudio Device Chooserが動作するためには「avahi-daemon」が動作している必要がある。
また、バージョン0.9.11系では「consolekit」も必要になった。
(2008/9/13)「consolekit」に関しては、設定ファイルdefault.paで「load-module module-console-kit」を記述している場合のみ必要。

システムのデーモンとして起動するか一般ユーザで起動するか

PulseAudioにはシステムのデーモンとして起動する方法と一般ユーザ権限で起動する方法があるのだが、一般ユーザで使用したほうが色々と融通が利くのでおすすめ。特に、JACK Audio Connection KitでALSAのhwプラグインを直接使用する場合には、jackdの起動後、JACKを使用するように設定した上で一般ユーザ権限でPulseAudioを起動することになる。

グループの設定

  • realtime
  • pulse
  • pulse-access(システムのデーモンとして使用する場合)

の全てのグループに自分のユーザを追加する。

$ for g in realtime pulse-access pulse; do sudo gpasswd -a $(whoami) ${g}; done
ユーザ [ユーザ名] をグループ realtime に追加
ユーザ [ユーザ名] をグループ pulse-access に追加
ユーザ [ユーザ名] をグループ pulse に追加

システムのデーモンとして使用する場合、これに加えて、ユーザ「pulse」を「realtime」グループに追加する。

$ sudo gpasswd -a pulse realtime
ユーザ pulse をグループ realtime に追加

リアルタイム優先度やnice値

JACK Audio Connection Kitの音飛びについてと、その対処」と同様に、「realtime」グループ*2のリアルタイム優先度やnice値を/etc/security/limits.confに設定する。
参考URL:

関連記事:

使用したバージョン:

  • PulseAudio 0.9.9, 0.9.10-r51, 0.9.11-r2
  • pavucontrol 0.9.5
  • pavumeter 0.9.3
  • paman 0.9.4
  • padevchooser 0.9.3
  • paprefs 0.9.6

*1:autoconfのバージョン2.62以上が必要

*2:もちろん、自分のユーザ名で指定(その場合「@」は付けない)してもよい。