Trying to connect two Controllers with Bluetooth

Hello Fedora Community,

I’ve encountered a pretty weird issue regarding using two game controllers via bluetooth. When i try to connect one controller it works fine with either one but once i try to connect the second one the DualShock 4 (or PS4) controller instantly disconnects. It shouldn’t be a hardware issue since it works fine on windows and even some clean linux installs. That’s the weird part i already had a clean fedora install where it worked but now i had to clean install fedora and it doesn’t work now again.

I already installed bluez-tools and bluez-hid2hci as other sources suggested but they did nothing.

Here are the information i could gather so far…

Bluetooth controller: Intel AX200 (built in into a MSI MEG X570 ACE)
Controller 1: DualShock 4 (or Playstation 4 controller… this one is the one instantly disconnecting)
Controller 2: DualSense (or Playstation 5 controller)

bluetoothctl show:

Controller 38:00:25:A9:BE:0F (public)
	Name: BlueZ 5.65
	Alias: BlueZ 5.65
	Class: 0x006c0104
	Powered: yes
	PowerState: on
	Discoverable: no
	DiscoverableTimeout: 0x000000b4
	Pairable: yes
	UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
	UUID: Handsfree Audio Gateway   (0000111f-0000-1000-8000-00805f9b34fb)
	UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
	UUID: Audio Sink                (0000110b-0000-1000-8000-00805f9b34fb)
	UUID: Headset                   (00001108-0000-1000-8000-00805f9b34fb)
	UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
	UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
	UUID: Audio Source              (0000110a-0000-1000-8000-00805f9b34fb)
	UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
	UUID: Device Information        (0000180a-0000-1000-8000-00805f9b34fb)
	Modalias: usb:v1D6Bp0246d0541
	Discovering: no
	Roles: central
	Roles: peripheral
Advertising Features:
	ActiveInstances: 0x00 (0)
	SupportedInstances: 0x0c (12)
	SupportedIncludes: tx-power
	SupportedIncludes: appearance
	SupportedIncludes: local-name
	SupportedSecondaryChannels: 1M
	SupportedSecondaryChannels: 2M
	SupportedSecondaryChannels: Coded

bluetooth when connecting either controller:

[bluetooth]# connect XX:XX:XX:XX:XX:XX 
Attempting to connect to XX:XX:XX:XX:XX:XX
Failed to connect: org.bluez.Error.Failed br-connection-create-socket
[CHG] Device XX:XX:XX:XX:XX:XX Connected: yes
[Wireless Controller]# 

systemctl status bluetooth:

Sep 18 10:33:04 fedora bluetoothd[1107]: Endpoint registered: sender=:1.82 path=/MediaEndpoint/A2DPSource/faststream_duplex
Sep 18 10:33:04 fedora bluetoothd[1107]: Endpoint registered: sender=:1.82 path=/MediaEndpoint/A2DPSink/opus_05
Sep 18 10:33:04 fedora bluetoothd[1107]: Endpoint registered: sender=:1.82 path=/MediaEndpoint/A2DPSource/opus_05
Sep 18 10:33:04 fedora bluetoothd[1107]: Endpoint registered: sender=:1.82 path=/MediaEndpoint/A2DPSource/opus_05_51
Sep 18 10:33:04 fedora bluetoothd[1107]: Endpoint registered: sender=:1.82 path=/MediaEndpoint/A2DPSource/opus_05_71
Sep 18 10:33:04 fedora bluetoothd[1107]: Endpoint registered: sender=:1.82 path=/MediaEndpoint/A2DPSink/opus_05_duplex
Sep 18 10:33:04 fedora bluetoothd[1107]: Endpoint registered: sender=:1.82 path=/MediaEndpoint/A2DPSource/opus_05_duplex
Sep 18 10:33:04 fedora bluetoothd[1107]: Endpoint registered: sender=:1.82 path=/MediaEndpoint/A2DPSource/opus_05_pro
Sep 18 11:08:26 fedora bluetoothd[1107]: profiles/input/device.c:ioctl_is_connected() Can't get HIDP connection info
Sep 18 11:08:28 fedora bluetoothd[1107]: profiles/input/device.c:control_connect_cb() connect to XX:XX:XX:XX:XX:XX: Host is down (112)

I already updated the DualSense controller to the latest firmware and I also tried resetting both controllers and pairing them while they are trusted. I get both the br-connection-create-socket and the can’t get HIDP connection info errors with both controllers but only the DualShock 4 controller disconnects even when i connect it first. Also the DualShock 4 controller will not connect or pair when the DualSense controller is connected.

I get that I am on Fedora 37 which is not really supported right now but in my previous installation it worked on 36 and after upgrading it also worked on 37. Only now after a fresh install it’s broken again.

I would appreciate any help because I’m sick after sinking hours into this only to get generic error messages which don’t tell me anything. Thanks in advance.

This sounds like an issue with the controllers conflicting in the channel they connect to and/or device IDs, and the dualsense is getting priority on bluetooth. It is never possible to have 2 devices that the system sees with the same IDs active at the same time due to conflicts in addressing.

It seems to be the device ID maybe. They get the same result when pairing

Pairing PS4 controller

[bluetooth]# pair (PS4 controller)
Attempting to pair with XX:XX:XX:XX:XX:X
[CHG] Device XX:XX:XX:XX:XX:XX Connected: yes
[CHG] Device XX:XX:XX:XX:XX:XX Bonded: yes
[CHG] Device XX:XX:XX:XX:XX:XX UUIDs: 00001124-0000-1000-8000-00805f9b34fb
[CHG] Device XX:XX:XX:XX:XX:XX UUIDs: 00001200-0000-1000-8000-00805f9b34fb
[CHG] Device XX:XX:XX:XX:XX:XX ServicesResolved: yes
[CHG] Device XX:XX:XX:XX:XX:XX Paired: yes
Pairing successful
[CHG] Device XX:XX:XX:XX:XX:XX WakeAllowed: yes

Pairing PS5 controller

[Wireless Controller]# pair (PS5 controller)
Attempting to pair with XX:XX:XX:XX:XX:XX
[CHG] Device XX:XX:XX:XX:XX:XX Connected: yes
[CHG] Device XX:XX:XX:XX:XX:XX Bonded: yes
[CHG] Device XX:XX:XX:XX:XX:XX UUIDs: 00001124-0000-1000-8000-00805f9b34fb
[CHG] Device XX:XX:XX:XX:XX:XX UUIDs: 00001200-0000-1000-8000-00805f9b34fb
[CHG] Device XX:XX:XX:XX:XX:XX ServicesResolved: yes
[CHG] Device XX:XX:XX:XX:XX:XX Paired: yes
Pairing successful
[CHG] Device XX:XX:XX:XX:XX:XX WakeAllowed: yes

Note the two UUIDs assigned are completely the same.

So if this is it how can i change this? And if not how can i otherwise check for the assigned IDs or the channel they are using?

Also like i posted it here i paired the PS4 controller first and then paired the PS5 controller while the ps4 controller was still connected but they get both still the same UUIDs. Ironic doesn’t UUID stand for “something” unique identifier but when they get the same it’s not unique at all :grinning:

Edit: If unclear this time again the ps4 controller disconnected without any error or anything it just froze like usual and then after a few seconds it turns off and i get a device disconnected notification in the terminal.

[CHG] Device XX:XX:XX:XX:XX:XX ServicesResolved: no
[CHG] Device XX:XX:XX:XX:XX:XX Connected: no

Edit 2: with steam closed the PS4 controller stays connected for almost a minute until it completely freezes and disconnects. During this minute though it is barely useable. Also when both are connected the PS5 controller also has connection issues which further suggests that the bluetooth controller is trying to connect both as one maybe:

A device UUID may be hard coded within the device and assigned by the mfgr. Unlike drives, file systems, partitions, etc. where the UUID is assigned at the time it is created (and may or may not be unique when compared to other systems).

UUIDs that are not unique do conflict. Locally assigned UUIDs are normally unique within that system. UUIDs are not guaranteed to be unique if assigned by different systems.

Then any guess as to how it did work on my previous install or under windows?

I’m contemplating about clean installing Fedora 36, updating it and then updating that to fedora 37 again. I mean in my last install which i updated there was no broken theming. Though next to my controllers both working it also imported the Software center being broken and my wifi having had a little annoyance so I’m not totally sold on the idea yet if you can offer me anything better.

Edit: I know i edit waaay too much. I just wanted to add that when i pair the PS5 controller first the ps4 controller won’t even pair and i just get a “Failed to pair: org.bluez.Error.AuthenticationTimeout”

Hey!
I’ve been experiencing the same problem, except this time with a Sony DualSense controller and a genuine Nintendo Wii remote. They worked in F36, but don’t work in F37, which I installed on 2022-10-16. I connect one remote, try to connect the other and the second one disconnects after a few seconds (while freezing my laptop in the process). The controllers share the same UUIDs. I use an Intel AX200 WiFi/Bluetooth chip which hasn’t caused any problems in the past. I suspect it’s something to do with the bluez version used, which is 5.64 in F36 and 5.65 in F37 but I can’t find anything else.

bluetoothctl info E0:0C:7F:03:7D:DB:

Device E0:0C:7F:03:7D:DB (public)
	Name: Nintendo RVL-CNT-01
	Alias: Nintendo RVL-CNT-01
	Class: 0x00002504
	Icon: input-gaming
	Paired: yes
	Bonded: yes
	Trusted: yes
	Blocked: no
	Connected: yes
	WakeAllowed: yes
	LegacyPairing: yes
	UUID: Service Discovery Serve.. (00001000-0000-1000-8000-00805f9b34fb)
	UUID: Human Interface Device... (00001124-0000-1000-8000-00805f9b34fb)
	UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
	Modalias: usb:v057Ep0306d8614

bluetoothctl info 7C:66:EF:23:B9:9D:

Device 7C:66:EF:23:B9:9D (public)
	Name: Wireless Controller
	Alias: Wireless Controller
	Class: 0x00002508
	Icon: input-gaming
	Paired: yes
	Bonded: yes
	Trusted: yes
	Blocked: no
	Connected: yes
	WakeAllowed: yes
	LegacyPairing: no
	UUID: Human Interface Device... (00001124-0000-1000-8000-00805f9b34fb)
	UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
	Modalias: usb:v054Cp0CE6d0100

The output when I connected the Wiimote after the DualSense:

[CHG] Device 7C:66:EF:23:B9:9D Connected: yes
[CHG] Device E0:0C:7F:03:7D:DB ServicesResolved: no
[CHG] Device E0:0C:7F:03:7D:DB Connected: no

I’m not sure what else I can do, the DualSense always takes priority regardless of connection order.

It is not a F37 issue. Currently I’m back on F36 (with a clean install) and I still experience these issues.

This seems quite common. The fact that the controllers share UUID (or MAC) means the system cannot properly manage the connection due to conflicts in addressing the devices. UUIDs are supposedly unique and having 2 different devices on the same system with the same UUID will always cause communication problems.

Since UUIDs are likely hardcoded into the device by the manufacturer, how did Fedora successfully handle these conflicts previously and where did it go wrong (a software regression, maybe)? Thanks anyways for your insight.