Every article tag can be clicked to get a list of all articles in that category. Every article tag also has an RSS feed! You can customize an RSS feed too!
Help debugging - When playing with 4 controllers, one random controller goes unresponsive
Page: 1/2»
  Go to:
azuredusk10 Feb 26
I've been having trouble playing 4-player local multiplayer games on my machine. I regularly have 3 friends over to play, but one person always gets left out because the Pop!_OS system doesn't work properly with 4 controllers. Asking for help to debug the problem, as I'm not sure what could be going wrong (issue with hardware, issue with the kernel, something else), and had no response on the Pop!_OS subreddit unfortunately.


What happens:

When playing a 4-player game with 4 controllers connected, one random controller will always become unresponsive.

In this state, the Bluetooth settings window shows that the controller is connected, but neither Steam nor the OS itself recognises any button presses or touchpad swipes.

Disconnecting and reconnecting the controller does not take the controller out of this state. Only restarting the PC gets the controller out of this state.


How I've reproduced it:

  • Connect 4 controllers. The following set-ups consistently cause this problem:

    • Four Dualshock 4 controllers connected via Bluetooth

    • Three Dualshock 4 controllers connected via Bluetooth and one Dualshock 4 controller connected wired

    • Three Dualshock 4 controllers connected via Bluetooth and one Steam Deck connected via Steam Link (input only; no audio or display) over Wifi -> router, and then router -> PC via ethernet cable.

  • Press inputs simultaneously on all controllers all at once. This can be in a Steam game, or not in a game but in the Steam Big Picture Mode, or just swiping the touchpads on the controllers on the desktop without Steam open (setup #3 doesn't apply here)

  • After several minutes, one of the controllers enters an unresponsive state and will not become responsive again until the Bluetooth adaptor is toggled off then on, or the PC is restarted.



What I've tried:

  • Using different DS4 controllers. I replaced 2 controllers which I thought were faulty, but the issue persists regardless of which DS4 controllers I'm using

  • Using 3 DS4 controllers via bluetooth and leaving 1 person out of the game. This works without issue every time, but it means one of our friends can't play.

  • Using 3 DS4 controllers via bluetooth and 1 Steam Deck over ethernet. The problem persists in this setup, although it's never the Steam Deck that becomes unresponsive.


I'm at a loss for where the problem is. Any advice on what the problem could be? Or what I could do to try to solve it?

Failing that, is there some different hardware I should be using? I really don't want to have to switch to Windows. Thank you in advance.

System info:

OS: Pop!_OS 22.04 LTS (64-bit)
Motherboard: ASRock Z690M-ITX/ax
Processor: 12 Gen Intel Core i5-12600 x 12
Graphics: AMD Radeon rx 6700 xt

Networking info (lspci -nnk | grep net -A2
)


0000:00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection (17) I219-V [8086:1a1d] (rev 11)

Subsystem: ASRock Incorporation Ethernet Connection (17) I219-V \[1849:1a1d\]  Kernel driver in use: e1000e  Kernel modules: e1000e 

--

0000:04:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller [10ec:8125] (rev 05)

Subsystem: ASRock Incorporation RTL8125 2.5GbE Controller \[1849:8125\]  Kernel driver


Last edited by azuredusk10 on 4 March 2024 at 9:21 pm UTC
whizse Feb 26
Does this only happen when playing games using Steam or can you reproduce it in a normal desktop environment? E.g. in something like SuperTuxKart or just mashing buttons in a control panel like jstest-gtk?
azuredusk10 Feb 26
Quoting: whizseDoes this only happen when playing games using Steam or can you reproduce it in a normal desktop environment? E.g. in something like SuperTuxKart or just mashing buttons in a control panel like jstest-gtk?

I was able to reproduce it by wiggling the touch pads of the controllers all at once without any games open, just with the Bluetooth settings window open.

I was also able to reproduce it playing Super Tux Cart after 8 minutes of button mashing all 4 controllers at once. I checked the kernel logs after playing - /var/log/kernellog.txt. The last line corresponds to about the time when one of the controllers went unresponsive.
 
Feb 26 23:46:00 pop-os kernel: [   12.624755] input: Wireless Controller as /devices/pci0000:00/0000:00:14.0/usb1/1-14/1-14:1.0/bluetooth/hci0/hci0:512/0005:054C:09CC.0004/input/input18
Feb 26 23:46:00 pop-os kernel: [   12.625118] input: Wireless Controller Motion Sensors as /devices/pci0000:00/0000:00:14.0/usb1/1-14/1-14:1.0/bluetooth/hci0/hci0:512/0005:054C:09CC.0004/input/input19
Feb 26 23:46:00 pop-os kernel: [   12.625252] input: Wireless Controller Touchpad as /devices/pci0000:00/0000:00:14.0/usb1/1-14/1-14:1.0/bluetooth/hci0/hci0:512/0005:054C:09CC.0004/input/input20
Feb 26 23:46:00 pop-os kernel: [   12.625712] playstation 0005:054C:09CC.0004: Registered DualShock4 controller hw_version=0x0000b408 fw_version=0x0000a00a
Feb 26 23:46:00 pop-os kernel: [   12.768758] playstation 0005:054C:09CC.0005: unknown main item tag 0x0
Feb 26 23:46:00 pop-os kernel: [   12.769567] playstation 0005:054C:09CC.0005: hidraw4: BLUETOOTH HID v1.00 Gamepad [Wireless Controller] on f4:26:79:6c:4d:8b
Feb 26 23:46:00 pop-os kernel: [   12.832430] input: Wireless Controller as /devices/pci0000:00/0000:00:14.0/usb1/1-14/1-14:1.0/bluetooth/hci0/hci0:768/0005:054C:09CC.0005/input/input21
Feb 26 23:46:00 pop-os kernel: [   12.832746] input: Wireless Controller Motion Sensors as /devices/pci0000:00/0000:00:14.0/usb1/1-14/1-14:1.0/bluetooth/hci0/hci0:768/0005:054C:09CC.0005/input/input22
Feb 26 23:46:00 pop-os kernel: [   12.832992] input: Wireless Controller Touchpad as /devices/pci0000:00/0000:00:14.0/usb1/1-14/1-14:1.0/bluetooth/hci0/hci0:768/0005:054C:09CC.0005/input/input23
Feb 26 23:46:00 pop-os kernel: [   12.834580] playstation 0005:054C:09CC.0005: Registered DualShock4 controller hw_version=0x0000b40c fw_version=0x0000a00a
Feb 26 23:46:01 pop-os kernel: [   12.920728] playstation 0005:054C:09CC.0006: unknown main item tag 0x0
Feb 26 23:46:01 pop-os kernel: [   12.921553] playstation 0005:054C:09CC.0006: hidraw5: BLUETOOTH HID v1.00 Gamepad [Wireless Controller] on f4:26:79:6c:4d:8b
Feb 26 23:46:01 pop-os kernel: [   12.980468] input: Wireless Controller as /devices/pci0000:00/0000:00:14.0/usb1/1-14/1-14:1.0/bluetooth/hci0/hci0:1024/0005:054C:09CC.0006/input/input24
Feb 26 23:46:01 pop-os kernel: [   12.980682] input: Wireless Controller Motion Sensors as /devices/pci0000:00/0000:00:14.0/usb1/1-14/1-14:1.0/bluetooth/hci0/hci0:1024/0005:054C:09CC.0006/input/input25
Feb 26 23:46:01 pop-os kernel: [   12.980777] input: Wireless Controller Touchpad as /devices/pci0000:00/0000:00:14.0/usb1/1-14/1-14:1.0/bluetooth/hci0/hci0:1024/0005:054C:09CC.0006/input/input26
Feb 26 23:46:01 pop-os kernel: [   12.981126] playstation 0005:054C:09CC.0006: Registered DualShock4 controller hw_version=0x0000b408 fw_version=0x0000a00a
Feb 26 23:54:36 pop-os kernel: [  528.650641] playstation 0005:054C:09CC.0006: DualShock4 input CRC's check failed


When I view a copy of this log in the terminal via `sudo dmesg`, the last line appears in red while all others appear white.

Last edited by azuredusk10 on 27 February 2024 at 12:48 am UTC
whizse Feb 27
Quoting: azuredusk10I was able to reproduce it by wiggling the touch pads of the controllers all at once without any games open, just with the Bluetooth settings window open.
The reason I asked is Valve pretty much ships their own drivers for some controllers, so it's good to rule out Steam Input as a source of the problem.

This does look like a problem with the upstream driver. Sony rewrote the Dualshock driver in 6.2 and there where further improvements in later kernel releases.

What kernel version are you running?
Valck Feb 27
Just a stupid thought out of the left field – maybe try connecting five controllers? I wouldn't expect it to allow four controllers to work, but hey, you never know...
whizse Feb 27
Quoting: ValckJust a stupid thought out of the left field – maybe try connecting five controllers? I wouldn't expect it to allow four controllers to work, but hey, you never know...
I love your way of thinking. Solving the bug by growing the friendship circle!
azuredusk10 Feb 27
Quoting: whizse
Quoting: azuredusk10I was able to reproduce it by wiggling the touch pads of the controllers all at once without any games open, just with the Bluetooth settings window open.
The reason I asked is Valve pretty much ships their own drivers for some controllers, so it's good to rule out Steam Input as a source of the problem.

This does look like a problem with the upstream driver. Sony rewrote the Dualshock driver in 6.2 and there where further improvements in later kernel releases.

What kernel version are you running?

That's really helpful information, thank you. I'm on kernel 6.6.10-76060610-generic

One thought did cross my mind - I've been using a GNOME extension that displays the controllers' battery level in the top bar: https://github.com/thankjura/ds4battery/releases

It hasn't had any significant updates since kernel 6.2 was released so I wonder if it could be causing any issues? I'll disable the extension and see how that goes.

I'll also try with 5 Dualshock 4 controllers (one extra connected but not in use), what the heck! I've got a spare one banished to the cupboard as I thought it was the culprit!

I also searched online for the error message from my logs about "input CRC's check failed". Some DS4Windows users said they get a similar error on Windows when using counterfeit controllers. I'll try opening the controllers up and check if they look like the one that came with my old PS4. I did buy the other controllers refurbished or second hand, so even though from the outside they look and feel pretty much identical and they all have the same weight, there's still a chance they're not quite right.

Thanks both so much for your responses, I really appreciate it
azuredusk10 Feb 27
Some further testing done:

Controller responsiveness
A couple of the controllers are less responsive than the others. When moving the joysticks rapidly from left to right in jstest-gtk, these controllers don't report the values as frequently as the other controllers - the axis scale jitters slightly, whereas the other controllers report a smooth range from one extreme to the other. Navigating the menus in Steam also feels slightly more sluggish when using them. And when they are left in the neutral position, jstest-gtk registers a value of over ±100 for them (when the maximum is about ±37,000) while the others are much closer to 0 when in neutral. So I get the impression these controllers are worn out.

Dualshock battery percentage GNOME extension
Disabling this extension had no effect. We still had 1 controller go unresponsive about 10 minutes into play. It wasn't one of the less responsive controllers though; it was the one which seemed the most responsive in jstest-gtk.

These were the errors from the kernel log. The timestamps of either of the last 2 lines could correspond to the time the controller went unresponsive.
 
Feb 27 19:29:12 pop-os kernel: [ 1293.828369] playstation 0005:054C:09CC.0003: DualShock4 input CRC's check failed
Feb 27 19:32:26 pop-os kernel: [ 1488.505198] playstation 0005:054C:09CC.0003: DualShock4 input CRC's check failed
Feb 27 19:36:57 pop-os kernel: [ 1759.124135] playstation 0005:054C:09CC.0004: DualShock4 input CRC's check failed
Feb 27 19:46:48 pop-os kernel: [ 2350.193528] Bluetooth: Unexpected start frame (len 83)
Feb 27 19:49:32 pop-os kernel: [ 2513.804332] playstation 0005:054C:09CC.0005: DualShock4 input CRC's check failed



Using a bluetooth keyboard instead of a controller for P4
This worked! Player 4 used a wireless Apple Magic Keyboard 2 instead of the least responsive DS4 controller and this worked without problems. All 4 players were able to play continuously for a half hour game without anyone's input method going unresponsive. No errors were generated in the kernel log.


I'm still not sure what the problem was, but at least I have found a workaround. I think I'll eventually try and replace the less responsive controllers with new DS4 controllers and see if that solves the issue.

Last edited by azuredusk10 on 27 February 2024 at 8:57 pm UTC
whizse Feb 29
Quoting: azuredusk10I'm still not sure what the problem was, but at least I have found a workaround. I think I'll eventually try and replace the less responsive controllers with new DS4 controllers and see if that solves the issue.
I would be surprised if this wasn't a bug in the driver and not something you can configure away. The driver is new, and considering that we are a niche platform, running four controllers at once with this driver might be totally untested.

If you have the time, consider filing a bug report in the kernel Bugzilla with the errors from the kernel log. File it under Product -> Drivers, and Component -> Input Devices.
Highball Feb 29
Quoting: azuredusk10Using a bluetooth keyboard instead of a controller for P4
This worked! Player 4 used a wireless Apple Magic Keyboard 2 instead of the least responsive DS4 controller and this worked without problems.

With bluetooth devices you have different profiles that would be loaded. What you are telling me here is, it's when gamecontroller profile gets loaded 4 times there are issues. 3 game controller profiles and keyboard profile is fine.

I wonder if it is a regressions. You could check pretty easily. Downloaded an older live boot CD from Ubuntu or what ever distro you use that's pre kernel 6.2. I think Kernel 5.15 and 5.19 were pretty good, so a distro release from that Kernel era. That, or you could download an older kernel from your repo and there is also Linux-TKG that will still build older kernel versions. Linux-TKG is how I build my kernel. I think burning the liveboot image to a USB thumbdrive and booting from that would be the easiest for now.

Edit: One other thing. https://wiki.ubuntu.com/DebuggingBluetooth

Last edited by Highball on 29 February 2024 at 7:22 pm UTC
Thank you Highball and Whizse! I will try and reproduce the bug on a kernel pre 6.2 (Ubuntu 22.04 LTS looks like it comes with kernel 5.17 so I'll see if that's still the case).

Whatever the outcome, I'll file a bug in the kernel Bugzilla and post the link in this thread. I've found the category you mentioned whizse - thank you very much. Fingers crossed this ends up removing a barrier to PlayStation users who want to move Linux.

Last edited by azuredusk10 on 2 March 2024 at 1:02 am UTC
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register


Or login with...
Sign in with Steam Sign in with Google
Social logins require cookies to stay logged in.