-1

tl;dr: Why does Linux not detect my Bluetooth X-Box controller?

My system:

  • New X-Box model 1914 controller with original firmware and new batteries.

  • Up-to-date Arch Linux with vanilla kernel:

    $ uname --kernel-name --kernel-release --kernel-version --machine --operating-system
    Linux 5.10.9-arch1-1 #1 SMP PREEMPT Tue, 19 Jan 2021 22:06:06 +0000 x86_64 GNU/Linux
    
  • Targus-branded Broadcom USB Bluetooth dongle:

    $ lsusb | grep -i bluetooth
    Bus 001 Device 004: ID 0a5c:21e8 Broadcom Corp. BCM20702A0 Bluetooth 4.0
    Bus 001 Device 005: ID 8087:0aaa Intel Corp. Bluetooth 9460/9560 Jefferson Peak (JfP)
    

What I've done:

  1. Installed latest xpadneo driver as of 2021-01-24:

    $ pacman --query xpadneo-dkms-git 
    xpadneo-dkms-git 0.9.r16.g2850d4d-1
    
  2. Installed latest firmware for the Bluetooth dongle:

    $ pacman --query broadcom-bt-firmware-git 
    broadcom-bt-firmware-git 12.0.1.1105_p3.r0.g68a7a8a-1
    
  3. Disabled Enhanced ReTransmission Mode:

    $ cat /sys/module/bluetooth/parameters/disable_ertm
    Y
    
  4. Rebooted, after which dmesg showed that the firmware was updated:

    $ sudo dmesg --notime | grep BCM20702A
    Bluetooth: hci0: BCM20702A1 (001.002.014) build 1764
    Bluetooth: hci0: BCM20702A1 'brcm/BCM20702A1-0a5c-21e8.hcd' Patch
    Bluetooth: hci0: BCM20702A1 (001.002.014) build 1764
    
  5. Manually loaded the xpadneo kernel driver:

    $ sudo modprobe xpad
    $ lsmod |grep xpad
    xpad                   40960  0
    ff_memless             20480  1 xpad
    
  6. Powered on the X-Box controller and enabled Bluetooth discovery mode (the "X" icon on the controller is blinking more quickly than when it powered on).

  7. Did a Bluetooth scan & device listing with bluetoothctl.

What I was expecting to happen: The controller should show up in the device listing after scanning for a while.

What actually happened: The controller does not show up, even though three other devices do show up.

The same goes for the GNOME Bluetooth setting dialogue: other devices show up, but not the X-Box controller.

xpadneo crosspost


Also tried:

  1. Verified that SDL 2.0.14 is installed:

    $ pacman --query sdl2
    sdl2 2.0.14-1
    
  2. Setting Privacy = device in /etc/bluetooth/main.conf and restarting the bluetooth service.

  3. Manually loaded hid-xpadneo kernel module:

    $ sudo modprobe hid-xpadneo
    $ lsmod |grep xpad
    xpad                   40960  0
    hid_xpadneo            24576  0
    ff_memless             20480  2 xpad,hid_xpadneo
    
l0b0
  • 50,672
  • 41
  • 197
  • 360

1 Answers1

0

The culprit was ControllerMode = bredr in /etc/bluetooth/main.conf, which I had set to work around an unrelated Bluetooth issue.

l0b0
  • 50,672
  • 41
  • 197
  • 360