2019年9月22日日曜日

Pulseaudio 出力先の固定

動機
HDMI接続のディスプレイスピーカーだと、
・ディスプレイ側の少電力モード
・PCのスリープや復帰のタイミング
などで、音の出力先が変わってしまい。手動で設定し直さないといけない。

対策
面倒なので、出力先をHDMIに固定する。
めったに使わない外付けスピーカー使用時には、システム「設定」からアナログ出力に手動変更とする。


環境
Debian GNU/Linux 10 (Buster+backports), KDEディスクトップ
サウンドカードはM/Bオンチップのみ
$ cat /proc/asound/cards
 0 [PCH            ]: HDA-Intel - HDA Intel PCH              ←M/Bのサウンドカード
                      HDA Intel PCH at 0xf7140000 irq 138

方法
概要:/etc/pulse/default.pa の最後にHDMI接続を書き込む。

書き込む内容を調べる例
1, HDMIから音が出てる間に index番号(name)とprofileを取得。

index)
$ pacmd list-cards
1 card(s) available.
    index: 0
        name: <alsa_card.pci-0000_00_1f.3> ←"alsa_card.pci-0000_00_1f.3"必要
        driver: <module-alsa-card.c>
        owner module: 6
        properties:
                alsa.card = "0"
                alsa.card_name = "HDA Intel PCH"   ← M/Bのサウンドカード
                alsa.long_card_name = "HDA Intel PCH at 0xf7140000 irq 138"
            ... 略 ...

profile)
$ pacmd list-cards | grep active
active profile: <output:hdmi-stereo>   ←"output:hdmi-stereo"必要

2, 上記の情報を /etc/pulse/default.pa の最後に書き込む
a) set-card-profile 0 output:hdmi-stereo
b) set-card-profile alsa_card.pci-0000_00_1f.3 output:hdmi-stereo+input:analog-stereo
どちらかを書き込む。
("+input:analog-stereo"の部分は任意。使わないなら書かない)

3, load-module module-switch-on-port-available"コメントアウトして、
#load-module module-switch-on-port-available

4, 念の為
~/.config/pulse/以下を一度全部削除して、

5, 再起動。

今の所うまく行ってます・・・素人処方です。

おまけ
・~/.config/pulse/以下の削除後、pulseaudio -k pulseaudio --start では、cookieのみ作成されて、pulseaudio サーバーとして認識される。
・alsa-base.conf (asound.conf) は buster では使われていない?