启用 Ubuntu 上的 PipeWire 以代替 PulseAudio
与 Ubuntu 20.04 不同,我们不需要在 Ubuntu 22.04 Linux 上安装 PipWire,因为它已经在预装的系统上。但是,我们只需要对其进行配置以替换音频和蓝牙设备的 PluseAudio。
仅适用于 Ubuntu 20.04
最新版本的 PipeWire 和 WirePlumber 在 20.04 Focal 上默认不可用,因此,我们需要通过添加 PPA 存储库来安装它们。此外,想要此框架和会话管理器的最新版本的 Ubuntu 22.04 用户也可以根据需要添加 PPA。
sudo add-apt-repository ppa:pipewire-debian/pipewire-upstream
sudo add-apt-repository ppa:pipewire-debian/wireplumber-upstream
在 Ubuntu 上安装 PipeWire 20.04
添加存储库后,运行 system update 命令,然后使用 APT 安装所需的软件包:
sudo apt install pipewire pipewire-session-manager
重新加载守护程序:
systemctl --user daemon-reload
启动服务:
systemctl --user --now enable pipewire pipewire-session-manager
检查 PipeWire 服务
首先,让我们检查一下 PipeWire 是否在我们的 Ubuntu 22.04 或 20.04 上安装并运行,没有任何错误。为此,请在命令终端中运行以下命令:
systemctl status --user pipewire pipewire-session-manager --no-pager -l
安装所需的 PipeWire 软件包
让我们安装一些额外的软件包,这些软件包将支持用于音频或视频输出的 PipeWire。此外,给定的命令将安装编解码器以支持 LDAC。
sudo apt install libldacbt-{abr,enc}2 libspa-0.2-bluetooth pipewire-audio-client-libraries libspa-0.2-jack
使用 WirePlumber 作为会话管理器(仅适用于 Ubuntu 22.04)
安装 WirePlumber,而不是使用 Piperwire 会话管理器,这是一个更高级、更强大的会话管理器。
sudo apt install wireplumber
输出:
The following additional packages will be installed:
liblua5.3-0 libwireplumber-0.4-0 pipewire-pulse
The following packages will be REMOVED:
pipewire-media-session
The following NEW packages will be installed:
liblua5.3-0 libwireplumber-0.4-0 pipewire-pulse wireplumber
0 upgraded, 4 newly installed, 1 to remove and 89 not upgraded.
Need to get 452 kB of archives.
After this operation, 1,443 kB of additional disk space will be used.
Do you want to continue? [Y/n] n
Abort.
在 Ubuntu 上启动 WirePlumber 服务 22.04
默认情况下,WirePlumber 的服务不会运行,因此,我们必须启动并启用它以在系统启动时运行。这是执行此操作的命令:
systemctl --user --now enable wireplumber.service
禁用 PulseAudio
使用给定的命令禁用 PulseAudio:
systemctl --user --now disable pulseaudio.{socket,service}
systemctl --user mask pulseaudio
配置 ALSA、插孔和蓝牙
您可以使用一个命令将所有必需的 PipeWire 配置文件复制到 e
sudo cp -vRa /usr/share/pipewire /etc/
鉴于:
对于ALSA:
要配置 ALSA – Advanced Linux Sound Architecture,这是一个软件框架,是 Linux 内核的一部分,工作是为声卡设备驱动程序提供 API;要使用 PipeWirem,请将 PipeWire 安装文件夹中可用的默认配置文件复制到 ALSA。
sudo cp /usr/share/doc/pipewire/examples/alsa.conf.d/99-pipewire-default.conf /etc/alsa/conf.d/
对于蓝牙
要将其用于蓝牙,只需运行给定的命令,该命令将删除 PulseAudio 的蓝牙模块以支持 PipeWire。
sudo apt remove pulseaudio-module-bluetooth
对于 JACK:
要将 PipeWire 用于 JACK(一种低延迟音频服务器 API),请将可用于它的配置文件复制到 PipeWire 文件夹中。
sudo cp /usr/share/doc/pipewire/examples/ld.so.conf.d/pipewire-jack-*.conf /etc/ld.so.conf.d/
重新启动系统并验证 PipeWire
完成上述命令后,重新启动 Ubuntu 22.04 或 20.04 系统一次,以正确集成 PipeWire。
reboot
重新启动后,打开命令终端并运行:
pactl info
上面的命令将为您提供音频服务器的详细信息,转到服务器名称行,您将在那里看到:
Server Name: PulseAudio (on PipeWire x.x.x)
之前和之后的结果
重新启动之前:
重新启动后:
禁用 PulseAudio 的 PipeWire(可选)
将来,如果您需要禁用 PulseAudio 的 PipeWire 使用,那么也可以在不删除它的情况下使用。命令如下:
首先,我们需要取消屏蔽 PusleAudio 服务,否则在启用它时会出现错误:
Error: Failed to enable unit: Unit file /home/h2s/.config/systemd/user/pulseaudio.service is masked.
现在,揭开它的面纱:
systemctl --user unmask pulseaudio
之后,启用服务:
systemctl --user --now enable pulseaudio.{socket,service}
现在,重新启动系统并使用以下命令检查服务器名称:
pactl info