내 Linux 박스의 Bluetooth 장치에서 오디오를 수신/녹음하고 싶습니다. 내 헤드폰은 작동합니다(특히 마이크는 잘 작동합니다). 즉, macOS에서는 작동하지만 Linux(특히 raspbian jessy)에서는 작동하도록 할 수 없습니다. 하지만 제가 본 바에 따르면 다른 릴리스에도 영향을 미칩니다.
- 장치가 다음을 사용하여 올바르게 페어링되고 연결되었습니다.
bluetoothctl
- A2DP 프로필이 제대로 작동합니다.
pactl ls
보고서 등headset_head_unit: Headset Head Unit (HSP/HFP) (priority 20, available: no)
headset_head_unit
pulseaudio 보고 로 전환하려고 할 때[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 사용bluez
5.24, 5.42, 5.43 (예: 5.35가 어느 정도 성공했다고 보고하므로 데비안의 다른 버전을 찾을 수 없음bluez
)- 헤드폰 장치를 다시 페어링하고 다시 연결하세요.
bluetoothctl
하이브리드 Linux Bluetooth 스택을 클라이언트/서버로 사용하는 사람들이 있을 수 있으므로 보고서에는 약간의 혼란이 있습니다. 적어도 저는 그게 익숙합니다 ofono
.
RPI 3의 Bluetooth 문제에 대한 일부 보고가 있었지만 먼저 bluez
HFP/HSP가 현재 가능한지 여부 에 대한 표시를 찾고 싶습니다 pulseaudio
. 데비안(라즈비안에서는 더 좋음)에 대한 명확한 단계가 포함된 성공 보고서는 나에게 큰 도움이 될 것입니다. 다른 배포판에서 성공적으로 설정하더라도 내 상자에 동일한 배포판을 구축하는 데 도움이 될 수 있습니다. 이 문제가 1년 넘게 영향을 미치 pulseaudio
거나 누적 된 것 같습니다 bluez
. 사람들이 BT 헤드셋을 사용할 수 없다는 것이 믿기 어렵습니다. 즉, 너무 오랫동안 VOiP 통화를 하는 등... 조사에서 중요한 세부 정보를 모두 제공했는지 확실하지 않습니다. , 댓글이 있으면 질문을 업데이트할 수 있습니다.
또한 일부 버그 보고서와 적극적인 개발 및 솔루션에 대한 기회가 있는지 궁금합니다.
고쳐 쓰다:
아마도 삭제한 후 사운드를 녹음하거나 재생하려고 할 때 ofono
마침내 연결을 전환할 수 있게 되었고 headset_head_unit
, 장치에 일부 활동(예: 내장 LED 깜박임)이 표시되지만 데이터가 수신/전송되지 않습니다(예: parec
빈 wav
크기 ). 생성됨) 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
또한 ofono
PulseAudio의 모든 구성 단계를 수행한 후에도 문제가 해결되지 않았다는 점을 기억하는 것이 중요합니다 . 그래서 PulseAudio를 PipeWire로 교체하는 단계를 알아냈습니다.
이 문제를 해결하기 위해 제가 작성한 자세한 기사는 다음과 같습니다. 여기에 해당 단계도 추가했습니다. 따라하시면 문제가 해결될 가능성이 높습니다.
터미널을 열고 다음 단계를 따르세요.
PPA를 사용하여 정기적으로 유지 관리되는 Pipewire를 Ubuntu 20.04에 추가합니다.
sudo add-apt-repository ppa:pipewire-debian/pipewire-upstream
시스템에서 PPA 패키지를 업데이트하려면 다음을 수행하십시오.
sudo apt update
설치 패키지:
sudo apt install pipewire
Pipewire도 종속성을 설치해야 합니다. 그렇지 않으면 다음과 같은 문제에 직면하게 됩니다."파이프와이어 설치 후 블루투스 헤드셋을 연결할 수 없습니다". 다음을 통해 종속성을 설치합니다.
sudo apt install libspa-0.2-bluetooth
이제 클라이언트 라이브러리를 설치합니다.
sudo apt install pipewire-audio-client-libraries
데몬을 다시 로드합니다.
systemctl --user daemon-reload
PulseAudio 비활성화:
systemctl --user --now disable pulseaudio.service pulseaudio.socket
Ubuntu 20.04를 사용하는 경우 다음을 통해 PulseAudio를 "차단"해야 합니다.
systemctl --user mask pulseaudio
확실하지는 않지만 가능하다면 다른 버전에서도 실행해 볼 수도 있습니다.
9. 새로운 Pipewire 업데이트 후에는 다음도 활성화해야 합니다 pipewire-media-session-service
.
systemctl --user --now enable pipewire-media-session.service
이제 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