Score:0

Using DualShock 4 and DualSense controller over Bluetooth

cn flag

As I haven't had any success on unix stackexchange, I try here. Maybe I'm impatient, maybe this is not the good way to ask for help, feel free to tell me!

For some time I've used a Playstation DualShock 4 controller over Bluetooth to play games on my Linux Box. Details about the box:

  • Hardware: Asrock Beebox N3150
  • OS: Ubuntu Server 20.04.3
  • Software: Kodi + Retroarch

Now I got a DualSense controller. I can pair it over Bluetooth to use it the same way than the DS4. I can still use the DS4 if I disconnect the DualSense controller first. But I cannot get the 2 controllers working at the same time.

What I've tried:

  • Testing the same thing on another computer (also based on Ubuntu 20.04) => it works, I can play a multiplayer game on Retroarch
  • Testing to install a newer kernel on the box, namely the 5.13 kernel (through HWE as described here) in order to get the official hid_playstation driver supported by Sony => it did not helped, although I ensured that I was using the correct driver for the DualSense
  • Testing using first a USB connection to autorise the device, then connect over Bluetooth => no improvement
  • Testing using one controller over Bluetooth, the other one over USB => it works

What I suspect (hypothesis - I may be wrong):

  • The issue may not be linked to the Bluetooth connection. I used bluetoothctl to pair my devices, and encountered no problem in the pairing process. blueoothctl told me that the device was paired, and the LED on the devices moved from blinking to fix color
  • The issue is probably linked to the driver, or in any other stuff related to communicating with the device: when the second controller (either DualSense or DS4) is connected, it stays with a fixed color (grey for the DS4, blue for the DualSense) for some time (usually less than 1 minute) and then shutdown. So I guess it means that it's Bluetooth-connected, but it does not get the answer that it wants after some time.

Does somebody can help me to correct this problem? I can provide log of whatever is needed, and go back and forth from 5.4 to 5.13 kernel (but I'm not sure it's needed because it does work one controller at a time on 5.4).

UPDATE: To ensure that the problem is not hardware-related,I bought an external bluetooth USB dongle : TP-link UB500. I was surprised to discover that it didn't work out-of-the-box: I had to install a very recent kernel (>= 5.15.4) as mentionned here. So I went with this tutorial and installed 5.15.13. After downloading required firmware files, I could boot on the new kernel and ... got back at the same point: I can pair both my DS4 and DualSense with my new Bluetooth adapter, but only the first one connected produces some logs in /var/log/kern.log and is reckognized as input device (although the second is Bluetooth-connected). I also tried disabling and blacklisting the new hid_playstation driver, but no difference at all. So I'm still stuck with this issue:

  • Second device is connected according to bluetoothctl
  • Second device is not seen either by the kernel or by Xorg, or end-user applications
  • No configuration for the second device is created in /sys/bus/hid/devices or in /sys/devices/virtual/misc/uhid
mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.