protonscr

Steam Controller works in Desktop/Big Picture but not in-game [regression from libwacom 1.4]

steamclosed Steam controllerDistro Family: Mandriva
ValveSoftware/steam-for-linux#7230 · opened 2020-06-27 by akien-mga · updated 2023-02-03 · 6 comments · github
Aakien-mga 2020-06-27 github

Your system information

  • Steam client version (build number or date): Release build, built June 4 2020, at 05:51:01 (also reproducible with today's client beta branch)
  • Distribution (e.g. Ubuntu): Mageia Cauldron with kernel 5.7.5 (system details at the end)
  • Opted into Steam client beta?: Yes, but same issue in stable build
  • Have you checked for system updates?: Yes

Please describe your issue in as much detail as possible:

I used to use my Steam Controller on this Linux system without any issue, and last used it successfully maybe around June 20 or 21, then didn't get to play for a few days.

When I tried it yesterday (June 25) while running the Steam client beta, the controller wouldn't get picked up in the games I tried (Baba Is You, Into The Breach, A Short Hike). Today it's the same, and the issue is the same with the Steam release build. The controller input works fine in Desktop mode or in Big Picture.

In game, some input seems to work, but it appears to behave as if the controller is using the Desktop mode, and thus not being registered as an Xinput gamepad. I confirmed this with Baba Is You (which should "No controller detected" in its controller settings) and a Linux gamepad testing tool (https://github.com/godotengine/godot-demo-projects/tree/master/misc/joypads ran with Godot 3.2.2 in Steam).

Here's the output from Steam (run in a terminal) when:

  • Connecting the Steam Controller
  • Running Baba Is You, then quitting
  • Disconnecting the Steam Controller

https://gist.github.com/akien-mga/bfe3f234feb64ee2e7ef898fbec11c19

I tried various things to solve it but with no success:

  • Switched back and forth between Beta and Stable branches of the Steam client
  • System reboots
  • rmmod hid_steam or blacklisting hid_steam in /etc/modprobe.d
  • Connecting the controller before opening Steam, or after opening Steam
  • Changing the batteries
  • Rolling back the firmware
  • Reinstalling the BLE firmware update after rollback
  • Tweaking the Desktop controller mapping to remove any mouse action
  • Booting an earlier kernel from a time where it was working fine (5.6.15)
  • Upgrading Mageia's steam package from 1.0.0.61 to 1.0.0.64 (and thus matching udev rules for the controller)
  • Reinstalled Steam (deleting ~/.local/share/Steam and ~/.steam)
  • Running Steam in a minimal WM (Openbox) instead of my usual KDE Plasma, in case a recent Plasma update might have impacted input
  • Rolling back recent libinput 1.15.6 update to 1.15.5

None of this helped :|

One thing which did help somewhat was to disable the Steam overlay, which then made the controller partially functional, but with only some buttons working and a wrong mapping. From what I read, Steam needs the overlay active for proper gamepad mode, so I guess that's why. Before this "regression", it worked fine with the overlay in any case.

Any advance welcome to debug this further :)

Note: I found this Reddit issue from two days ago which describes similar symptoms, though on macOS Catalina.

Steps for reproducing this issue:

  1. Run Steam on Mageia Cauldron
  2. Connect Steam Controller
  3. Run a game that supports gamepads, and see that the controller doesn't work

System info

$ inxi -CSG
System:    Host: cauldron Kernel: 5.7.5-desktop-1.mga8 x86_64 bits: 64 Desktop: KDE Plasma 5.19.2 Distro: Mageia 8 mga8 
CPU:       Topology: Quad Core model: Intel Core i7-8705G bits: 64 type: MT MCP L2 cache: 8192 KiB 
           Speed: 896 MHz min/max: 800/3100 MHz Core speeds (MHz): 1: 896 2: 879 3: 892 4: 1035 5: 1010 6: 1123 7: 1004 
           8: 1003 
Graphics:  Device-1: Intel HD Graphics 630 driver: i915 v: kernel 
           Device-2: Advanced Micro Devices [AMD/ATI] Polaris 22 XL [Radeon RX Vega M GL] driver: amdgpu v: kernel 
           Device-3: Cheng Uei Precision Industry (Foxlink) HP Wide Vision FHD Camera type: USB driver: uvcvideo 
           Display: x11 server: Mageia X.org 1.20.8 driver: intel,v4l resolution: 1920x1080~60Hz 
           OpenGL: renderer: Mesa Intel HD Graphics 630 (KBL GT2) v: 4.6 Mesa 20.1.1
VVladimir-A 2020-06-28 github

I have same trouble. System Information

DDar13 2020-06-28 github

I have similar issues with a wired Xbox 360 gamepad, and this only occurred after updating libwacom to version 1.4. Upstream libwacom has an issue open where someone has narrowed down the issue.

Aakien-mga 2020-06-28 github

@Dar13 Awesome, thanks! I can confirm that I had an upgrade to libwacom 1.4 on June 24:

$ rpm -qa --last | grep wacom
lib64wacom-devel-1.4-1.mga8.x86_64            2020-06-24T22:17:28 CEST
libwacom-1.4-1.mga8.x86_64                    2020-06-24T22:17:27 CEST
lib64wacom2-1.4-1.mga8.x86_64                 2020-06-24T22:17:27 CEST

I backported the upstream bugfix PR to Mageia's package, and it fixes the issue.

So this is not a Steam issue and could be closed. I'll leave that to bug triagers to decide though, as I think it might also be useful to keep this report up for a few days to help other affected users find what's causing the regression.

Given the bug, I expect a libwacom 1.4.1 fixing it to be released soon.

Rryester19 2020-06-28 github

libwacom 1.4-2 was released to the Arch extra repo, which included the udev fix. Everything works fine for me again.

I should really start looking at open github issues before nuking my Arch installation trying to fix it

Aakien-mga 2020-06-30 github

libwacom 1.4.1 has been released with this fix.

If you experience the issue, please contact your distro maintainer for libwacom and ask for an update.

Kkisak-valve maintainer 2023-02-03 github

Closing as fixed on libwacom's side years ago.

Nothing extracted yet.