71

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

Videonauth
  • 33,815
Fabrik
  • 1,381

9 Answers9

57

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

karel
  • 122,292
  • 133
  • 301
  • 332
Fabrik
  • 1,381
36
  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.

David Foerster
  • 36,890
  • 56
  • 97
  • 151
donpwner
  • 460
12

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.

Sebastian
  • 121
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

Arthur
  • 231
8

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

sudo service bluetooth restart

Ubuntu 18.04

s.illes79
  • 173
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.

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

Reece
  • 320
0

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.