No controller in Steam

Hi all, I can run Steam, but my PS4 controller is not recognized by it - Steam cannot be controlled, it will not assign it my profile (the LED would change color from default blue)

  • Games that do not register it (overlay cannot be activated either): Everything, Tomb Raider
  • I found one Steam game which does register the controller: FEZ

I use the flathub version, same as previously on opensuse Tumbleweed where the controller would be recognized as long as it was plugged in before launching Steam. I retained the ~/.var/app/com.valvesoftware.Steam directory.

$ flatpak info -M com.valvesoftware.Steam 
[Context]
...
devices=all;

lsusb lists the controller.
I found this when launched from terminal – controlled cannot be open, but it does see my mouse (it has few controller-like buttons):

Local Device Found
  type: 054c 05c4
  path: 0003:0009:00
  serial_number:  - 0
  Manufacturer: 
  Product:      
  Release:      100
  Interface:    0

Unable to open local device: 0003:0009:00
Local Device Found
  type: 1e7d 2e4b
  path: sdl://0
  serial_number:  - 0
  Manufacturer: 
  Product:      ROCCAT ROCCAT Tyon White
  Release:      111
  Interface:    -1

Any ideas please?

1 Like

I am currently experiencing the same issue. Have you found any solutions?

Thanks!

Sorry, I have not, I gave up on it. I have not run any game on Silverblue in a long time, but I can try it again later, if nothing else then to confirm it has not resolved by itself : )

I’ve found a potential solution, although I don’t fully understad it, so it could have negative security implications I’m not aware of.

Edit /etc/udev/rules.d/99-controller-perms.rules and input the following:

SUBSYSTEM=="usb", ATTRS{idVendor}=="054c", MODE="0666"
KERNEL=="uinput", MODE="0660", GROUP="{YOUR_USERNAME}", OPTIONS+="static_node=uinput"

After rebooting it should work.

054c is the vendor id for Sony found via lsusb.

Bus 001 Device 003: ID 054c:XXXX Sony Corp. DualShock 4

Interestingly, io.gitlab.jstest_gtk.jstest_gtk from Flathub seems to recognize the controller fine without this

1 Like

I have a suspicion that some of the issue may lie with the Steam flatpak, but I’m not sure on that either.

I have a Logitech F310 - a super standard USB controller that should work with everything. It works completely fine with RetroArch and PCSX2 but when I first try it with Steam it almost never works.

Here’s the kicker though, after a few updates and/or reboots (I can’t isolate which one) the issue is totally resolved and Steam starts recognizing my controller. So maybe just give it a little time. Also make sure you check all the types of controllers to recognize in Steam settings.

if you install steam-devices via rpm-ostree, it should land the udev rules you’ll need.

I am having a similar issue where Steam Big Picture Mode recognizes my controller, but my games do not.

I second that. steam-devices is not available in Flathub so installing it via rpm-ostree from ‘rpmfusion-nonfree’ made my Steam Flatpak detect controllers in Silverblue. I suppose this should work in Fedora Workstation too using

sudo dnf install steam-devices

but I haven’t tested it.

steam-devices

That is the solution, thank you!
I tried it recently and interestingly Steam, upon starting, informed me about this missing package as well.


Now the flatpaked Steam only needs to learn how to stream - it cannot record video of any window, apparently.

I tried this over the weekend for remote streaming to the Android app and it worked… It’s probably the same solution for you:

flatpak run com.valvesoftware.Steam -pipewire

It’s rather annoying that it’s a command line flag at the moment (so we have to run Steam from the command line for this) and that we have to manually select share in the dialog, but this seems to be our current workaround for it.

2 Likes

I have to try that, thank you!