HSP/HFP 프로필로 블루투스 장치를 사용하는 방법(pulsaudio >=6 및 bluez >= 5.24 사용)

HSP/HFP 프로필로 블루투스 장치를 사용하는 방법(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하지 pulseaudio못했습니다 ofono. 가장 일반적인 의견은 HSP/HFP 지원이 최근에 제거되었으므로 사용해야 한다는 것 bluez입니다 ofono. (하지만 BT susystem이 클라이언트로 사용될 때, 즉 연결된 경우를 알고 있기 때문에 여기서 ofono가 어떻게 도움이 될지 잘 모르겠습니다. 전화로) . 해결되지 않은 오류(예: freedesktop)가 많이 표시됩니다.여기그리고여기,빨간 모자,우분투그리고데비안Stackexchange에서도 비슷한 질문이 나왔습니다. 일부 성공 보고가 있지만 계속해서 시도할 수는 없습니다.

  • pulseaudio구성 load-module module-bluetooth-discover headset=ofono(및 auto변형 native), 버전 7, 8, 10 사용
  • bluez5.24, 5.42, 5.43 (예: 5.35가 어느 정도 성공했다고 보고하므로 데비안의 다른 버전을 찾을 수 없음 bluez)
  • 헤드폰 장치를 다시 페어링하고 다시 연결하세요.bluetoothctl

하이브리드 Linux Bluetooth 스택을 클라이언트/서버로 사용하는 사람들이 있을 수 있으므로 보고서에는 약간의 혼란이 있습니다. 적어도 저는 그게 익숙합니다 ofono.

RPI 3의 Bluetooth 문제에 대한 일부 보고가 있었지만 먼저 bluezHFP/HSP가 현재 가능한지 여부 에 대한 표시를 찾고 싶습니다 pulseaudio. 데비안(라즈비안에서는 더 좋음)에 대한 명확한 단계가 포함된 성공 보고서는 나에게 큰 도움이 될 것입니다. 다른 배포판에서 성공적으로 설정하더라도 내 상자에 동일한 배포판을 구축하는 데 도움이 될 수 있습니다. 이 문제가 1년 넘게 영향을 미치 pulseaudio거나 누적 된 것 같습니다 bluez. 사람들이 BT 헤드셋을 사용할 수 없다는 것이 믿기 어렵습니다. 즉, 너무 오랫동안 VOiP 통화를 하는 등... 조사에서 중요한 세부 정보를 모두 제공했는지 확실하지 않습니다. , 댓글이 있으면 질문을 업데이트할 수 있습니다.

또한 일부 버그 보고서와 적극적인 개발 및 솔루션에 대한 기회가 있는지 궁금합니다.

고쳐 쓰다: 아마도 삭제한 후 사운드를 녹음하거나 재생하려고 할 때 ofono마침내 연결을 전환할 수 있게 되었고 headset_head_unit, 장치에 일부 활동(예: 내장 LED 깜박임)이 표시되지만 데이터가 수신/전송되지 않습니다(예: parecwav크기 ). 생성됨) 44b, 이는 단지 wav 헤더임). 프로필을 사용하여 동일한 장치를 테스트했는데 a2dp_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 프로필만 있다는 것입니다. 이틀 간의 노력 끝에 PulseAudio를 기본적으로 HSP, HFP 및 A2DP를 지원하는 Pipewire 사운드 서버로 교체하는 솔루션을 찾았습니다. 따라서 ofono.phonesim​ 또한 ofonoPulseAudio의 모든 구성 단계를 수행한 후에도 문제가 해결되지 않았다는 점을 기억하는 것이 중요합니다 . 그래서 PulseAudio를 PipeWire로 교체하는 단계를 알아냈습니다.

이 문제를 해결하기 위해 제가 작성한 자세한 기사는 다음과 같습니다. 여기에 해당 단계도 추가했습니다. 따라하시면 ​​문제가 해결될 가능성이 높습니다.

블루투스 헤드셋이 감지되지 않음

터미널을 열고 다음 단계를 따르세요.

  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도 종속성을 설치해야 합니다. 그렇지 않으면 다음과 같은 문제에 직면하게 됩니다."파이프와이어 설치 후 블루투스 헤드셋을 연결할 수 없습니다". 다음을 통해 종속성을 설치합니다.

    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

관련 정보