在 Fedora 33 下尝试 Pipewire
惊闻 Fedora 34 将会用 Pipewire 全面取代 Pulseaudio,很多网友都喜大普奔,像极了当初吹 Wayland 的样子。
但这并不是我们切换到 Pipewire 的理由,更好的理由是对于蓝牙的“LDAC”“APTX”之类编码格式的支持,就连当初写 Pulseaudio Patch 的大佬都表示不想开发了,因为 Pipewire 更有前途。
所以还是切换一下看看罢,没准更好呢?
根据目前官方 Fedora 给的相关方式,切换到 Pipewire 会出现各种问题,包括重启后没声音,蓝牙连接后无法切换音量大小等,考虑到 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’,当然,别忘了取消注释,不过我发现不添加也能用,不知道有什么区别就是了。
之后重启就可以正常使用了,如果你蓝牙方面有一些特殊要求,可以在配置文件里面微调就是了:
sudo vim /etc/pipewire/media-session.d/bluez-monitor.conf
目前的使用感受是没发现什么问题,似乎比之前的 pulseaudio 更稳定了一些,一切蓝牙老切换 profile 失败的情况也消失了,难道这次真的要好起来了?