Fedora 33でPipewireを試してみる
Fedora 34でPipewireがPulseaudioを全面的に置き換えるらしいという話を聞いて、多くのネット民が大喜びしている。まるでかつてWaylandを持ち上げていた頃のようだ。
だが、それが我々がPipewireに切り替える理由ではない。より良い理由は、Bluetoothの「LDAC」「APTX」などのコーデック形式への対応だ。かつてPulseaudioのパッチを書いた開発者ですら、Pipewireの方が将来性があるから開発を続けたくないと語っている。

というわけで、とりあえず切り替えてみよう。もしかしたら良くなるかもしれない。
現在のFedora公式の情報によると、Pipewireに切り替えると再起動後に音が出ない、Bluetooth接続後に音量を変更できないなど、さまざまな問題が発生する。Pipewire自体が活発に開発中であることを考慮すると、coprのnightly版を直接使うのがおすすめだ。問題があっても修正が早いからね。
このリポジトリを追加するのを忘れずに:https://copr.fedorainfracloud.org/coprs/mfrey/pipewire-nightly/
リポジトリを有効化
sudo dnf copr enable mfrey/pipewire-nightly
Pulseのモジュールをインストールすれば、その後はPulseaudioからPipewireへシームレスに切り替えられる。
sudo dnf install --best --allowerasing pipewire-pulseaudio
競合の問題があればこれで解決できる。まあ、自分は遭遇しなかったけど。
sudo rpm -e --nodeps pulseaudio
JackやAlsaを使っているなら、同じようにやればいい:
sudo dnf install --best --allowerasing pipewire-jack-audio-connection-kit
sudo rpm -e --nodeps jack-audio-connection-kit
sudo dnf install --best --allowerasing pipewire-alsa
次にpipewireのサービスを有効化する。多くの問題はここで発生する:
systemctl --user enable pipewire-pulse.services # 我忘了到底是 socket 还是 services 了,有什么你启用什么罢,反正就是一服务
systemctl --user enable pipewire-pulse.socket
systemctl --user enable pipewire-media-session.service
ここが最も重要な点で、新しいバージョンのpipewireではこのpipewire-media-session.serviceを有効化する必要がある。
以前に古いバージョンのpipewireをインストールしていた場合、新しいバージョンの設定ファイルに置き換える必要がある。/etc/pipewire/pipewire.conf.rpmnewの内容で/etc/pipewire/pipewire.confを置き換えないと、音声出力デバイスが見つからないと表示される。
そして、/etc/pipewire/pipewire.confの設定ファイルの一番下にbluez5のサポートを追加するのを忘れずに:

「-e bluez5」を追加する。もちろん、コメントアウトを外すのを忘れずに。ただ、追加しなくても使えたので、違いはよくわからないけど。
その後再起動すれば正常に使える。Bluetoothに関して特別な要件があれば、設定ファイルで微調整すればいい:
sudo vim /etc/pipewire/media-session.d/bluez-monitor.conf
現在の使用感としては特に問題は見つかっていない。以前のpulseaudioより安定している気がするし、Bluetoothでプロファイルの切り替えに失敗するような古い状況も消えた。今回こそ本当に良くなるのだろうか?
コメントは中国語の本家サイトで受け付けています。このミラーは閲覧専用です。