68

I'm trying to use my bluetooth headset (Bluedio, in the screenshot) in Ubuntu-Gnome 16.10, but I keep getting a horrible sound quality in everything.

Important note: I've just tested with a different device, a bluetooth speaker, and it gets the A2DP profile automatically, with a nice sound quality. The problem, then, is only happening with my bluetooth headset.

I've read some posts and the given suggestions don't work in my case (Ubuntu-Gnome 16.10). These suggestions are:

1) Under the Sound settings, change the headset profile to the A2DP (High Fidelity Playback). Not only the sound quality didn't even change, the profile keeps getting turned back to Headset Head Unit (HSP/HFP) profile, in which the sound quality remains horrible. So, even though the A2DP profile shows up there, it doesn't take effect and goes back to the HSP/HFP profile everytime.

2) Changes in the /etc/bluetooth/audio.conf file, like uncommenting the line "AutoConnect=true line". First of all, there isn't such file in Ubuntu-Gnome 16.10. Instead, there is the /etc/bluetooth/main.conf file, which seems pretty similar to the first one in terms of parameters. But, the line is already uncommented in my S.O., just as the suggestion tells me to do. So, it seems that there's nothing to do here with this suggestion.

Here's the screenshot of the Sound Settings' screen. You can see that there's an arrow for the dropdown list, where the A2DP profile shows up (even though it's not appearing in the shot. It's there though), but it gets back to the HSP/HFP profile everytime.

Here's the link for the screenshot:

picture 1

3
  • See this related question. Jul 23, 2017 at 15:33
  • sometimes you might forgot about the output volume when selecting High fidelity playback
    – Kalanka
    Mar 30, 2019 at 5:19
  • Is there a bug being tracked for this somewhere?
    – kirk
    Apr 29, 2020 at 11:27

9 Answers 9

51

I've managed to fix it. Even though I'm not sure if the following steps are in the exactly order to do it, I'm pretty sure it was the combination of them that fixed it. Here they are:

  1. I've installed Blueman: sudo apt install blueman

  2. I've edited the /etc/bluetooth/audio.conf file: sudo -H gedit /etc/bluetooth/audio.conf and added this line in the end of it: Disable=Headset. Users on Ubuntu 17.04 and above may not have audio.conf, but can instead use main.conf.

Note: I've also installed something called pavucontrol from the terminal with the command sudo apt install pavucontrol, but I'm really not sure if it was this or the Blueman that solved it. I suspect it was the Blueman, but if it doesn't help, try the pavucontrol and see if it solves it.

Don't forget to restart the bluetooth service after the change with sudo systemctl start bluetooth

10
  • 9
    Yeah, adding that line Disable=Headset did it for me. :D And pavucontrol is PulseAudio Volume Control, so I don't think installing that was necessary to fix the problem. Jul 23, 2017 at 15:31
  • 1
    I have just tested the step 1 and 2. Re-connected the bluetooth headset and it worked for me. So no need for pavucontrol. Nov 12, 2017 at 15:55
  • 6
    Disable=Headset worked for me, but I also had to do sudo service bluetooth restart for it to work. And the question remains: Why does it work?
    – BlueBomber
    May 30, 2018 at 17:49
  • 7
    testing in 18.04-based system: blueman is not needed, no more than pavucontrol; the decisive setting is the Disable=Headset line (in /etc/bluetooth/main.conf). In pavucontrol: only after adding that line, the "High Fidelity Playback" setting becomes available (after restart). Another solution that I haven't yet tested: here.
    – cipricus
    Jun 10, 2019 at 20:50
  • 2
    To clarify: after doing this, will I still be able to use the headset as, well, a headset? I'm asking because I see three audio profiles in pavucontrol and blueman-applet: headset, high-fidelity sink, high-fidelity source. Selecting high-fidelity sink in pavucontrol (the default in 18.04) results in no audio source from the headset appearing at all.
    – Raphael
    Jun 12, 2019 at 16:14
33
  1. Install Blueman:

    sudo apt-get install blueman
    
  2. Add Disable=headset to /etc/bluetooth/main.conf.

  3. Restart the bluetooth daemon:

    sudo service bluetooth restart
    

If you still have poor sound quality go to pavucontrol and under Configuration set the profile of your device to off and then to A2DP and it should work now.

6
  • 2
    Works like a charm in Linux Mint 19! Thanks :)
    – develCuy
    Sep 15, 2018 at 17:08
  • Worked for Arch Linux in 2020! Dec 26, 2019 at 19:08
  • Does not work for me on Ubuntu 16.04 LTS
    – reggie
    Jun 8, 2020 at 11:53
  • That worked for me on Elementary OS(Ubuntu 18.04). Took just 2 minutes to do. Thanks lot. Earlier my ANC headphones were giving too much noise due to mic and poor audio quality. Its crystal clear now. Jan 22, 2021 at 17:02
  • 1
    Worked for me in unbuntu 20.04, many thanks! May 22, 2022 at 18:20
10

I also had the same problem with automatic change back to HSP/HFP.

I solved this by editing /etc/bluetooth/main.conf and uncommenting the line

Name = BlueZ

in the section [General].

Though, it might be not available, when the bluez package is not installed.

Thanks anyway for the tip with the file.

4
  • 2
    I had to uncomment this line as well to get mine to work. Thanks.
    – rayryeng
    Apr 7, 2019 at 8:37
  • worked in 18.04
    – cipricus
    Jun 4, 2019 at 18:42
  • I first thought this fixed it, but unfortunately every time I reconnect, the headphones are back on HSP/HFP instead of A2DP. :(
    – Murch
    Aug 13, 2019 at 22:24
  • Worked on Manjaro. I'm very confused though because I would have guessed the name would have no effect on actual behavior. Jul 9, 2020 at 2:42
8

Get the index of your card:

pacmd list-cards

Set the cards profile to a2dp (example: index 2):

pacmd set-card-profile 2 a2dp_sink

Credit to develmusa of the ArchLinux forums: https://bbs.archlinux.org/viewtopic.php?pid=1720877#p1720877

1
7

The only thing that works for me is to restart the bluetooth service and reconnect.

sudo service bluetooth restart

Ubuntu 18.04

2
  • Worked also on Mint 19.2 Jan 6, 2020 at 12:26
  • All that was needed for Pop!_OS 20.04
    – Joseph8th
    Nov 1, 2020 at 3:27
4

I had to do the following for my Bluetooth headset to work, after upgrading from Ubuntu 20.04 to 20.10:

sudo apt-get install pulseaudio-module-bluetooth
sudo killall pulseaudio
pulseaudio --start    
sudo systemctl restart bluetooth

Not sure if it was a transient problem or not. Hope it won't happen again.

I got the following error in the logs when trying to enable the BT connection to the headphones, before doing the fix:

$ tail -f /var/log/syslog 
.
.
Aug 23 15:01:33 my-p1gen2 bluetoothd[226778]: src/service.c:btd_service_connect() a2dp-sink profile connect failed for XX:XX:XX:XX:XX:XX: Protocol not available

After the fix, it worked.

1
2

Solution for Ubuntu 20.10 w/Soundpeats TrueCapsule headphone/headset.

1. Enable MultiProfile support /etc/bluetooth/main.conf

On/near line 58, you'll see #MultiProfile = off. Uncomment (or add a new line) with MultiProfile = multiple.

2. Remove the bluetooth device and re-add it.

This is important. Switching to A2DP did not work for me until I dropped and re-added.

enter image description here

3. Switch to A2DP.

Click Sound Settings (see above screenshot) and select A2DP. You should be able to switch back and forth on the fly (with noticeable sound quality differences).

Note: When I enable the headset microphone, output switches to HSP. I don't know whether this is a necessity of the bluetooth A2DP and HSP codecs, or merely a limitation of the bluetooth implementation. In any case, consider installing GNOME Sound Output Device Chooser, which makes it easy to switch between profiles. enter image description here

4
  • Is it possible to enable 2-side A2DP? For me it works only as input or output, but not both. 2-side it works only for HSP/HFP
    – AndreyP
    Apr 14, 2021 at 11:13
  • I don't know the answer to that specifically, but I can tell you that I use my headsets to listen to music and for zoom calls without manually changing the profile.
    – Reece
    Apr 17, 2021 at 1:14
  • @AndreyP, no. android.stackexchange.com/questions/2819/… So either use A2DP without microphone, or HSP/HFP (much worse sound quality) with a mic.
    – Ufos
    Oct 27, 2021 at 13:07
  • I'm trying to connect airdots 3 pro via bluetooth to my Ubuntu 20.04, but it always reconnect them as HSP / HPF, needing me to manually change to A2DP. Is there a way to remember it? Dec 17, 2021 at 17:30
1

Thanks for the info, worked great!

On Ubuntu 17.10 I had to change:

Settings > sound > output tab Select Bluetooth output Then set profile to 'high fidelity playback (a2dp sink)

0

This one worked for me https://askubuntu.com/a/1186839/834728

sudo apt-get install pulseaudio-module-bluetooth
killall pulseaudio

Try to connect again.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .