PipeWire を使用した Bluetooth ヘッドセットの HSP/HFP の問題の診断 - Ubuntu 20.04

PipeWire を使用した Bluetooth ヘッドセットの HSP/HFP の問題の診断 - Ubuntu 20.04

いいえ、これは「Ubuntu 20.04 を使用していますが、Bluetooth マイクが動作しません」という別の質問ではありません。

調べてみたら、Pulseaudio と oFono の問題があることがわかりました。カーネル 5.12.12 のインストールなど、いろいろ試しましたが、どれも役に立ちませんでした。しばらくあきらめて、ガレージから古い有線ヘッドセットを掘り出しました。その後、2 台目のコンピューターに 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

/usr/share/バージョン0.3.28以降、confファイルはディレクトリからに移動されます/etc/。手動でディレクトリにコピーする必要があります/etc/。これからは、/etc/pipewire/ユーザーが編集したconfファイルのシステム全体のドロップインとして使用できます。conffileのオーバーライド動作は$HOME/.config/pipewire > /etc/pipewire > /usr/share/pipewire

/usr/share/からに conffiles をコピーするには/etc/:

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

PulseAudio がマスクされていることを確認し、次のコマンドを使用して Pipewire サービスを再起動します。

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

それでも問題が解決しない場合は、次のリンクを使用して再インストールすることをお勧めします。参考:

関連情報