protonscr

Steam randomly stopped detecting PS4 controller on Slackware 14.2

steamclosed General controller / Steam InputDistro Family: Slackware
ValveSoftware/steam-for-linux#7506 · opened 2020-12-04 by MollyMaclachlan · updated 2021-01-03 · 12 comments · github
MMollyMaclachlan 2020-12-04 github

Your system information

  • Steam client version: November 30th+ Beta (last successfully tested version was November 25th, every version since November 30th until the present has been tested and does not work)
  • Distribution: Slackware 14.2
  • Opted into Steam client beta?: Yes
  • Have you checked for system updates?: Yes

Please describe your issue in as much detail as possible:

When I first got my PS4 Dualshock 4 controller, Steam was successfully detecting it and I could play Steam games with it. Randomly at some point after 25th of November, the last time I successfully used it with Steam, Steam stopped detecting my controller. The controller still works with non-Steam games on the computer.

I've seen the workaround at https://steamcommunity.com/app/221410/discussions/0/1693795812304458372/, but I don't have a 99-steam-controller-perms.rules file. I do have a 99-fuse.rules file, so I'm not sure if this could be causing a clash or not.

Running steam from the console and loading the controller settings, as well as attempting to use Dark Souls Remastered with the controller, gives the following log: https://gist.github.com/MurdoMaclachlan/effc00fc3b17d4f4e409a1c50f76164d

Steps for reproducing this issue:

  1. Connect the PS4 Dualshock 4 controller.
  2. Load a game or controller settings.
  3. In-game, the controller will not work, the settings will say no controller connect.
Kkisak-valve maintainer 2020-12-04 github

Hello @MurdoMaclachlan, in general, udev rules bundled with Steam come from https://github.com/ValveSoftware/steam-devices/blob/master/60-steam-input.rules which is also can be bundled in the Steam packaging and haven't been a late load like 99-* for a long time. Udev rules don't change without your (or the package maintainers) intervention, so that doesn't really explain why it was working before and then broke.

MMollyMaclachlan 2020-12-04 github

Does this mean there should be a 60-steam-input.rules file in that folder, then? I don't seem to have that one either.

MMollyMaclachlan 2020-12-07 github

Out of interest, I added the 60-steam-input.rules file and that changed nothing, so instead I added the 99-steam-input.rules and now Steam detects controller fine. Does nothing to explain why it worked initially, though.

Kkisak-valve maintainer 2020-12-07 github

Glad to hear you got it working. It may be worthwhile to also mention your experience to the Slackware package maintainer for Steam if there is one.

4414n 2020-12-07 github

I also had this issue after getting a new DualShock4 controller.
@MurdoMaclachlan what steam package have you installed on Slackware? The one from Alien Bob?
If so, unless you've created your own updated package, consider that it's not updated since 4 years and updated udev configs won't be installed during normal Steam client auto updates.

MMollyMaclachlan 2020-12-07 github

@414n I don't think mine's installed from a package. When I do slackpkg search steam it returns no results (and I do have alienbob as one of my repositories, so I don't know what's going on there). I'm also using the beta client and it updates regularly, so it should be up to date.

4414n 2020-12-07 github

The package is called steamclient and does not seem to be published on Alien package repo, only on the SlackBuilds one.
Try looking for it in /var/log/packages, maybe you manually installed it some time ago.

I'm also using the beta client and it updates regularly, so it should be up to date.

I'm also using the beta version but, as already said, regular client updates do not touch system configurations.

MMollyMaclachlan 2020-12-07 github

Just had a look in /var/log/packages; looks like I installed it from slackonly a little over 3 years ago. I suppose this would explain it then, if it's stuck on the old system configs.

4414n 2020-12-07 github

Yep, that probably explains it.
Will look into patching the current SlackBuild to get it to work on recent Steam client releases.

MMollyMaclachlan 2020-12-08 github

Aaaaand it's broken again. The file is still there, unchanged, but Steam is once again no longer detecting the controller. Removing/adding the file doesn't help. I'm assuming this is to do with rebooting the computer, but I'm totally out of ideas for what could be causing it now.

MMollyMaclachlan 2020-12-10 github

Note for anyone interested in this issue: an updated package with the udev rules included in it seems to have fixed the issue with one lingering hitch, that every time I boot up the computer I need to re-run chmod 666 /dev/uinput to give Steam access. Something resets the permissions every time I re-boot the computer, so if your controller isn't working, try that first (you might have to reload Steam afterwards, I'm not certain).

MMollyMaclachlan 2021-01-03 github

Adding /sbin/modprobe uinput to rc.modules.local fixed this problem for me, as it forces udev to load the driver module, which it seems it wasn't doing before. Closing this for now with this workaround. If anything new comes to light, may reopen.

Nothing extracted yet.