なんとな~くしあわせ?の日記

ClojureとかAWSの設定とかをメモする技術ブログ

wine-1.8 自力サポートメモ



Debian sidでwine-1.8が使えるようになったので早速更新してみた。

なんか突然音声が出なくなった

正確に言うとUSBのヘッドセットだけ認識されなくなった。winecfgを起動して出てくるウィンドウの内、「出力デバイス」、「音声出力デバイス」が選べなくなる現象。スピーカー設定という項目が増えていますが、これはwine-1.8でのアップデートなのだと思います。
f:id:panzer-jagdironscrap1:20160103142459p:plain

対処として、以下の記事を参考にした。
WineAndPulseaudio - The Official Wine Wiki

やってることはなんじゃらほいと言いますと、
Linuxは最近の更新でPulseaudioがさらに幅を利かすようになり、ALSAは低レベルなレイヤーのソフトウェアとして扱われるようになった。
・wineはPluseAudio通さずALSAを直接叩いてるからそれを変えられると色々困る
・なのでALSAのデバイスをPulseaudioで掴まないようにする
・なおかつWineにはALSAを直接叩かせる

参考としてPulseaudioのシステム構成図
f:id:panzer-jagdironscrap1:20160103143703p:plain

手順

/etc/pulse/default.pa に追記

たぶん初期状態ならどこに入れても問題ないはず
文言の意味については → Modules

load-module module-alsa-sink device=dmix
load-module module-alsa-source device=dsnoop
~/.asoundrc を追加

これも追加

pcm.!default {
    @func refer
    name { @func concat 
           strings [ "pcm."
                     { @func getenv
                       vars [ ALSA_DEFAULT_PCM ]
                       default "pulse"
                     }
           ]
         }
}

ctl.!default {
    @func refer
    name { @func concat 
           strings [ "ctl."
                     { @func getenv
                       vars [ ALSA_DEFAULT_CTL
                              ALSA_DEFAULT_PCM
                       ]
                       default "pulse"
                     }
           ]
         }
}

これで再起動して戻ってくれば音が出るようになってるはず