43

I got a Steam Controller and I need to get it working in Ubuntu, how do I do that?

0

7 Answers 7

32

For Ubuntu releases older than 15.10

Recognizing the controller

Create a the udev file:

sudoedit /lib/udev/rules.d/99-steam-controller-perms.rules

then add the following contents, don't forget to use YOUR username in the file!

# 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 the username of the user that runs Steam
KERNEL=="uinput", MODE="0660", GROUP="pgriffais", OPTIONS+="static_node=uinput"

Give the controller access to /dev/uinput

  • For quick and dirty, sudo chmod 666 /dev/uinput
  • For a workaround that survives reboots: sudo apt-get install python3-autopilot Then log out/in or reboot. This will add you to a group that has write access to /dev/uinput. This will add a few packages which you probably won't need, but you can remove them once the steam package update arrives.

See also:

3
  • 1
    I'm on 15.10 and I have the .rules file. However the second line (KERNEL=="uinput", MODE=...) is not included. Does this mean I also have to add this line, if I want gamepad emulation? Or will this get added automatically?
    – Joschua
    Nov 7, 2015 at 13:43
  • "If you have 15.10 and newer you do not need to do anything except plug in the dongle and pair the controller when you launch steam big picture mode" I'm on Xubuntu 15.10, I plugged in the dongle, I launch big picture, and I can't pair the controller. It works fine in Windows and works when plugged in wiredly on Linux and also works on my SteamOS install but it doesn't work on Xubuntu 15.10 for me. Dec 10, 2015 at 22:12
  • These steps are done when installing steam-devices in later Ubuntu versions. However, knowing that this is the source of the problem prompted me to install steam-devices and reinstall steam itself on my system, since my installation was very old (probably installed Steam manually a long time ago)
    – marcus
    Jul 30, 2019 at 4:44
27

Update as of 11/22/2016 (if you used this solution)

Due to a recent update your udev rule must be updated.

Edit the udev file:

sudoedit /lib/udev/rules.d/99-steam-controller-perms.rules

Replace everything in it with:

# 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"

Now unplug and replug your Steam dongle and repair your controller

3
  • 2
    This fixed my problem with SC not being recognized via cable, but I also needed to sign up for Steam Beta participation. Otherwise didnt change.
    – Carolus
    Nov 28, 2016 at 12:08
  • Works great over here! Thanks! (Doesn't need Steam Beta anymore from my side) Dec 26, 2016 at 10:40
  • This fixed my problem on Ubuntu GNOME 17.04. Thanks!
    – Rebel
    May 3, 2017 at 6:13
15

Instructions for Ubuntu 16.10

As the controller didn't work out of the box, it was a simple solution:

sudo apt install steam-devices

After reboot it worked fine.

1
  • Adding to this: As of Nov 9th (when I tested this), you will also need Steam in Bata mode to the next update for the controller in the Big Picture mode, Nov 10, 2016 at 0:22
7

I have 15.10 and my controller wasn't working.

I viewed the files mentioned above and I see a typo in the distribution provided file. It has ATTRS{idVendor} twice. The second one is supposed to be idProduct.

To recap, this is what the file used to say:

# Steam Controller device node write access, per lp:1498655
SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", ATTRS{idVendor}=="1102", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", ATTRS{idVendor}=="1142", MODE="0666"
# Steam Controller udev write access, per lp:1498658
KERNEL=="uinput", SUBSYSTEM=="misc", TAG+="uaccess"

And this is what it was supposed to say (and works for me):

# Steam Controller device node write access, per lp:1498655
SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="1102", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="1142", MODE="0666"
# Steam Controller udev write access, per lp:1498658
KERNEL=="uinput", SUBSYSTEM=="misc", TAG+="uaccess"
2
  • 1
    Which files [mentioned above]?
    – Oli
    Apr 5, 2016 at 21:14
  • I see. /lib/udev/rules.d/99-steam-perms.rules Now below ;)
    – Oli
    Apr 5, 2016 at 21:15
5

As noted by Jorge Castro. The solution works well. If you change the GROUP to users it will cover all user accounts on the system. This way if your install uses different accounts, you don't have to keep making changes to the file.

4

I just got my Steam Controller, plugged it into my Ubuntu 15.10 x64 system and it wouldn't work, at all. However, I noticed something different about mine that wasn't mentioned here.

I typed lsusb at the Terminal and found this:

Bus 001 Device 011: ID 28de:1042

I noticed the idProduct listed in the default udev rules were "1102" or "1142". So, I added the following line to /lib/udev/rules.d/99-steam-perms.rules (Underneath the other similar lines):

SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="1042", MODE="0666"

I then unplugged the USB dongle, plugged it in and it works! Then it did a firmware update immediately (in Steam) to "1142" and so, I don't technically need the line I added anymore. I hope this helps someone else.

2

Couldn't get my controller to work either. Ubuntu 16.04. I placed the text in the files as suggested by Insperatus, but still no love.

Instead place the text in a file in /etc/udev/rules.d.

Enter this in terminal: sudoedit /etc/udev/rules.d/99-steam-controller-perms.rules

Then paste from this answer:

# This rule is needed for basic functionality of the controller in Steam and keyboard/mouse emulation
SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", MODE="0666"


KERNEL=="uinput", MODE="0660", GROUP="users", 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"

I used the block of text from above and named the file as suggested in the 1st answer: 99-steam-controller-perms.rules

Controller now works.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .