Steam Controller support: need read-write access to /dev/uinput for controller emulation
| Affects | Status | Importance | Assigned to | Milestone | |
|---|---|---|---|---|---|
| | steam (Ubuntu) |
Undecided
|
Unassigned | ||
| | Trusty |
Undecided
|
Unassigned | ||
| | Vivid |
Undecided
|
Unassigned | ||
| | Wily |
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.
| Marc Deslauriers (mdeslaur) wrote : | #1 |
| Pierre-Loup Griffais (pgriffais-q) wrote : | #2 |
It should be enough. Was that always the case in Ubuntu or a recent change?
| Pierre-Loup Griffais (pgriffais-q) wrote : | #3 |
It also doesn't seem to be the case for me on Ubuntu 15.04:
pgriffais@
getfacl: Removing leading '/' from absolute path names
# file: dev/uinput
# owner: root
# group: root
user::rw-
group::rw-
other::---
| Marc Deslauriers (mdeslaur) wrote : | #4 |
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 |
| Launchpad Janitor (janitor) wrote : | #5 |
This bug was fixed in the package steam - 1:1.0.0.48-1ubuntu2
---------------
steam (1:1.0.
* 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 |
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.
| ted chang (monkeyboyted) wrote : | #7 |
http://
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}
SUBSYSTEM=="usb", ATTRS{idVendor}
to
SUBSYSTEM=="usb", ATTRS{idVendor}
SUBSYSTEM=="usb", ATTRS{idVendor}
fixes the issue.
Please release commit a new fix. I was quite surprise that the steam controller issue is not fixed already.
| Marc Deslauriers (mdeslaur) wrote : | #8 |
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.
| ted chang (monkeyboyted) wrote : | #9 |
hmmm, I did not realize it was in proposed. Its works


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?