Bluetooth headphones aren't connecting

I’m using Manjaro with a KDE desktop environment. I’ve been trying to connect my JBL Live Free NC+ TWS-LE headphones to my new Framework DIY Laptop, but it seems like it’s not connecting. When I click the Bluetooth symbol I get a message saying ‘connection to device failed’

Do you have any other Bluetooth devices you can try to narrow down the problem a little? I’m running Ubuntu 21.10 on my Batch 6 Framework, I can connect my Sonos speaker over Bluetooth and it plays just fine. My Sony WF-1000XM3 earbuds will connect to Bluetooth, but not play. My Apple Airpods Max will not successfully connect.

So, I know Bluetooth is working on my Framework, but something is missing. Seems like I need to install some additional codecs / library or something to get the Sony earbuds working. I wish I knew the answer for you, but I’ll be following this thread to see if any helpful suggestions come along.

1 Like

@Dave_Olson

I’m having the same exact issue I can connect my JBL Clip 3 Speakers over Bluetooth and it plays perfectly. But my JBL Wireless Earbuds won’t work. The laptop does see the earbuds but it won’t connect to them

Hey @Shamar_Powell,

as far as I know Manjaro is Arch Linux based, so I’d consider reading up on the bluetooth specifics on the Bluetooth Arch Wiki page.

Not sure how KDE might play into this, but independent of your desktop environment you should be able to debug this from the command line:

  • Bluetooth drivers (like btusb) should be provided by the standard linux kernel package:

    $ pacman -Qo /usr/lib/modules/5.16.1-arch1-1/kernel/drivers/bluetooth/btusb.ko.zst
    /usr/lib/modules/5.16.1-arch1-1/kernel/drivers/bluetooth/btusb.ko.zst is owned by linux 5.16.1.arch1-1
    

    Here are the kernel modules loaded on my machine:

    $ lsmod | grep -e btusb -e bluetooth
    btusb                  65536  0
    btrtl                  28672  1 btusb
    btbcm                  24576  1 btusb
    btintel                45056  1 btusb
    bluetooth             770048  35 btrtl,btintel,btbcm,bnep,btusb,rfcomm
    ecdh_generic           16384  2 bluetooth
    rfkill                 32768  6 bluetooth,cfg80211
    crc16                  16384  2 bluetooth,ext4
    
  • Make sure you have at least the bluez and bluez-utils packages installed. On my system I have:

    $ pacman -Qs bluetooth
    local/blueman 2.2.3-2
      GTK+ Bluetooth Manager
    local/bluez 5.63-1
      Daemons for the bluetooth protocol stack
    local/bluez-libs 5.63-1
      Deprecated libraries for the bluetooth protocol stack
    local/bluez-tools 0.2.0-5
      A set of tools to manage Bluetooth devices for Linux
    local/bluez-utils 5.63-1
      Development and debugging utilities for the bluetooth protocol stack
    local/hidapi 0.11.2-1
      Simple library for communicating with USB and Bluetooth HID devices
    local/libldac 2.0.2.3-1
      LDAC Bluetooth encoder library
    local/pipewire-pulse 1:0.3.43-5
      Low-latency audio/video router and processor - PulseAudio replacement
    local/sbc 1.5-2
      Bluetooth Subband Codec (SBC) library
    
  • Maybe switch to Pipewire from PulseAudio if you haven’t already, since PulseAudio’s bluetooth support can be flaky. Don’t worry, it is 100% compatible and will replace it in all major distros eventually. In my case the following things are installed:

    $ pacman -Qs pipewire
    local/helvum 0.3.2-1
      GTK patchbay for PipeWire
    local/libpipewire02 0.2.7-2
      Low-latency audio/video router and processor - legacy client library
    local/pipewire 1:0.3.43-5
      Low-latency audio/video router and processor
    local/pipewire-alsa 1:0.3.43-5
      Low-latency audio/video router and processor - ALSA configuration
    local/pipewire-pulse 1:0.3.43-5
      Low-latency audio/video router and processor - PulseAudio replacement
    local/wireplumber 0.4.7-1
      Session / policy manager implementation for PipeWire
    
  • Reboot your machine after installing any of the above just for the giggles.

  • Make sure your bluetooth hardware is not (soft-/hard-) blocked; it should look something like this:

    $ sudo rfkill list
    ...
    1: hci0: Bluetooth
          Soft blocked: no
          Hard blocked: no
    ...
    
  • Start and enable the bluetooth.service if not already:

    $ sudo systemctl enable --now bluetooth.service
    
  • Now try to connect via bluetoothctl. I’ll show you the process for my wireless earbuds:

    $ bluetoothctl
    Agent registered
    [CHG] Controller 9C:2A:70:82:6C:B4 Pairable: yes
    [bluetooth]# power on
    [CHG] Controller 9C:2A:70:82:6C:B4 Class: 0x006c010c
    Changing power on succeeded
    [CHG] Controller 9C:2A:70:82:6C:B4 Powered: yes
    [bluetooth]# scan on
    Discovery started
    [CHG] Controller 9C:2A:70:82:6C:B4 Discovering: yes
    [NEW] Device 20:9B:A5:85:F0:9D SoundBuds Flow
    [bluetooth]# pair 20:9B:A5:85:F0:9D
    Attempting to pair with 20:9B:A5:85:F0:9D
    [CHG] Device 20:9B:A5:85:F0:9D Connected: yes
    [CHG] Device 20:9B:A5:85:F0:9D UUIDs: 00001108-0000-1000-8000- 00805f9b34fb
    [CHG] Device 20:9B:A5:85:F0:9D UUIDs: 0000110b-0000-1000-8000-00805f9b34fb
    [CHG] Device 20:9B:A5:85:F0:9D UUIDs: 0000110c-0000-1000-8000-00805f9b34fb
    [CHG] Device 20:9B:A5:85:F0:9D UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
    [CHG] Device 20:9B:A5:85:F0:9D UUIDs: 0000111e-0000-1000-8000-00805f9b34fb
    [CHG] Device 20:9B:A5:85:F0:9D ServicesResolved: yes
    [CHG] Device 20:9B:A5:85:F0:9D Paired: yes
    Pairing successful
    [bluetooth]# devices
    Device 20:9B:A5:85:F0:9D SoundBuds Flow
    [bluetooth]# connect 20:9B:A5:85:F0:9D
    Attempting to connect to 20:9B:A5:85:F0:9D
    [CHG] Device 20:9B:A5:85:F0:9D Connected: yes
    Connection successful
    [CHG] Device 20:9B:A5:85:F0:9D ServicesResolved: yes
    [SoundBuds Flow]# trust 20:9B:A5:85:F0:9D
    [CHG] Device 20:9B:A5:85:F0:9D Trusted: yes
    Changing 20:9B:A5:85:F0:9D trust succeeded
    
  • Your computer should now play from the connected device. It should show up in pavucontrol, or whichever PulseAudio fronted you normally use.

How does this guide work for you? Are you still having trouble?

Kind Regards

Maxim

Thank you for the detailed response, but yes I’m still having trouble

`$ lsmod | grep -e btusb -e bluetooth

btusb 65536 0
btrtl 28672 1 btusb
btbcm 24576 1 btusb
btintel 45056 1 btusb
bluetooth 749568 43 btrtl,btintel,btbcm,bnep,btusb,rfcomm
ecdh_generic 16384 2 bluetooth
rfkill 32768 8 bluetooth,cfg80211
crc16 16384 2 bluetooth,ext4
`

`$ pacman -Qs bluetooth

local/bluedevil 1:5.23.4-1 (plasma)
Integrate the Bluetooth technology within KDE workspace and
applications
local/bluez 5.62-1
Daemons for the bluetooth protocol stack
local/bluez-libs 5.62-1
Deprecated libraries for the bluetooth protocol stack
local/bluez-utils 5.62-1
Development and debugging utilities for the bluetooth protocol
stack
local/hidapi 0.11.0-1
Simple library for communicating with USB and Bluetooth HID devices
local/libldac 2.0.2.3-1
LDAC Bluetooth encoder library
local/pulseaudio-bluetooth 15.0-1
Bluetooth support for PulseAudio
local/sbc 1.5-2
Bluetooth Subband Codec (SBC) library
`

`$ pacman -Qs pipeware

local/bluedevil 1:5.23.4-1 (plasma)
Integrate the Bluetooth technology within KDE workspace and
applications
local/bluez 5.62-1
Daemons for the bluetooth protocol stack
local/bluez-libs 5.62-1
Deprecated libraries for the bluetooth protocol stack
local/bluez-utils 5.62-1
Development and debugging utilities for the bluetooth protocol
stack
local/hidapi 0.11.0-1
Simple library for communicating with USB and Bluetooth HID devices
local/libldac 2.0.2.3-1
LDAC Bluetooth encoder library
local/pulseaudio-bluetooth 15.0-1
Bluetooth support for PulseAudio
local/sbc 1.5-2
Bluetooth Subband Codec (SBC) library
`
It’s not blocked

`[bluetooth]# pair C7:2E:F6:E7:A4:EE

Attempting to pair with C7:2E:F6:E7:A4:EE
Failed to pair: org.bluez.Error.ConnectionAttemptFailed
[bluetooth]# pair C7:2E:F6:E7:A4:EE
Attempting to pair with C7:2E:F6:E7:A4:EE
[DEL] Device A4:30:7A:63:0F:D2 A4-30-7A-63-0F-D2
[DEL] Device 7A:A2:53:04:0C:8A 7A-A2-53-04-0C-8A
Failed to pair: org.bluez.Error.ConnectionAttemptFailed
`

Very surprised to discover that my KS Immerse 75 headset doesn’t show up as a pairing option for Bluetooth on this Framework 13 running Ubuntu 23.04.

I’ve successfully paired other Bluetooth devices to the laptop and to the headphones. But the laptop and the headphones simply don’t see one another.

Any suggestions would be very welcome.


Chris