8
4月
2024
在 Linux 上用 Pipewire 替换 Pulseaudio 声音服务器并安装 EasyEffects
17:17

在 Linux 上用 Pipewire 替换 Pulseaudio 声音服务器并安装 EasyEffects

8 4月 2024 17:17

如何用 PipeWire 替换 PulseAudio、安装 EasyEffects 均衡器或从 PipeWire 降级到 PulseAudio。

内容

  1. 0。检查您正在使用的声音服务器
  2. 1.用 PipeWire 替换 PulseAudio 的说明
  3. 2.安装音效管理器和均衡器 EasyEffects
  4. 3.当您有多个声卡时,在系统托盘中设置音量控制
  5. 4.安装 PipeWire 后恢复到 PulseAudio(回滚更改)

 


0.检查使用的声音服务器

在终端中检查安装和使用的声音服务器:

inxi -Ax

1.用PipeWire替换PulseAudio的说明

1)添加PPA存储库

sudo -E add-apt-repository ppa:pipewire-debian/pipewire-upstream

2)更新了apt包缓存

sudo apt update

3)安装pipewire声音服务器

sudo apt install pipewire

4)您还需要安装Pipewire声音服务器的库,它将通过依赖项安装ABR、LDAC、Opus和SBC编解码器:

sudo apt install libspa-0.2-bluetooth

(此命令将安装 libfreeaptx0、libldacbt-abr2、libldacbt-enc2、libopus0、libsbc1 软件包以支持相应的 APRX、LDAC、Opus、SBC 编解码器)。

5)安装Pipewire客户端库

sudo apt install pipewire-audio-client-libraries

6) 使用该用户的“--user”开关重新加载服务配置(因为 PipeWire 服务器在用户的安全上下文中运行):

systemctl --user daemon-reload

7) 为用户禁用旧的PulseAudio服务:

systemctl --user --now 禁用pulsaudio.servicepulseaudio.socket

8)另外:在Ubuntu中,我在重新启动后使用以下命令禁用了pulseaudio服务:

sudo systemctl --user mask pulseaudio
sudo systemctl mask pulseaudio

9)安装wireplumber包

sudo apt install wireplumber

! 我注意到有两种方法可以管理 PipeWire 中的流和策略:使用 pipeline-media-session 或wireplumber 模块。 pipeline-media-session 包在 Linux Mint 上不可用。 相反,在其他发行版中,wireplumber 包需要不满足的依赖项。 然后安装可用的软件包 - pipeline-media-session 或wireplumber。

10)安装了pipewire-pulse包(包含替换PulseAudio的服务)和推荐的pipewire-audio包。

sudo apt install pipewire-pulse pipewire-audio

11)根据[来自the-spyke的PipeWire安装说明](https://gist.github.com/the-spyke/2de98b22ff4f978ebf0650c90e82027e)安装PipeWire后,我将ALSA配置文件从PipeWire示例目录复制到ALSA目录:

sudo cp /usr/share/doc/pipewire/examples/alsa.conf.d/99-pipewire-default.conf /etc/alsa/conf.d/

这适用于将 ALSA 与 PipeWire 结合设置。

12) 删除了所有 PulseAudio 组件

sudo apt purge pulseaudio pulseaudio-module-bluetooth pulseaudio-utils

#sudo apt purge jack* qjackctl

13) 防止启动蓝牙时显示SAP错误:

打开SystemD的蓝牙服务描述文件进行编辑

sudo nano /etc/systemd/system/bluetooth.target.wants/bluetooth.service

[Unit]
Description=Bluetooth service
Documentation=man:bluetoothd(8)
ConditionPathIsDirectory=/sys/class/bluetooth

[Service]
Type=dbus
BusName=org.bluez
ExecStart=/usr/libexec/bluetooth/bluetoothd --noplugin=sap

!!添加了 --noplugin=sap 开关!

SIM 访问配置文件 (SAP) 允许支持蓝牙的设备访问另一个支持蓝牙的设备的 SIM 卡中包含的数据。 禁用 SAP 插件。

14)推出新服务

systemctl --user --now enable pipewire pipewire-pulse wireplumber
systemctl --user start pipewire pipewire-pulse wireplumber

15)检查:

sudo inxi -Ax

结果应该是这样的:

API: ALSA v: k6.17.0-20-generic status: kernel-api
Server-1:PipeWire v:1.0.7 状态:活动

现在声卡应该可以在有线耳机或扬声器上工作,如果您有蓝牙耳机,它也应该通过蓝牙播放声音。

要从内置声卡切换到耳机,请使用“混音器”音量控制项。
混合器
在此之前,您需要像往常一样通过系统托盘中的蓝牙图标:“设备”菜单项连接到蓝牙设备。
bt

 

2.安装音效管理器和均衡器EasyEffects

1) 安装电平控制等 - PipeWire 的控制面板,称为 EasyEffects

EasyEffects 应用程序的主页位于 https://github.com/wwmm/easyeffects
EasyEffects 可以从 Flatpak 安装:

sudo apt install flatpak
flatpak install flathub com.github.wwmm.easyeffects

按两次 Enter 键,如果我们想允许安装 - Y - EasyEffects 应用程序
下载并安装 easyeffects 大约需要 5 分钟。

如果 EasyEffects 程序未安装,请检查是否已添加 EasyEffects flatpak 存储库(仅与某些发行版相关):

flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.fpatpakrepo

默认情况下,Linux Mint 和 Linux Green 中不需要此命令。

2) 启动应用程序 简易效果器

flatpak run com.github.wwmm.easyeffects

应出现一个空窗口:“列表为空”
easyeffects1

3)在EasyEffects中,进入“Pipewire”选项卡-更改声卡(仅当是外部USB时)

pipewire-internal-audio

在“自动加载预设”部分中,我将音频输入/输出的声卡从内置音频模拟立体声更改为 USB 音频模拟立体声。
pipewire-out

在“常规”部分我选择了USB声卡(如果有内置声音,则不需要此项)

4) 在 EasyEffects 中,我们检查声音输出 - “测试信号”部分。

sound_test
!!小心,信号很大,请摘下耳机!

在“输出”选项卡上,将出现信号频谱,电平为-6 dB
测试
让我们关闭 Pipewire - 测试信号选项卡上的测试信号。

5) 启动声源 - 之前安装的 Shortwave 应用程序
vinyl

6) 调节音量:在 EasyEffects 中的“Pipewire”-“播放器”选项卡上,将音量从 100% 降低到 20-25%。
音量

7) 调整 PipeWire 音量 - 在“播放器”选项卡上(100% -> 22%)

8)“效果”-“添加效果”-“均衡器”添加均衡器

eq1

默认32条纹! 我不需要这个,5条就够了。 我们将顶部的条纹数量从 32 更正为 5。
eq2
要在减少频段数量后更改均衡器参数,请将窗口拉伸到右边缘之外:
eq3
并单击“计算频率”按钮。
eq4
使用底部边缘增加窗口的大小或扩展窗口以填充整个屏幕。
调整均衡器以适应口味。

如果耳机在最大音量下出现过载,您可以调整“输出”增益。
eq5
!!!与 PulseAudio 相比,带均衡器的 PipeWire 中的声音有所改善。
不要使输出过载(将滑块向左移动)! lvls

9) 为了获得更好的质量,请将均衡器模式从 IIR 切换到 FFT。 fft

10) 使用“导出 APO 预设”按钮将均衡器设置保存到磁盘。

以后,无需每次都启动 EasyEffects,因为这些设置会在操作系统启动时应用到 PipeWire。
使用以下命令启动 EasyEffects 来自定义声音

flatpak run com.github.wwmm.easyeffects

另外,可以在菜单中执行Easy Effects声音调节程序 “开始”-“音频和视频”-“简单效果”:
easy_effects_icon

保存 EasyEffects 设置是在“预设”菜单中完成的:
pipewire-save-settings

 

<a名称=“p3”>

3. 如果您有多个声卡,请在系统托盘中设置音量控制

如果您的计算机连接了多个声卡,默认系统托盘音量设置将控制内置声卡的音量。 音量级别的变化不会影响扬声器音量。 要解决该问题,请左键单击音量控制,选择“声音设置”。
卷2

将打开一个面板 - 您需要选择将由音量控制控制的声卡。 就我而言,输出到外部声卡的声音称为 “模拟输出USB音频”- 单击面板上的相应按钮。 现在音量控制可以正常工作 - 它控制输出到external USB 声卡的声音音量。
USB声卡


在带有 Cinnamon 桌面的 Linux Green 上,您可以单击系统托盘中的音量图标来选择 蓝牙耳机 来输出声音。
linux_green_output

防止系统通知干扰听音乐,在同一窗口 “声音” 在选项卡上 “声音设置” 您需要将声音的音量降低到零。
通知关闭

如果蓝牙耳机的声音质量较差,则使用“耳机”配置文件而不是 A2DP。
![cvsd](cvsd.png?lightbox&classes=img-zoomable“cvsd 个人资料”)
此问题已解决 此站点上的另一篇文章

 

4.安装PipeWire后返回PulseAudio(回滚更改)

一些用户在改用 PipeWire 后遇到了问题。
删除 PipeWire 并安装 PulseAudio 会有所帮助。

sudo systemctl --global disable pipewire pipewire-pulse pipewire-media-session

sudo apt remove pipewire -y && sudo apt autoremove -y && sudo apt autoclean -y
sudo flatpak remove com.github.wwmm.easyeffects
sudo add-apt-repository -r ppa:pipewire-debian/pipewire-upstream
sudo apt update
sudo apt reinstall pulseaudio pulseaudio-module-zeroconf avahi-daemon  pavucontrol  alsa-utils pulseaudio-utils
sudo apt purge bluetooth bluez* blueman pulseaudio-module-bluetooth
sudo apt install 蓝牙 bluez bluez-tools bluemanpulseaudio-module-bluetooth
mv  ~/.config/pulse/ ~/.config/pulse_old/
sudo systemctl --global unmask pulseaudio.service pulseaudio.socket
sudo systemctl --global enable pulseaudio.service pulseaudio.socket
sudo reboot

蓝牙权限:

sudo adduser pulse bluetooth

编辑文件

sudo nano /etc/dbus-1/system.d/bluetooth.conf

在文件末尾,在 之前应该有:

<!-- allow users of bluetooth group to communicate -->
<policy group="bluetooth">
<allow send_destination="org.bluez"/>
</policy>

<policy context="default">
<allow send_destination="org.bluez"/>
</policy>

使用许可和 发射 用户的 PulseAudio 服务:

systemctl --user unmask pulseaudio.service
systemctl --user enable pulseaudio.service

systemctl --user unmask pulseaudio.socket
systemctl --user enable pulseaudio.socket

systemctl --user daemon-reload

设置蓝牙设备自动连接:

sudo nano /usr/bin/start-pulseaudio-x11
set -e

如果 [ x "$DISPLAY" != x ] ;那么

    /usr/bin/pactl load-module module-x11-publish "display=$DISPLAY xauthority=$XAUTHORITY" > /dev/null
    /usr/bin/pactl load-module module-x11-cork-request "display=$DISPLAY xauthority=$XAUTHORITY" > /dev/null

    #添加新内容
    /usr/bin/pactl load-module module-bluetooth-discover
    /usr/bin/pactl load-module module-switch-on-connect

编辑:

sudo nano /etc/pulse/default.pa

模块之后“###自动恢复流和设备的音量”添加以下行:

## Add New
.ifexists 模块-蓝牙-discover.so
加载模块模块蓝牙发现
.endif

设置蓝牙适配器的操作模式:_删除_行中的注释 控制器模式 并将参数设置为 “布雷德”

sudo nano /etc/bluetooth/main.conf
# Restricts all controllers to the specified transport. Default value
#是“双”,即同时启用 BR/EDR 和 LE(当硬件支持时)。
#可能的值:“dual”、“bredr”、“le"

ControllerMode = bredr

!!!包含 PulseAudio + 蓝牙配置文件的存档(来自 Runtu/Ubuntu 20.04): conf.zip

重新启动电脑:

sudo shutdown -r now

开始播放声音,例如:
https://www.rbc.ru/story/radio

如果您听不到任何声音,请右键单击音量图标检查“耳机”或“线路输出”的音频输出。
输出

!!!您还可以使用系统设置来选择输出设备 开始 - 设置 - 声音

然后,将音量调节至 pavucontrol

检查终端:

systemctl --user status pulseaudio.service

应显示为绿色:“Active:活动(正在运行)”。

检查声音服务器:

pactl info

结果应该是这样的:

Server String: /run/user/1000/pulse/native
库协议版本:35
服务器协议版本:33
是否本地:是
客户指数:12
瓷砖尺寸:65472
用户名: 弗拉基米尔
主机名:amd
服务器名称: 脉冲音频
服务器版本:13.99.1
默认样本规格:s16le 2ch 44100Hz
默认频道图:左前、右前
默认接收器:bluez_sink.41_42_93_D9_80_BD.a2dp_sink
默认源:bluez_sink.41_42_93_D9_80_BD.a2dp_sink.monitor
Cookie:db00:e703

调试:

pulseaudio -k
pulseaudio -D
sudo journalctl -xe

! 就我而言,完成上述所有步骤后,没有错误。 我设法安装 PipeWire,然后返回 Pulseaudio。

命令结果

inxi -Ax

下一个:

  Sound Server-1: ALSA v: k6.2.0-060200-generic running: yes
声音服务器 2:PulseAudio v:15.99.1 运行:是

! 在 Linux 上,使用蓝牙时,默认配置文件“HFP 耳机”有时可能启动时音质较差。 如何通过蓝牙将蓝牙配置文件切换为高质量 A2DP 音频 - 请参阅 本网站上的文章


资料来源:
https://pipewire-debian.github.io/pipewire-debian/
https://github.com/wwmm/easyeffects
https://forum.ubuntu.ru/index.php?topic=315646.0
https://gist.github.com/the-spyke/2de98b22ff4f978ebf0650c90e82027e


最后更改:05/06/2026



相关出版物