Steam Controller support: need read-write access to /dev/uinput for controller emulation

Bug #1498658 reported by Pierre-Loup A. Griffais
48
This bug affects 9 people
Affects Status Importance Assigned to Milestone
steam (Ubuntu)
Fix Released
Undecided
Unassigned
Trusty
Confirmed
Undecided
Unassigned
Vivid
Confirmed
Undecided
Unassigned
Wily
Fix Released
Undecided
Unassigned

Bug Description

The Steam Controller is about to ship; for native controller support through the SteamWorks API, keyboard emulation, mouse emulation, having access to the regular device nodes is enough, but to emulate a game controller that applications can use through SDL, the user that runs Steam needs write access to /dev/uinput in order to create a virtual controller device. This is a pretty critical feature of the controller and not having it will limit the end-user experience in various ways.

This is already enabled in SteamOS through a udev rule for the 'steam' account, but we have not flipped that switch across the board in our own Ubuntu package for Steam, as it could be seen as a security concern.

Ideally the Ubuntu-provided 'steam' package would be set up in such a way that only the Steam client has write access to /dev/uinput.

Revision history for this message
Marc Deslauriers (mdeslaur) wrote :

On Ubuntu, users should already have write access to /dev/uinput:

$ getfacl /dev/uinput
getfacl: Removing leading '/' from absolute path names
# file: dev/uinput
# owner: root
# group: autopilot
user::rw-
user:mdeslaur:rw-
group::rw-
mask::rw-
other::---

Is that not enough?

Revision history for this message
Pierre-Loup A. Griffais (plagman) wrote :

It should be enough. Was that always the case in Ubuntu or a recent change?

Revision history for this message
Pierre-Loup A. Griffais (plagman) wrote :

It also doesn't seem to be the case for me on Ubuntu 15.04:

pgriffais@spaceport:/etc/udev/rules.d$ getfacl /dev/uinput
getfacl: Removing leading '/' from absolute path names
# file: dev/uinput
# owner: root
# group: root
user::rw-
group::rw-
other::---

Revision history for this message
Marc Deslauriers (mdeslaur) wrote :

Oh, you're absolutely right.
It looks like mine is like that because I have the "python3-autopilot" package installed which adds a udev rule:

KERNEL=="uinput", SUBSYSTEM=="misc", TAG+="uaccess"

So yes, something similar needs to be added to the steam package.

Changed in steam (Ubuntu):
status: New → Confirmed
Changed in steam (Ubuntu Wily):
status: Confirmed → Fix Committed
Changed in steam (Ubuntu Trusty):
status: New → Confirmed
Changed in steam (Ubuntu Vivid):
status: New → Confirmed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package steam - 1:1.0.0.48-1ubuntu2

---------------
steam (1:1.0.0.48-1ubuntu2) wily; urgency=medium

  * Add device node udev rules for the Steam Controller. (LP: #1498655)
  * Add uinput rule for the Steam Controller. (LP: #1498658)

 -- Martin Packman <email address hidden> Tue, 13 Oct 2015 19:57:01 +0000

Changed in steam (Ubuntu Wily):
status: Fix Committed → Fix Released
Revision history for this message
Levi Bard (taktaktaktaktaktaktaktaktaktak) wrote :

On Ubuntu 15.10, the proposed rule (KERNEL=="uinput", SUBSYSTEM=="misc", TAG+="uaccess"), which was preapplied on my system, doesn't fix the issue (of permissions on /dev/uinput) for me - I still need to either manually chmod it or add a custom udev rule that sets the mode.

Revision history for this message
ted chang (monkeyboyted) wrote :

http://askubuntu.com/questions/686214/how-do-i-get-a-steam-controller-working/711081

As reported by stephen, it has been noted there is a typo in the udev rules.

On a fresh 15.10 install, changing

SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", ATTRS{idVendor}=="1102", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", ATTRS{idVendor}=="1142", MODE="0666"

to
SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="1102", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="1142", MODE="0666"

fixes the issue.

Please release commit a new fix. I was quite surprise that the steam controller issue is not fixed already.

Revision history for this message
Marc Deslauriers (mdeslaur) wrote :

The fix for this is already in -proposed for all releases. It is being tracked in bug 1498655.
Please test it and add testing results to bug 1498655 so the fix gets released.

Revision history for this message
ted chang (monkeyboyted) wrote :

hmmm, I did not realize it was in proposed. Its works

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.