atar-axis / xpadneo

Advanced Linux Driver for Xbox One Wireless Controller (shipped with Xbox One S)
https://atar-axis.github.io/xpadneo/
GNU General Public License v3.0
1.88k stars 110 forks source link

Xbox Series X|S Controller doesn't reconnect without pairing again #336

Closed gbdlin closed 2 years ago

gbdlin commented 2 years ago

Version of xpadneo

v0.9-93-gcf392a7

Controller Model

Connection mode

Installed Software

Severity / Impact

Describe the Bug

The controller can be paired properly (it rumbles and X logo stays lit, input works in steam and when testing with evtest), but after turning it off and on again it doesn't connect anymore. I have to remove the device from paired devices and pair it again. It reconnects properly on Winndows on the same PC (with the same bluetooth controller).

Steps to Reproduce

  1. Pair your controller
  2. Turn off the controller
  3. Turn it back on
  4. Controller doesn't reconnect to the PC. Trying to manually connect it using bluetoothctl or KDE bluetooth applet doesn't work either.

Expected Behavior

Controller should automatically connect back to the PC when turned on. At least it should allow to connect manually without pairing it again.

Screenshots / GIFs / Videos

Not applicable

System Information

# uname -a
Linux <redacted> 5.13.0-30-generic #33-Ubuntu SMP Fri Feb 4 17:03:31 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
# xxd -c20 -g1 /sys/module/hid_xpadneo/drivers/hid:xpadneo/0005:045E:*/report_descriptor | tee >(cksum)
00000000: 05 01 09 05 a1 01 85 01 09 01 a1 00 09 30 09 31 15 00 27 ff  .............0.1..'.
00000014: ff 00 00 95 02 75 10 81 02 c0 09 01 a1 00 09 33 09 34 15 00  .....u.........3.4..
00000028: 27 ff ff 00 00 95 02 75 10 81 02 c0 05 01 09 32 15 00 26 ff  '......u.......2..&.
0000003c: 03 95 01 75 0a 81 02 15 00 25 00 75 06 95 01 81 03 05 01 09  ...u.....%.u........
00000050: 35 15 00 26 ff 03 95 01 75 0a 81 02 15 00 25 00 75 06 95 01  5..&....u.....%.u...
00000064: 81 03 05 01 09 39 15 01 25 08 35 00 46 3b 01 66 14 00 75 04  .....9..%.5.F;.f..u.
00000078: 95 01 81 42 75 04 95 01 15 00 25 00 35 00 45 00 65 00 81 03  ...Bu.....%.5.E.e...
0000008c: 05 09 19 01 29 0c 15 00 25 01 75 01 95 0c 81 02 15 00 25 00  ....)...%.u.......%.
000000a0: 75 01 95 04 81 03 05 0c 0a b2 00 15 00 25 01 95 01 75 01 81  u............%...u..
000000b4: 02 15 00 25 00 75 07 95 01 81 03 05 0f 09 21 85 03 a1 02 09  ...%.u........!.....
000000c8: 97 15 00 25 01 75 04 95 01 91 02 15 00 25 00 75 04 95 01 91  ...%.u.......%.u....
000000dc: 03 09 70 15 00 25 64 75 08 95 04 91 02 09 50 66 01 10 55 0e  ..p..%du......Pf..U.
000000f0: 15 00 26 ff 00 75 08 95 01 91 02 09 a7 15 00 26 ff 00 75 08  ..&..u.........&..u.
00000104: 95 01 91 02 65 00 55 00 09 7c 15 00 26 ff 00 75 08 95 01 91  ....e.U..|..&..u....
00000118: 02 c0 c0                                                     ...
2986910699 1363

Controller and Bluetooth Information

xpadneo-btmon.txt (pairing process, as simple reconnect doesn't work)

xpadneo-dmesg.txt

8087:0029 Intel Corp. AX200 Bluetooth

xpadneo-lsusb.txt

Additional Context

I've tried various tweaks mentioned in different threads, like:

In all possible combinations. At first I wasn't able to pair my controller at all, but it started working after pairing it at least once on Windows (through bluetooth. Pairing via dongle or connecting through the USB cable didn't work, there was no firmware updates either).

gbdlin commented 2 years ago

I've resolved the issue recently by completely removing IdentityResolvingKey section (together with data inside this section) from /var/lib/bluetooth/adapter_mac/device_mac/info file. This issue and workaround for it is described on Arch wiki.