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

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

x86_64版Mandriva Linux 2009.0におけるWineのオーディオ出力について

この記事はMandriva Linux コントロールセンター内「ハードウェア - サウンドの設定」にある「ALSA から PulseAudio への自動ルーティング」のチェックを外しているのが前提となる。

  1. オーディオ出力にALSAを使用する
  2. PulseAudioへの出力について

オーディオ出力にALSAを使用する

Mandriva LinuxのOSインストール直後の状態では、GUI設定ツールwinecfgでオーディオの設定を開くと、出力先にALSAがないため、WineのオーディオをALSAから出力することができなかった。
しかし、メッセージを見ると、単に(x86_32版の)共有オブジェクトが読み込めていないということだったので、パッケージを確認したところ、x86_32版のalsa-libがインストールされていないということが分かった。
そこで、i586版の「libalsa2」パッケージをインストールしたところ、ALSAからの出力ができるようになった。

PulseAudioへの出力について

Wine上の音声をPulseAudioへ渡す」で実験したように、winecfgでオーディオ出力をALSAに設定した上でalsa-pluginsのPulseAudioプラグイン(/usr/lib/alsa-lib/libasound_module_pcm_pulse.so)を利用し、[ホームディレクトリ]/.asoundrcを編集することで、(x86_64な)PulseAudioへオーディオ出力を渡すことができる。
これを実現するためには、Gentooでは「x86_64版Gentoo Linuxの自前管理32bitライブラリのその後(2008/9/17現在)」で苦労してx86_32版PulseAudioとALSA向けプラグインを用意してインストールしていたが、Mandrivaでは非常に楽で、上の「libalsa2」と同じ要領で、i586版の「libalsa-plugins-pulseaudio」を追加でインストールするだけでよい。あとは「Wine上の音声をPulseAudioへ渡す」のように[ホームディレクトリ]/.asoundrcを編集する。
また、x86_64版「pulseaudio-module-jack」パッケージを入れて[ホームディレクトリ]/.pulse/default.paもしくはpulseaudioデーモン起動時に-nFオプションで指定したファイルにおいてmodule-jack-sinkとmodule-jack-sourceを使用する設定をすることで、以前Gentooで行ったときと同様JACK Audio Connection Kitとの連携*1も正常に行えた。ただし、ログインするセッションによっては先にPulseAudioが起動するため、JACKを使用する場合は[ホームディレクトリ]/.pulse/default.paではなく別のファイルにJACKを使用する設定を書いた上で

killall pulseaudio; pulseaudio --daemonize -nF ~/.pulse/jack.pa

などのようにするのがよいかもしれない。

使用したバージョン:

  • Wine 1.1.4 - 1.1.8
  • PulseAudio 0.9.10
  • alsa-plugins 1.0.18rc3

*1:JACKを使用した別の(x86_64の)アプリケーションとオーディオの流れをやりとりできる