Ubuntu – How to play through bluetooth headphones

16.04bluetoothheadphonessound

I am trying to connect my Bose Quiet Comfort to my laptop via bluetooth.

I am able to connect and pair these headphones to my phone without issues as I would any other wireless Bluetooth device.

Command-line Connection attempt:

Using bluetoothctl I seem to be able to connect, but not to pair:

[bluetooth]# devices
Device 04:52:C7:32:68:16 Bose QuietComfort 35
[bluetooth]# connect 04:52:C7:32:68:16
Attempting to connect to 04:52:C7:32:68:16
Connection successful
[Bose QuietComfort 35]# devices
[Bose QuietComfort 35]#ch)`pair ': pair 04:52:C7:32:68:16
Attempting to pair with 04:52:C7:32:68:16
Failed to pair: org.bluez.Error.AuthenticationFailed
[CHG] Device 04:52:C7:32:68:16 Connected: no
[CHG] Device 04:52:C7:32:68:16 Connected: yes

However, in the bluetooth GUI menu, it seems to think I'm paired with the device:

enter image description here

The headphones themselves never seem to recognise that the laptop is connected, and in my sound settings I don't see anything that I can output to, so the "pairing" is bogus I think.

enter image description here

So this is clearly an issue in ubuntu.

I've tried deleting the device and starting again, but every time I can connect but not pair. I also tried deactivating bluetooth LE as per this answer:

Pair Bose QuietComfort 35 with Ubuntu 16.04 over Bluetooth

but the behaviour did not change.

Here's what happens when I type info <MAC Address>:

Device 04:52:C7:32:68:16
    Name: Bose QuietComfort 35
    Alias: Bose QuietComfort 35
    Paired: no
    Trusted: no
    Blocked: no
    Connected: yes
    LegacyPairing: no
    UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
    UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
    UUID: Device Information        (0000180a-0000-1000-8000-00805f9b34fb)
    UUID: Bose Corporation          (0000febe-0000-1000-8000-00805f9b34fb)
    Modalias: bluetooth:v009Ep400Cd0106

Not sure that's helpful.

GUI / Blueman Connection attempt:

I found this page, which seems relevant:

Ubuntu 16.04 won't output sound to Bluetooth headphones

I tried using blueman as suggested, which crashes whenever I try to pair my device.

enter image description here

I tried upgrading the suggested packages by running

sudo apt-get install libpam-systemd libsystemd0 libudev1 systemd ubuntu-mono udev

This stopped the error from appearing but I was still not able to pair with blueman (no error, it just doesn't do anything when I try to pair).

I tried running tail -f /var/syslog while I turned on my headphones, and saw this message:

Dec  7 20:18:15 elitebook bluetoothd[860]: Unable to register GATT service with handle 0x0001 for device 04:52:C7:32:68:16
Dec  7 20:18:15 elitebook bluetoothd[860]: Unable to register GATT service with handle 0x0013 for device 04:52:C7:32:68:16

I think this might be a clue…

Best Answer

It looks like the underlying problem was similar to the one for this question:

https://stackoverflow.com/questions/31380594/linux-bluez-dbus-communication

Except that I'm running a systemd linux setup so I had to do as the comment on that answer suggested:

With newer Systemd-based systems, copy /lib/systemd/system/bluetooth.service to /etc/systemd/system/bluetooth.service and change the ExecStart line to ExecStart=/usr/lib/bluetooth/bluetoothd -E.

– Arto Bendiken

So I did that, restarted, and then started bluetoothctl, and connected manually:

[Bose QuietComfort 35]# connect 04:52:C7:32:68:16 
Attempting to connect to 04:52:C7:32:68:16
[CHG] Device 04:52:C7:32:68:16 Paired: yes
Connection successful

This time when I paired, my headphones recognised the connection (they didn't previously, even though GNOME seemed to think the pairing had worked) and the output device appeared in my devices list.

Related Question