使用 PipeWire 诊断蓝牙耳机 HSP/HFP 问题 - Ubuntu 20.04

使用 PipeWire 诊断蓝牙耳机 HSP/HFP 问题 - Ubuntu 20.04

不,这不是另一个“我有 Ubuntu 20.04 但我的蓝牙麦克风不工作”的问题。

我做了一些研究,发现了 Pulseaudio 和 oFono 的问题。我尝试了很多方法,包括安装内核 5.12.12 - 都无济于事。我一度放弃了,从车库里翻出了旧的有线耳机。然后我在我的第二台电脑上安装了 Fedora 34,令我惊讶的是,我发现我的耳机在那里没有问题。这就像隧道尽头的亮光。我以为是 PipeWire 的问题,所以我把它安装在了我的主机上。不幸的是,这里的情况并没有改善。

安装 PipeWire 后,系统的行为与以前完全相同,即:

  • 我可以为输入和输出选择 HSP/HFP 配置文件;
  • 切换到 HSP/HFP 配置文件后,我听不到耳机里的声音(只有寂静),并且我的麦克风没有拾取任何声音;
  • 切换到 A2DP 配置文件后,我可以毫无问题地听到耳机中的声音。

切换到 HSP/HFP 配置文件后,pactl list cards出现以下情况:

Card #37
    Name: bluez_card.38_18_4C_59_F1_6A
    Driver: module-bluez5-device.c
    Owner Module: n/a
    Properties:
        device.api = "bluez5"
        device.bus = "bluetooth"
        media.class = "Audio/Device"
        device.name = "bluez_card.38_18_4C_59_F1_6A"
        device.description = "WH-1000XM3"
        device.alias = "WH-1000XM3"
        device.form_factor = "headset"
        device.string = "38:18:4C:59:F1:6A"
        api.bluez5.icon = "audio-card"
        api.bluez5.path = "/org/bluez/hci0/dev_38_18_4C_59_F1_6A"
        api.bluez5.address = "38:18:4C:59:F1:6A"
        api.bluez5.device = ""
        api.bluez5.class = "0x240404"
        api.bluez5.connection = "connected"
        device.icon_name = "audio-headset-bluetooth"
        bluez5.auto-connect = "[ hfp_hf hsp_hs a2dp_sink ]"
        factory.id = "14"
        client.id = "30"
        object.id = "37"
    Profiles:
        off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
        a2dp-sink: High Fidelity Playback (A2DP Sink) (sinks: 1, sources: 0, priority: 0, available: yes)
        headset-head-unit: Headset Head Unit (HSP/HFP) (sinks: 1, sources: 1, priority: 0, available: yes)
        a2dp-sink-sbc: High Fidelity Playback (A2DP Sink, codec SBC) (sinks: 1, sources: 0, priority: 0, available: yes)
        headset-head-unit-cvsd: Headset Head Unit (HSP/HFP, codec CVSD) (sinks: 1, sources: 1, priority: 0, available: yes)
    Active Profile: headset-head-unit-cvsd
    Ports:
        headset-input: Headset (priority: 0, latency offset: 0 usec, available)
            Properties:
                port.type = "headset"
            Part of profile(s): headset-head-unit, headset-head-unit-cvsd
        headset-output: Headset (priority: 0, latency offset: 0 usec, available)
            Properties:
                port.type = "headset"
            Part of profile(s): a2dp-sink, headset-head-unit, a2dp-sink-sbc, headset-head-unit-cvsd

pactl info给我:

Server String: /run/user/1001/pulse/native
Library Protocol Version: 33
Server Protocol Version: 35
Is Local: yes
Client Index: 37
Tile Size: 65472
User Name: kamyllus
Host Name: 
Server Name: PulseAudio (on PipeWire 0.3.30)
Server Version: 14.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.pci-0000_00_1b.0.analog-stereo
Default Source: alsa_input.usb-DisplayLink_Dell_D3100_USB3.0_Dock_1712133780-02.iec958-stereo
Cookie: 0404:22f4

cat /proc/version给出:

Linux version 5.8.0-55-generic (buildd@lgw01-amd64-050) (gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #62~20.04.1-Ubuntu SMP Wed Jun 2 08:55:04 UTC 2021

我需要帮助来诊断问题。我决心让我的 Windows 同事闭嘴,不要在我遇到困难时当着我的面嘲笑我。

请告诉我我还能提供哪些信息。我也可以将该设置与 Fedora 进行比较,但我需要知道在哪里查看。我需要更多数据,这样我才能继续战斗(也许在另一个更精确的论坛中)。

答案1

自 0.3.28 版起,conf 文件已从 移至/usr/share/目录/etc/。您必须/etc/手动将它们复制到目录。从现在起,/etc/pipewire/可以用作用户编辑的 conf 文件的系统范围插件。conffile 覆盖行为是$HOME/.config/pipewire > /etc/pipewire > /usr/share/pipewire

将 conffiles 从 复制/usr/share//etc/

sudo cp -vRa /usr/share/pipewire /etc/

确保您已屏蔽 PulseAudio 并使用以下命令重新启动 Pipewire 服务:

systemctl --user mask pulseaudio
systemctl --user restart pipewire pipewire-pulse

如果仍然不起作用,我建议使用以下链接重新安装https://pipewire-debian.github.io/pipewire-debian/

相关内容