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/LinuxTargus-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:
Installed latest xpadneo driver as of 2021-01-24:
$ pacman --query xpadneo-dkms-git xpadneo-dkms-git 0.9.r16.g2850d4d-1Installed latest firmware for the Bluetooth dongle:
$ pacman --query broadcom-bt-firmware-git broadcom-bt-firmware-git 12.0.1.1105_p3.r0.g68a7a8a-1Disabled Enhanced ReTransmission Mode:
$ cat /sys/module/bluetooth/parameters/disable_ertm YRebooted, after which
dmesgshowed 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 1764Manually loaded the xpadneo kernel driver:
$ sudo modprobe xpad $ lsmod |grep xpad xpad 40960 0 ff_memless 20480 1 xpadPowered 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).
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.
Also tried:
Verified that SDL 2.0.14 is installed:
$ pacman --query sdl2 sdl2 2.0.14-1Setting
Privacy = devicein /etc/bluetooth/main.conf and restarting the bluetooth service.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