Steam for Linux

Steam for Linux

Recoil_84 Sep 11, 2015 @ 7:42pm
How to stream from Linux host with controller input
Although not officially supported, streaming from a Linux host to Windows works great. BUT, a simple system tweak is required if you want to be able to use a controller on your (Windows) client machine.

Obviously, your client computer will need Steam installed with a compatible controller that works in Big Picture Mode.

The problem: The Steam host needs permissions to access /dev/uinput

On a normal Linux install, Steam doesn't have the permissions it needs to read or write to this directory. On SteamOS this isn't an issue, and controller support should work out of the box according to this reddit post.

Permanent fix for Ubuntu / Mint and derivatives, (tested on Mint 17.2)

  1. Create a new text file with the following contents:

    KERNEL=="uinput", GROUP="uinput_group"

  2. Save the file as "98-steam-uinput.rules"

  3. Open a terminal and navigate to the directory where you saved the file

  4. Copy the file into the /dev/uinput directory. This will require superuser privileges. Type:

    sudo cp 98-steam-uinput.rules /lib/udev/rules.d/

  5. Create a new user group called "uinput_group"

    sudo groupadd uinput_group

  6. Add your user to the group

    sudo usermod -a -G uinput_group <your_username>

  7. Reload the udev rules OR reboot

    sudo udevadm control --reload-rules

And now you should be able to Stream games from your Linux PC with full controller support.

Temporary fix (until reboot) for any Linux system

If the above does not work for you (or you aren't running an Ubuntu-based system), the following temporary fix will work until your next reboot by giving everyone read/write access to the dev/uinput directory.

Open a terminal and type:
sudo chmod +666 /dev/uinput

Most of the credit for this fix belongs to this Stack Overflow post[stackoverflow.com]. Also, see https://steamcommunity.com/app/221410/discussions/0/540742667576990894/


Last edited by Recoil_84; Sep 15, 2015 @ 6:53pm
< >
Showing 1-7 of 7 comments
johndrinkwater Sep 15, 2015 @ 4:08am 
Hey, thanks for posting this as a reference, but I believe you have a few mistakes in the body.
The udev rule needs to go into /lib/udev/rules.d/98-steam-uinput.rules and your groupadd example incorrectly has uinput-group rather than uinput_group as used later
Recoil_84 Sep 15, 2015 @ 6:53pm 
Thanks johndrinwater; I've made the corrections in the original post.
SCAREGRYLLS Apr 7, 2019 @ 12:11pm 
Thanks, you fixed my issue where I could navigate from the Steam Link app on my Shield TV with the Nvidia Shield Controller, but in game there was no response using the controller :)

I had to move a file /dev/uinput to input.bak to create the dir dev/uinput when following your guide - is this okay?
Grady Vuckovic Jul 14, 2019 @ 5:38am 
I don't suppose anyone knows if these instructions are still relevant? I have the exact same issue, but these instructions refer to a directory I can't find, I can't see any folder called 'uinput' in '/dev/uinput'. Should I create the folder?
Jcs Apr 21, 2020 @ 4:42pm 
is uinput a file or a directory
Neil Jun 21, 2020 @ 4:33pm 
Originally posted by Jcs:
is uinput a file or a directory
/dev/uinput is a file. The directory referred to in the badly worded step 4 is /lib/udev/rules.d/
Hanntac Jan 28, 2022 @ 9:29am 
Still relevant as of today, this fixed remote play not forwarding steam input to a linux (arch) host for me.

Don’t forget to log off of your graphical session and back in after reloading udev rules to apply your membership to the group
< >
Showing 1-7 of 7 comments
Per page: 1530 50

Date Posted: Sep 11, 2015 @ 7:42pm
Posts: 7