Fedora 33でPipewireを試してみる

広告

Fedora 34でPipewireがPulseaudioを全面的に置き換えるらしいという話を聞いて、多くのネット民が大喜びしている。まるでかつてWaylandを持ち上げていた頃のようだ。

だが、それが我々がPipewireに切り替える理由ではない。より良い理由は、Bluetoothの「LDAC」「APTX」などのコーデック形式への対応だ。かつてPulseaudioのパッチを書いた開発者ですら、Pipewireの方が将来性があるから開発を続けたくないと語っている。

広告

スクリーンショット-20210304114908-931x254.png

というわけで、とりあえず切り替えてみよう。もしかしたら良くなるかもしれない。

現在の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のサポートを追加するのを忘れずに:

スクリーンショット-20210304115858-708x361.png

「-e bluez5」を追加する。もちろん、コメントアウトを外すのを忘れずに。ただ、追加しなくても使えたので、違いはよくわからないけど。

その後再起動すれば正常に使える。Bluetoothに関して特別な要件があれば、設定ファイルで微調整すればいい:

sudo vim /etc/pipewire/media-session.d/bluez-monitor.conf

現在の使用感としては特に問題は見つかっていない。以前のpulseaudioより安定している気がするし、Bluetoothでプロファイルの切り替えに失敗するような古い状況も消えた。今回こそ本当に良くなるのだろうか?

本家 plumz.me でこの記事にコメントする

コメントは中国語の本家サイトで受け付けています。このミラーは閲覧専用です。

目次