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.
# 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
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.
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.
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):
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.
# 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
For Ubuntu releases older than 15.10
Recognizing the controller
Create a the udev file:
then add the following contents, don't forget to use YOUR username in the file!
Give the controller access to
/dev/uinput
sudo chmod 666 /dev/uinput
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:
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:
Replace everything in it with:
Now unplug and replug your Steam dongle and repair your controller
Instructions for Ubuntu 16.10
As the controller didn't work out of the box, it was a simple solution:
After reboot it worked fine.
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 beidProduct
.To recap, this is what the file used to say:
And this is what it was supposed to say (and works for me):
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.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: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):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.
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:
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.