HSP / HFPプロファイルでBluetoothデバイスを使用する方法(pulsaudio> = 6およびbluez> = 5.24を使用)

HSP / HFPプロファイルでBluetoothデバイスを使用する方法(pulsaudio> = 6およびbluez> = 5.24を使用)

私のLinuxボックスのBluetoothデバイスでオーディオを受信/録音したいです。私のヘッドフォンは動作します(特にマイクはうまく機能します)。つまり、macOSでは動作しますが、Linux(特にraspbian jessy)では動作させることはできません。しかし、私が見たところによると、他のリリースにも影響します。

  • デバイスは以下を使用して正しくペアリングされ、接続されました。bluetoothctl
  • A2DPプロファイルが正しく機能します。
  • pactl lsレポートなどheadset_head_unit: Headset Head Unit (HSP/HFP) (priority 20, available: no)
  • headset_head_unitpulseaudioレポートに切り替えようとしたとき[pulseaudio] module-bluez5-device.c: Refused to switch profile to headset_head_unit: Not connected

アップグレード、使用などのさまざまな提案を見つけてみましたが、成功しませんbluezでしpulseaudioofono。最も一般的なコメントは、HSP / HFPサポートが最近削除されたために使用する必要があることbluezですofono。 (しかし、BT susystemがクライアントとして使用されているとき、つまり接続されている場合を知っているので、ここでofonoがどのように役立つかはわかりません。電話で)。未解決のエラー(例:freedesktop)がたくさん表示されます。ここそしてここ赤い帽子UbuntuそしてDebianStackexchangeでも同様の質問が出ました。いくつかの成功報告がありますが、それを試すことはできません。

  • pulseaudio構成load-module module-bluetooth-discover headset=ofono(およびautoバリアントnative)、バージョン7、8、10を使用する
  • bluez5.24、5.42、5.43(例:5.35がある程度成功したと報告しているため、Debianの他のバージョンが見つかりませんbluez
  • ヘッドフォンデバイスを再ペアリングして再接続します。bluetoothctl

ハイブリッドLinux Bluetoothスタックをクライアント/サーバーとして使用している人がいる可能性があるため、レポートには少し混乱があります。少なくとも私はそれに精通していますofono

RPI 3のBluetoothの問題についていくつかの報告がありましたが、まずbluezHFP / HSPが現在利用可能かどうかについての表示を探したいと思いますpulseaudio。 Debian(ラズビアンでは良い)の明確なステップを含む成功報告書は私にとって大きな助けになります。別のディストリビューションで正常に設定しても、私のボックスに同じディストリビューションを構築するのに役立ちます。この問題が1年以上影響を受けpulseaudioたか累積しているようですbluez。人々がBTヘッドセットを使用できないことは信じ難いです。つまり、あまりにも長い間VOiP通話をしているなど...調査で重要な詳細をすべて提供したかどうかはわかりません。 、コメントがあれば質問を更新できます。

また、いくつかのバグレポートと積極的な開発とソリューションの機会があるかどうか疑問に思います。

修正する: おそらく削除した後にサウンドを録音または再生しようとすると、ついに接続を切り替えることができるようになりましofonoた。生成された)44b、これは単にwavヘッダです)。プロファイルを使用して同じデバイスをテストしましたが、音は問題なく再生されます。デバッグする方法を知りたいです。headset_head_unitparecwava2dp_sink

答え1

私の解決策:

多くの検索の最後に、Plantronics Legendとプラグ可能なBluetooth USBを使用してFedora 26でソリューションを見つけました。

履歴を確認し、可能であれば私のソリューションでスレッドを更新します。これはPlugable(私が使用しているUSBモジュール)で直接機能します。

バラよりこれ郵便はがき。

上記のコマンドの概要

wget https://s3.amazonaws.com/plugable/bin/fw-0a5c_21e8.hcd
sudo mkdir /lib/firmware/brcm
sudo mv fw-0a5c_21e8.hcd /lib/firmware/brcm/BCM20702A0-0a5c-21e8.hcd
sudo cp /lib/firmware/brcm/BCM20702A0-0a5c-21e8.hcd /lib/firmware/brcm/BCM20702A1-0a5c-21e8.hcd

その後、再起動してください。

答え2

Oneplus Wireless Z Bassバージョンでも同じ問題が発生しました。 PulseAudioは私のヘッドセットを検出しません。問題は、私のヘッドセットにHSPプロファイルがなく、HFPプロファイルのみがあることです。 2日間の努力の後、PulseAudioを基本的にHSP、HFP、A2DPをサポートするPipewireサウンドサーバーに置き換えるソリューションを見つけました。したがってofono、PulseAudioのすべての設定手順を実行した後も問題が解決しなかったことを覚えておくことが重要ですphonesimofonoそのため、PulseAudioをPipeWireに置き換える手順を見つけました。

この問題を解決するために私が書いた詳細な記事は次のとおりです。ここにそのステップも追加しました。フォローすると問題が解決する可能性が高くなります。

Bluetoothヘッドセットが検出されない

端末を開き、次の手順に従います。

  1. PPA を使用して、定期的に維持されている Pipewire を Ubuntu 20.04 に追加します。

    sudo add-apt-repository ppa:pipewire-debian/pipewire-upstream
    
  2. システムでPPAパッケージを更新するには、次の手順を実行します。

    sudo apt update
    
  3. インストールパッケージ:

    sudo apt install pipewire
    
  4. Pipewireも依存関係をインストールする必要があります。それ以外の場合は、次の問題に直面します。「パイプワイヤーのインストール後にBluetoothヘッドセットを接続できない」。次のように依存関係をインストールします。

    sudo apt install libspa-0.2-bluetooth
    
  5. 次に、クライアントライブラリをインストールします。

    sudo apt install pipewire-audio-client-libraries
    
  6. デーモンを再ロードします。

    systemctl --user daemon-reload
    
  7. PulseAudioを無効にする:

    systemctl --user --now disable pulseaudio.service pulseaudio.socket
    
  8. Ubuntu 20.04を使用している場合は、次の方法でPulseAudioを「ブロック」する必要があります。

    systemctl --user mask pulseaudio
    

わかりませんが、可能であれば他のバージョンでも実行できます。
9. 新しい Pipewire をアップデートした後は、以下も有効にする必要がありますpipewire-media-session-service

   systemctl --user --now enable pipewire-media-session.service
  1. これで Pipewire が実行されていることを確認できます。

    pactl info
    

    このコマンドは、サーバー名から次の出力を提供します。

    PulseAudio (on PipeWire 0.3.28)
    

    これで、すべてがうまく機能し、マイクを見ることができます。

表示されない場合は、次のコマンドを使用してPipewireを再起動してみてください。

systemctl --user restart pipewire

ofonoとofono-phonesimがインストールされている場合は、それらも削除する必要があります。

sudo apt remove ofono
sudo apt remove ofono-phonesim

マイクがまだ表示されていない場合は、一度再起動してからBluetoothデバイスを取り外して再ペアリングして、正常に動作していることを確認できます。

トラブルシューティングに役立つことを願っています。

すべての変更をロールバックするには、次のコマンドを使用します。

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

関連情報