Ubuntu bluetooth HFP profile issue (No microphone issue)
I am using Ubuntu 18.04 on two laptop (dell XPS9700, Lenovo X1 carbon 7th). In both laptop, I was not able to use my Bluetooth earphone for online meeting because I can’t find any micro phone. I tested with galaxy buds+, galaxy buds pro, liberty air 2 pro. When I tested with MDR-1RBT Bluetooth headset of Sony, I can use microphone without any issue. The reason of this issue is that default pulseAudio of ubuntu is not support HFP profile of bluetooth because any reason (reason is not sure). MDR-1RBT support HSP/HFP profile, but galaxy buds, and liberty air 2 pro don’t support HSP only support HFP profile.
The solution of this issue is replacing pulse audio to Pipewire
- Add PPA (tested in ubuntu 18.04, 20.04)
sudo add-apt-repository ppa:pipewire-debian/pipewire-upstream
- Update packages
sudo apt update
- Install the packges
sudo apt install pipewire
- Install dependency. If you don’t install this dependency, you will face the issue of “Bluetooth headset won’t connect after installing pipewire”
sudo apt install libspa-0.2-bluetooth
- Install client library
sudo apt install pipewire-audio-client-libraries
- Reload daemon
systemctl --user daemon-reload
- Disable pulseAudio
systemctl --user --now disable pulseaudio.service pulseaudio.socket
- If you are on ubuntu 20.04, you also need to “mask” the pulseAudio using follow
systemctl --user mask pulseaudio
When I used this command in Ubuntu 18.04, there was no issue. So you can try to run this command on other version too.
- Enable pipewire service
systemctl --user --now enable pipewire-media-session.service
- You can ensure that Pipewire is not running through
pactl info
This command will give the following output, in server name
PulseAudio (on PipeWire 0.3.28)
If you don’t show up, then try restart pipewire by this command.
systemctl --user restart pipewire
If you can’t see this server name, just try to connect your bluetooth earbuds to test it.
- If you have installed ofono, ofono-phonesim, remove them
sudo apt remove ofono sudo apt remove ofono-phonesim
If it’s still not showing your microphone, you can try rebooting once and remove and pair your Bluetooth device again to check if it works now. If you want to rollback all changes we did, do this
systemctl --user unmask pulseaudio systemctl --user --now enable pulseaudio.service pulseaudio.socket
Sometimes, I was not ablue to connect to HFP profile after this process. In this case, I installed blueman and reconnect to headset using blueman. After that, I was able to see HFP profile after reconnection. Let’s try!
sudo apt install blueman
reference:
how to use bluetooth device with HSP/HFP profile using pulseaudio >=6 and bluez >= 5.24