Pairing Bose QC 35 over Bluetooth on Fedora

I am running Fedora 24 with Gnome Shell. I try to pair my new Bose QuietComfort 35 over Bluetooth.

I started using the Gnome interface. Unfortunately, the connection seems not to hold. It appears as constantly connecting/disconnecting:

https://youtu.be/eUZ9D9rGUZY

My next step was to perform some checks using the command-line. First, I checked that the bluetooth service is running:

$ sudo systemctl status bluetooth
● bluetooth.service - Bluetooth service
   Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
   Active: active (running) since dim. 2016-06-26 11:19:24 CEST; 14min ago
     Docs: man:bluetoothd(8)
 Main PID: 932 (bluetoothd)
   Status: "Running"
    Tasks: 1 (limit: 512)
   Memory: 2.1M
      CPU: 222ms
   CGroup: /system.slice/bluetooth.service
           └─932 /usr/libexec/bluetooth/bluetoothd

juin 26 11:19:24 leonard systemd[1]: Starting Bluetooth service...
juin 26 11:19:24 leonard bluetoothd[932]: Bluetooth daemon 5.40
juin 26 11:19:24 leonard bluetoothd[932]: Starting SDP server
juin 26 11:19:24 leonard bluetoothd[932]: Bluetooth management interface 1.11 initialized
juin 26 11:19:24 leonard bluetoothd[932]: Failed to obtain handles for "Service Changed" characteristic
juin 26 11:19:24 leonard systemd[1]: Started Bluetooth service.
juin 26 11:19:37 leonard bluetoothd[932]: Endpoint registered: sender=:1.68 path=/MediaEndpoint/A2DPSource
juin 26 11:19:37 leonard bluetoothd[932]: Endpoint registered: sender=:1.68 path=/MediaEndpoint/A2DPSink
juin 26 11:20:26 leonard bluetoothd[932]: No cache for 08:DF:1F:DB:A7:8A

Then, I have tried to follow some explanations from Archlinux wiki with no success. The pairing is failing Failed to pair: org.bluez.Error.AuthenticationFailed:

$ sudo bluetoothctl 
[NEW] Controller 00:1A:7D:DA:71:05 leonard [default]
[NEW] Device 08:DF:1F:DB:A7:8A Bose QuietComfort 35
[NEW] Device 40:EF:4C:8A:AF:C6 EDIFIER Luna Eclipse
[bluetooth]# agent on
Agent registered
[bluetooth]# scan on
Discovery started
[CHG] Controller 00:1A:7D:DA:71:05 Discovering: yes
[CHG] Device 08:DF:1F:DB:A7:8A RSSI: -77
[CHG] Device 08:DF:1F:DB:A7:8A UUIDs: 0000febe-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:1F:DB:A7:8A RSSI: -69
[CHG] Device 08:DF:1F:DB:A7:8A UUIDs: 0000febe-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:1F:DB:A7:8A UUIDs: 0000110d-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:1F:DB:A7:8A UUIDs: 0000110b-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:1F:DB:A7:8A UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:1F:DB:A7:8A UUIDs: 0000110f-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:1F:DB:A7:8A UUIDs: 00001130-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:1F:DB:A7:8A UUIDs: 0000112e-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:1F:DB:A7:8A UUIDs: 0000111e-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:1F:DB:A7:8A UUIDs: 00001108-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:1F:DB:A7:8A UUIDs: 00001131-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:1F:DB:A7:8A UUIDs: 00000000-deca-fade-deca-deafdecacaff
[bluetooth]# devices
Device 08:DF:1F:DB:A7:8A Bose QuietComfort 35
Device 40:EF:4C:8A:AF:C6 EDIFIER Luna Eclipse
[CHG] Device 08:DF:1F:DB:A7:8A RSSI: -82
[CHG] Device 08:DF:1F:DB:A7:8A RSSI: -68
[CHG] Device 08:DF:1F:DB:A7:8A RSSI: -79
[bluetooth]# trust 08:DF:1F:DB:A7:8A
Changing 08:DF:1F:DB:A7:8A trust succeeded
[bluetooth]# pair 08:DF:1F:DB:A7:8A
Attempting to pair with 08:DF:1F:DB:A7:8A
[CHG] Device 08:DF:1F:DB:A7:8A Connected: yes
Failed to pair: org.bluez.Error.AuthenticationFailed
[CHG] Device 08:DF:1F:DB:A7:8A Connected: no

I tried to disable SSPMode but it seems to have no effect:

$ sudo hciconfig hci0 sspmode 0

When I use bluetoothctl, journalctl logs the following:

juin 26 11:37:21 leonard sudo[4348]: lpellegr : TTY=pts/2 ; PWD=/home/lpellegr ; USER=root ; COMMAND=/bin/bluetoothctl
juin 26 11:37:21 leonard audit[4348]: USER_CMD pid=4348 uid=1000 auid=4294967295 ses=4294967295 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='cwd="/home/lpellegr" cmd="bluetoothctl" terminal=pt
juin 26 11:37:21 leonard audit[4348]: CRED_REFR pid=4348 uid=0 auid=4294967295 ses=4294967295 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:setcred grantors=pam_env,pam_fprintd acct="roo
juin 26 11:37:21 leonard sudo[4348]: pam_systemd(sudo:session): Cannot create session: Already occupied by a session
juin 26 11:37:21 leonard audit[4348]: USER_START pid=4348 uid=0 auid=4294967295 ses=4294967295 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:session_open grantors=pam_keyinit,pam_limits,
juin 26 11:37:21 leonard sudo[4348]: pam_unix(sudo:session): session opened for user root by (uid=0)
juin 26 11:38:06 leonard bluetoothd[932]: No cache for 08:DF:1F:DB:A7:8A

Unfortunately, I don’t understand the output. Any idea or help is welcome. I am pretty lost.

The bluetooth receiver I use is a USB dongle from CSL-Computer. Bluetoothctl version is 5.40. I am running kernel 4.5.7-300.fc24.x86_64.

Below are the features supported by my bluetooth adapter:

hciconfig -a hci0 features
hci0:   Type: BR/EDR  Bus: USB
    BD Address: 00:1A:7D:DA:71:05  ACL MTU: 310:10  SCO MTU: 64:8
    Features page 0: 0xff 0xff 0x8f 0xfe 0xdb 0xff 0x5b 0x87
        <3-slot packets> <5-slot packets> <encryption> <slot offset> 
        <timing accuracy> <role switch> <hold mode> <sniff mode> 
        <park state> <RSSI> <channel quality> <SCO link> <HV2 packets> 
        <HV3 packets> <u-law log> <A-law log> <CVSD> <paging scheme> 
        <power control> <transparent SCO> <broadcast encrypt> 
        <EDR ACL 2 Mbps> <EDR ACL 3 Mbps> <enhanced iscan> 
        <interlaced iscan> <interlaced pscan> <inquiry with RSSI> 
        <extended SCO> <EV4 packets> <EV5 packets> <AFH cap. slave> 
        <AFH class. slave> <LE support> <3-slot EDR ACL> 
        <5-slot EDR ACL> <sniff subrating> <pause encryption> 
        <AFH cap. master> <AFH class. master> <EDR eSCO 2 Mbps> 
        <EDR eSCO 3 Mbps> <3-slot EDR eSCO> <extended inquiry> 
        <LE and BR/EDR> <simple pairing> <encapsulated PDU> 
        <non-flush flag> <LSTO> <inquiry TX power> <EPC> 
        <extended features> 
    Features page 1: 0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x00

The pairing works well with EDIFIER Luna Eclipse speakers. I suspect the issue is really related to the headset I am trying to configure.

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

I have these headphones as well, along with a handy laptop running Fedora 24. After chatting with one of the Bluez developers on IRC, I have things working. Below is what I’ve found. (Note that I know very little about Bluetooth so I may be using incorrect terminology for some of this.)

The headphones support (or at least say they support) bluetooth LE but don’t support LE for pairing. Bluez does not yet support this and has no way to set the supported BT mode except statically in the configuration file. You can use the headphones over regular bluetooth just fine, though. This happens to be the reason Bluez 4 works; it doesn’t really support LE.

So, create /etc/bluetooth/main.conf. Fedora 24 doesn’t come with this file so either fetch a copy from Upstream, find the line containing

#ControllerMode = dual

and change it to:

ControllerMode = bredr

or create a new file containing just:

[General]
ControllerMode = bredr

Then restart bluetooth and pair. (I did this manually via bluetoothctl, but just using the bluetooth manager should work.)

Now, this got things working for me, though if you don’t force pulseaudio to use the A2DP-Sink protocol, the headphones will announce that you have an incoming call for some reason. However, my mouse requires Bluetooth LE, so I went in and removed the ControllerMode line. And… the headphones still work, as well as the mouse. I guess that once they are paired everything is OK.

Method 2

I read up on your specific headphones, and they use Near Field Communication (NFC) to facilitate pairing, and this was mentioned as specifically added in Bluez 5.3, although, it mentioned on at least one blog “NFC comes built in to the new keyboard, but unfortunately Gnu/Linux doesn’t support NFC well yet. Although NFC support is built in to the Linux Kernel, neither Gnome nor KDE have any support for it, and the number of NFC enabled apps in my Fedora 20 repository is princely zero. NFC won’t help me out pairing my device, so we need to do it the old fashioned way instead…” So then, that puts us back to your approach.

However, Bluez 5.3 did not have support for pairing with devices (such as Bose your headphones) that use a PIN code for pairing.
There is a bug report from the previous verions, on another distribution. So although this is not specifically reported on Fedora, the official Bluez site does not specifically mention a fix, at least from what I can see.

So this feature is not supported; and at least for now that is the answer.

As well, as you suspected, there could be other issues, like needing a specific proprietary drvier, unless you have already ruled that out (i.e. by testing the headphones class-compliant on OSX or Windows or whatever they support). I really highly suspect that is the case, or it gives you or another something to springboard off of.

Method 3

If this could be of help for someone, after try practicly everything described above in my ubuntu 16.04, at last, it was so easy as connect through the “Bose Connect App” (in my case for Android). I used blueman to do it, and finally I was able to pair the headsets.

In my case, I’ve got bluez 5.37v, blueman 2.0.4, and finally I haven’t needed to make any change to the default /etc/bluetooth/main.conf, with the default “ControllerMode” set to dual it worked.

The steps that worked for me were:

1.- Open the app and select the option connect a new device or similar. (I don’t remember exactly the name)
2.- From blueman search for a new device.
3.- Once the headsets have been found, I was able to pair them without any problem and select the working mode.

Without the first step, I was not able to pair them.

I took me a lot the way to find how doing it, but once you know how to do it, it quite easy to do it.

Method 4

I’ve had the same problem on Arch Linux and these are things I had to do, it’s not unlikely that running ‘equivalent’ commands will be helpful for a lot of other people on Linux distros:

  • Install the packages pulseaudio-bluetooth pulseaudio-alsa bluez bluez-libs bluez-utils and restart Pulseaudio (in case it was already running when bluetooth was installed):
    pulseaudio -k
    pulseaudio --start

    If you get an error message

    XDG_RUNTIME_DIR (/var/snips-audio-server) is not owned by us (uid 0), but by uid  
    <some UID (probably yours)>!

    then you have to run these commands as non-root/without sudo.

  • The module btusb had to be loaded in my case, so modprobe btusb each time you need the headphones, or load the module on startup
  • Run rfkill to see if your Bluetooth device is soft-/hardblocked and unblock if it is blocked
  • Check if the bluetooth service is running (i.e. with systemd, the command will probably be something like systemctl status bluetooth.service
    digital stereo output for built-in audio
    high fidelity… (a2dp sink) for headphones
  • As referred to by OP, configuration may have to be adapted as suggested in an answer to this SE question, where you can read up on explanations:
    • Edit /etc/bluetooth/main.conf: Find the line containing
      #ControllerMode = dual

      and change it to:

      ControllerMode = bredr

      or create a new file containing just:

      [General]
      ControllerMode = bredr

      Then restart bluetooth and pair/connect (systemctl restart bluetooth.service or using some GUI frontend, turning it off and on)

There are also instructions from someone on GitHub (NOTE: I’m not entirely sure what these changes from the GitHub repository do (I’ve spent enough time trying to get things to work), so use with caution… I assume the group changes probably just enable Bluetooth control from user space or something among these lines):

In order to work the Bose QC35 Headset Bluetooth do the following:

  • sudo pacman -Syu pulseaudio-alsa pulseaudio-bluetooth bluez bluez-libs bluez-utils
  • turn off bluetooth from your computer
  • sudo btmgmt ssp of
  • gpasswd -a YOUR_USER lp

If you want the group changes without reboot, you can run (as stated here on SE):

exec su -l $USER

to make group changes effective immediately without a reboot.

Method 5

I have also bought Bose QC 35 few days ago. After some initial problems, I managed to make it work on Debian, with ALSA and bluez 4.x

apt-get install bluetooth
apt-get install bluez-alsa
apt-get install blueman

after installing these packages, it still did not work. The problem was with dbus permissions. I solved it by adding my user (uid 1000) to group bluetooth, ie:

usermod -a -G bluetooth martin

after that everything works, and the headset automatically pairs with my laptop on every start

Method 6

I also had the same problem with QC35 on Fedora 24. I tried a customized bluez package here: https://copr.fedorainfracloud.org/coprs/npmccallum/jelling/packages/:

# dnf copr enable npmccallum/jelling
# dnf install bluez-5.37-1.gatt.fc24

After downgrading from 5.40 to the modified 5.37-1 version, I could succeed to pair the headset manually by bluetoothctl (unfortunately GNOME bluetooth setting does not work):

$ bluetoothctl
[bluetooth]# devices
Device 08:DF:xx:xx:xx:xx QC35
[bluetooth]# trust 08:DF:xx:xx:xx:xx 
[CHG] Device 08:DF:xx:xx:xx:xx Trusted: yes
Changing 08:DF:xx:xx:xx:xx trust succeede
[bluetooth]# pair 08:DF:xx:xx:xx:xx 
Attempting to pair with 08:DF:xx:xx:xx:xx
[CHG] Device 08:DF:xx:xx:xx:xx UUIDs: 00000000-deca-fade-deca-deafdecacaff
[CHG] Device 08:DF:xx:xx:xx:xx UUIDs: 00001101-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:xx:xx:xx:xx UUIDs: 00001108-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:xx:xx:xx:xx UUIDs: 0000110b-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:xx:xx:xx:xx UUIDs: 0000110c-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:xx:xx:xx:xx UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:xx:xx:xx:xx UUIDs: 0000111e-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:xx:xx:xx:xx UUIDs: 00001200-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:xx:xx:xx:xx UUIDs: 00001800-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:xx:xx:xx:xx UUIDs: 00001801-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:xx:xx:xx:xx UUIDs: 0000180a-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:xx:xx:xx:xx UUIDs: 0000febe-0000-1000-8000-00805f9b34fb
[CHG] Device 08:DF:xx:xx:xx:xx Paired: yes
Pairing successful
[bluetooth]# connect 08:DF:xx:xx:xx:xx 
Attempting to connect to 08:DF:xx:xx:xx:xx
Connection successful
[QC35]# connect 08:DF:xx:xx:xx:xx 
Attempting to connect to 08:DF:xx:xx:xx:xx
[CHG] Device 08:DF:xx:xx:xx:xx RSSI is nil
Connection successful
[QC35]# info 08:DF:xx:xx:xx:xx 
Device 08:DF:xx:xx:xx:xx
    Name: QC35
    Alias: QC35
    Class: 0x240418
    Icon: audio-card
    Paired: yes
    Trusted: yes
    Blocked: no
    Connected: yes
    LegacyPairing: no
    UUID: Vendor specific           (00000000-deca-fade-deca-deafdecacaff)
    UUID: Serial Port               (00001101-0000-1000-8000-00805f9b34fb)
    UUID: Headset                   (00001108-0000-1000-8000-00805f9b34fb)
    UUID: Audio Sink                (0000110b-0000-1000-8000-00805f9b34fb)
    UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
    UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
    UUID: Handsfree                 (0000111e-0000-1000-8000-00805f9b34fb)
    UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
    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:v009Ep400Cd0103

Then my QC35 could be activated in the GNOME sound setting. It worked flawlessly after the initial pairing and could reconnect to my laptop automatically afterwards.

This version of bluez also works with my bluetooth mouse and trackpad. I don’t know the exact reason why it works. Maybe the latest version of bluez has some kind of regression on bluetooth LE (pointed out by Jason Tibbitts’ answer)? Anyway, hope this answer could help. 🙂

Method 7

Ubuntu 16.04, Bose QC35: Installed “Bluetooth Adapters” software and was able to connect easily.


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x