使用 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

若要將設定檔從/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/

相關內容