Steam for Linux

Steam for Linux

SolidNoctis May 20, 2018 @ 2:04am
If Steam doesn't detect your Dualshock PS4 (Ubuntu 18.04), come here.
I see a lot of people have this problem in Ubuntu 18.04. I was been researching for days, and I saw the problem.
To fix this, come here and follow the steps of the first or second answer in this post/ask.

Basically you have to insert this:
# This rule is needed for basic functionality of the controller in Steam and keyboard/mouse emulation SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", MODE="0666" # This rule is necessary for gamepad emulation; make sure you replace 'pgriffais' with a group that the user that runs Steam belongs to KERNEL=="uinput", MODE="0660", GROUP="pgriffais", OPTIONS+="static_node=uinput" # Valve HID devices over USB hidraw KERNEL=="hidraw*", ATTRS{idVendor}=="28de", MODE="0666" # Valve HID devices over bluetooth hidraw KERNEL=="hidraw*", KERNELS=="*28DE:*", MODE="0666" # DualShock 4 over USB hidraw KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="05c4", MODE="0666" # DualShock 4 wireless adapter over USB hidraw KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0ba0", MODE="0666" # DualShock 4 Slim over USB hidraw KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="09cc", MODE="0666" # DualShock 4 over bluetooth hidraw KERNEL=="hidraw*", KERNELS=="*054C:05C4*", MODE="0666" # DualShock 4 Slim over bluetooth hidraw KERNEL=="hidraw*", KERNELS=="*054C:09CC*", MODE="0666"

in /lib/udev/rules.d/99-steam-controller-perms.rules
(Use Gedit or nano)

Then, you need to give permissions to /dev/uinput, you have to set in the terminal something like:
sudo chmod 666 /dev/uinput

Then, install python3-autopilot, in the terminal we have to set:
sudo apt-get install python3-autopilot

Finally we have to reboot the system. (or set in the terminal "sudo udevadm trigger", thanks huggabbean).
Open the Steam again and try to use the dualshock. This could and must have work.
Last edited by SolidNoctis; Feb 11, 2019 @ 7:54am
< >
Showing 1-15 of 28 comments
d7gonzo Sep 22, 2018 @ 4:43pm 
Thanks, this helped a lot!
SolidNoctis Sep 23, 2018 @ 2:15am 
Originally posted by d7gonzo:
Thanks, this helped a lot!
You're welcome!
huggabean Oct 26, 2018 @ 1:17am 
If you're impatient you can use:
sudo udevadm trigger
to avoid a reboot. Just be sure to unplug and reconnect the controller.
SolidNoctis Feb 11, 2019 @ 7:52am 
I have to say that even with this, with the "PlayStation controller support" activated, sometimes some games don't detect the DS4 and it interprets your controller like a XOne gamepad, even the games with full support to DS4. In that case, we need to deactivate the "PlayStation controller Suport" option.

If anyone know more about this, please tell us.
Last edited by SolidNoctis; May 15, 2020 @ 4:53pm
Gaturbo Feb 14, 2019 @ 7:34pm 
It worked! Thanks. I've written a script [] to help people who are also having this problem.
disclaimer: you should never run scripts from the internet without reading them first.
Last edited by Gaturbo; Nov 12, 2019 @ 3:50pm
Aoi Blue Jun 6, 2019 @ 9:39pm 
While we are on the subject, any recommendations on a Wii U controller?

I wish that Steam would have a "fallback" recognition program that even allowed you to properly map the buttons.
ZHUR Jun 24, 2019 @ 8:30am 
If you're on Ubuntu you can just install steam-devices (sudo apt install steam-devices) and reconnect the controller. It will do more or less the same thing and the package is maintained by devs.


Turned out currently there's a problem with steam-devices package. Due to that Steam can't access uinput and create Steam controller device.

If you see this error in ~/.steam/error.log
Couldn't initialize virtual gamepad: Couldn't open /dev/uinput for writing

... you have file /lib/udev/rules.d/99-steam-controller-perms.rules

... and "getfacl /dev/input"'s output looks like this:
getfacl: Removing leading '/' from absolute path names
# file: dev/uinput
# owner: root
# group: root

Then you might be able to fix the issue:

sudo mv /lib/udev/rules.d/99-steam-controller-perms.rules /lib/udev/rules.d/60-steam-input.rules
sudo udevadm control --reload
sudo udevadm trigger

After that "getfacl /dev/uinput" should look like this:
getfacl: Removing leading '/' from absolute path names
# file: dev/uinput
# owner: root
# group: root

and Steam should be able to access uinput.
Last edited by ZHUR; Jun 24, 2019 @ 12:08pm
Danrobi Jun 24, 2019 @ 2:06pm 
A little heads up
Some cable are not working properly which can mislead some users
The light on the Steam controller might turn on but, to be sure the cable is 100% compatible you need to hear the beep sound that the controller makes when it connect to the PC
No beep sound= the cable is not compatible.
Happened to me and i was really wondering what was going on
Me i use "sudo apt install steam-devices" and it always worked fine
ty verry much, worked for me, i am using fedora and the steam is a flatpak container (:
Oink-oink Sep 21, 2019 @ 3:48am 
Thank you!!! Helped for me!
Sparlock Oct 29, 2019 @ 9:04pm 
DUDE you are awesome! Thanks! My PS4 controller now works!
Unbeliever Nov 11, 2019 @ 3:42pm 
A thousand thanks to you, Noctis Bennington! :2016trophy: This worked for my DS4 on Mint 19.2.
This did the trick on Ubuntu 19.10. A million thanks.
Maldito Jan 29, 2020 @ 6:46pm 
It worked! Thank you so much! Was already pulling my hair out
Pyke Kaisora May 12, 2020 @ 2:54pm 
Need help. I tried doing it manually and tried Escavadeira Galática's script but it just wouldn't work for connection via Micro USB. Tried on my laptop and it works like a charm.

Tried on a Windows only hdd and it works.

so it's not a controller problem.

Currently running Pop_OS! 20.04.
< >
Showing 1-15 of 28 comments
Per page: 1530 50

Date Posted: May 20, 2018 @ 2:04am
Posts: 28