13

Since I have installed ubuntu 20.04 I am facing problems with my bluetooth headset microphone not detected by the system. My headset worked perfectly with Windows. Also, I am not able to switch to HFP from AD2P in ubuntu. So my final thought is to remove pulseaudio and install pipewire hoping that it will solve my problems.

Can anyone please provide the steps to do the same? I have searched it quite a few times but not able to get to the correct steps.

Thanks a lot!

3
13

I was facing the same issue with Oneplus Wireless Z Bass edition. My headset microphone was not detected by PulseAudio and the problem is that my headphones don't have HSP profile, only HFP profile. After trying for 2 days, I came to the solution of replacing PulseAudio with Pipewire sound server, which supports HSP, HFP and A2DP by itself. So there will be no need to install any other utility like ofono, phonesim. Also, to be noted that my problem wasn't resolved even after following all the steps to configure ofono in PulseAudio. So I came up with the steps to replace PulseAudio with PipeWire.

Here is the detailed article I have written to resolve this problem, the steps of which I'm also adding here. You can follow it and most probably be able to solve your problem.

Bluetooth headset microphone not detected

Open your terminal and follow these steps:

  1. We will use a PPA for adding Pipewire to Ubuntu 20.04, which is maintained regularly:

    sudo add-apt-repository ppa:pipewire-debian/pipewire-upstream
    
  2. To update the PPA packages in your system do:

    sudo apt update
    
  3. Install the package:

    sudo apt install pipewire
    
  4. There is also a dependency needed to be installed with Pipewire, otherwise you will face the issue of “Bluetooth headset won’t connect after installing pipewire”. Install the dependency by:

    sudo apt install libspa-0.2-bluetooth
    
  5. Now, to install the client libraries:

    sudo apt install pipewire-audio-client-libraries
    
  6. Reload the daemon:

    systemctl --user daemon-reload
    
  7. Disable PulseAudio:

    systemctl --user --now disable pulseaudio.service pulseaudio.socket
    
  8. If you are on Ubuntu 20.04, you also need to “mask” the PulseAudio by:

    systemctl --user mask pulseaudio
    

I am not sure but, if possible, you can try to run this on other versions too.
9. After a new update of Pipewire, you also need to enable pipewire-media-session-service:

   systemctl --user --now enable pipewire-media-session.service
  1. You can ensure that Pipewire is now running through:

    pactl info
    

    This command will give the following output, in Server Name you can see:

    PulseAudio (on PipeWire 0.3.28)
    

    Things should be working by now and you can see your microphone.

If it doesn’t show up, then try restarting Pipewire by this command:

systemctl --user restart pipewire

Edit: You need to uninstall ofono and phonesim from your system if you have them installed.

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.

I hope I have helped you solve your problem.

If you want to rollback all the changes we did, you can do it by using:

systemctl --user unmask pulseaudio
systemctl --user --now enable pulseaudio.service pulseaudio.socket
17
  • I've been having the same problem with my headset not being detected on Ubuntu 21.04. I tried this solution, but now there is no HSP/HFP option under for the headset in the sound settings. There is only A2DP Sink with codec AAC and A2DP with codec SBC. Any ideas as to why this is?
    – BenM
    May 23 at 14:00
  • Did you try restarting you system? And also can you show me your output of : pactl info Also, you need to try restarting pipewire, unpair and pair your device.
    – 1nfern0
    May 23 at 14:03
  • Yes, I tried restarting my system. I also restarted Pipewire. The output of pactl info: Server String: /run/user/1000/pulse/native Library Protocol Version: 34 Server Protocol Version: 35 Is Local: yes Client Index: 83 Tile Size: 65472 User Name: ben Host Name: ben-desktop Server Name: PulseAudio (on PipeWire 0.3.28) Server Version: 14.0.0 Default Sample Specification: float32le 2ch 48000Hz Default Channel Map: front-left,front-right Default Sink: bluez_output.AC_12_2F_24_03_B1.a2dp-sink Default Source: bluez_output.AC_12_2F_24_03_B1.a2dp-sink.monitor Cookie: 0e10:4a04
    – BenM
    May 23 at 14:06
  • I am assuming your headset works perfectly fine with Windows and Android/Mac. Am i correct?
    – 1nfern0
    May 23 at 14:08
  • 1
    I have already tried switching the profile from Bluetooth Manager, but the HSP/HFP profile wasn't listed there either. However, I found the problem. I had tried using ofono to solve this issue a few weeks ago following the same AskUbuntu post you mentioned in your article, and I realised that I still had ofono installed. I just had to uninstall ofono, and now my microphone works perfectly using Pipewire. Thanks for all your help. I've been trying to get my mic to work on Ubuntu for quite a while. :)
    – BenM
    May 23 at 14:35
0

To add to 1nfern0's answer, pactl info was giving me a connection failure after following all the steps. I got around it by running: systemctl --user --now enable pipewire pipewire-pulse.

You may also need to restart your system once.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.