Repairing GDM and Bluetooth Audio


Bluetooth audio is great! I’ve had a pair of Bluetooth headphones, Sony MDR-XB950 BT, for around a year now, and the ability to listen to music without cables is amazing. But, I can only use the Bluetooth parts of this with my phone, because on Linux, it just sounds terrible. I’ve even gone so far as to buy and wire in a cable on my desk at work to enable me to fairly easily connect to my desk, without having to plug into the desktop every day.

A2DP marked as unavailable.

#The Problem

The issue is caused by a lack of A2DP, a Bluetooth profile for transmitting stereo audio at high quality. According to the manual for my headphones, it supports A2DP just fine, however, my computer was reporting it didn’t, and so was saying it was unavailable.

After a large amount of searching, I came across a number of solutions, none of which worked. From trying some alternative software, to modifying config for bluetoothd, no change.

#The Solution

If there’s one thing I know, it’s that there’s an AUR package for just about everything. Surprisingly, there was even a package which fixed my issue entirely: pulseaudio-bluetooth-a2dp-gdm-fix.


  1. yaourt -S pulseaudio-bluetooth-a2dp-gdm-fix
  2. Reboot

That’s it!

A2DP is now enabled! (Ignore the fact the device name changed)

#The Cause

According to the related wiki, it’s caused by GDM capturing the Bluetooth device, and unloading certain modules if they exist. I’m not exactly sure why it does this, but it’s a fairly well documented issue.

Share this page

Similar content

View all →

Freight Containers on a Ship

Backing up and restoring Docker containers

You should back up your data, properly! If you’re not, you’re playing a dangerous game with fate. Computers are pretty reliable, but they also go wrong, often. You should always backup your files, but backing up a containerized application isn’t quite as simple. A container is 3 things:ConfigurationVolumesNetworking The point…


Storing Ansible Vault password in Bitwarden

5 minutes

I’ve used Ansible for a number of years for the provisioning of both my servers and desktops. It’s versatile, it’s simple, it’s powerful, and has a number of great features. Personally, I make all of my “playbooks” public for all for all to see, but provisioning still requires some secrets.…