2023-06-11

【LMDE】LMDE 5 で PipeWire を動かしてみた

タイトルの通りなのですが、今回インストールした PipeWire は Debian 11 bullseye-backports の 0.3.65 です。

パッケージの詳細はこちら。

https://packages.debian.org/ja/bullseye-backports/sound/pipewire-audio

インストール手順はこちらを参考にしました。

PipeWire - Debian Wiki

LMDE 5 は Debian 11 がベースなのですが、今回は backports のパッケージを使うので、Debian 12 のインストール手順に従ってみました。

$ pactl info
サーバー文字列: /run/user/1000/pulse/native
ライブラリプロトコルバージョン: 34
サーバープロトコルバージョン: 35
Is ローカル: はい
クライアントインデックス: 91
タイルサイズ: 65472
ユーザー名: 
ホスト名: 
サーバー名: PulseAudio (on PipeWire 0.3.65)
サーバーバージョン: 15.0.0
デフォルトサンプル仕様: float32le 2ch 44100Hz
デフォルトチャンネルマップ: front-left,front-right
デフォルトシンク: alsa_output.usb-0c76_USB_PnP_Audio_Device-00.analog-stereo
デフォルトソース: alsa_input.usb-0c76_USB_PnP_Audio_Device-00.mono-fallback
クッキー: 67ad:4b2b

 


準備

まずは PipeWire のインストールです。ガイドでは pipewire-audio というメタパッケージのインストールから始める手順になっていましたが、このパッケージは必要なパッケージをインストールしてもくれるのですが、なんと PulseAudio を削除してしまうそうです。

いきなり PulseAudio を削除してしまうのは怖かったので、このパッケージはインストールしませんでした。

どんなパッケージがリポジトリに用意されているのかを確認しながらだったので、Synaptic から pipewire、pipewire-pulse の 0.3.65 をインストールしました。

あとは wireplumber をインストールします。

pipewire.conf を調整したい場合は pipewire 起動前に /home に用意しておきましょう。

cp -f /usr/share/pipewire/pipewire.conf ~/.config/pipewire/pipewire.conf



移行

まずは PulseAudio を停止します。

systemctl --user --now disable pulseaudo.service pulseaudio.socket 

すかさず status を確認してみます。

systemctl --user status pulseaudio.service

続いて、pipewire と pipewire-pulse を有効化します。

systemctl --user --now enable pipewire pipewire-pulse

これで pipewire と pipewire-pulse が起動するはずです。status で確認してみましょう。

systemctl --user status pipewire pipewire-pulse

ワタシの場合は pipewire だけがすでに起動されていたので enable が失敗したため、restart しています。

systemctl --user restart pipewire.service pipewire-pulse.service

pactl info にて「サーバー名」に「on PipeWire」が表示されていることを確認しましょう。

この後に Spotify とか Firefox を起動すると PipeWire 経由で再生されています。



後始末

他の用事もあったので、一度 PC を再起動しました。再起動後も設定が有効であるかが気になったので PulseAudio の状態を確認すると enabled のままでした。

$ systemctl --user status pulseaudio.service
● pulseaudio.service - Sound Service
     Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; enabled; vendor preset: enabled)
     Active: inactive (dead)
TriggeredBy: ● pulseaudio.socket

$ systemctl --user status pulseaudio.socket
● pulseaudio.socket - Sound System
     Loaded: loaded (/usr/lib/systemd/user/pulseaudio.socket; enabled; vendor preset: enabled)
     Active: inactive (dead)
   Triggers: ● pulseaudio.service
     Listen: /run/user/1000/pulse/native (Stream)

どうしてでしょう?さっき disable しておいたのに。

 

またまた別件で Linux Mint の「自動開始させるアプリ」の設定を見直す機会があったのですが、なんと「PulseAudio サウンドシステム」というズバリそのものの設定項目があり、自動開始の対象になっていました。次回の PC 再起動に備えてオフにしておきました。

PulseAudio が自動開始の対象だったので解除した

 

ここまで来れば、Debian 推奨の pipewire-audio というパッケージをインストールしても大丈夫そうです。pipewire-alsa がインストールされ、PulseAudio が削除されるはずです。

$ apt install pipewire-audio
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:

以下のパッケージには満たせない依存関係があります:
 libspa-0.2-bluetooth : 依存: libspa-0.2-modules (= 0.3.19-4) しかし、0.3.65-2~bpo11+1 はインストールされようとしています
E: 問題を解決することができません。壊れた変更禁止パッケージがあります。

なんと、インストールが失敗してしまいました。

でもまあ、PipeWire が使えているのでこのままにしておきます。もうすぐ Debian 12 をベースにした LMDE 6 がリリースされると思うので、その時にまた試してみます。