Steam Controller

How do I go about getting a udev rule added to the distro for the gamers?

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

# 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;
KERNEL=="uinput", MODE="0660", GROUP="users", OPTIONS+="static_node=uinput"

Yeah, I’m also planning to buy a Steam Controller. Addig a few lines is a minor setback actually, but would be nice to see a native support. :slight_smile:

Have you managed to get yours working already?

You really need to speak to the packagers about that.

Easy enough to add manually using an editor as root. BTW, custom rules should really go in /etc/udev/rules.d/ directory eg using the nano editor

sudo nano /etc/udev/rules.d/99-steam-controller-perms.rules

Why does anything need to be added?

My understanding was that the steam controller uses a combination of xinput (with dinput fallback) and keyboard/mouse emulation, all managed by the steam big picture mode overlay?

Am I missing something?

Would this rule also be required if your inputs were via a SteamLink for example?

So, my Controller has finally arrived. I’m trying to give some extra info about it.

Day 1, 16:41 CEST:
The box is in my hands. I won’t post a video about it’s unpacking, there is plenty about it on Youtube.

Day 1, 16:43 CEST:
Unboxing is more difficult than expected. Bringing in some heavy industrial equipment.

Day 1, 16:47 CEST:
Batteries are in, but not connected to the computer yet. Switches off after a few seconds.

Day 1, 16:48 CEST:
Dongle attached to the computer, no visible reactions so far.

Day 1, 16:50 CEST:
Dongle is in, the controller doesn’t switch off by itself anymore, but unable to produce any reactions.

Day 1, 16:53 CEST:
Tried attaching the controller directly via USB. Now controller functions as a mouse.

Day 1, 16:55 CEST:
Tried attaching the controller via docking USB, not showing any reactions.

Day 1, 16:56 CEST:
Launched Steam. Still no reactions.

Day 1, 16:57 CEST:
Initiated Steam Big Picture Mode. Still no reactions, “No controller detected.”.

Day 1, 17:00 CEST:
Steam Big Picture unable to detect the controller. Apparently, pressing X while powering up should fix this problem, but it does not.

Day 1, 17:02 CEST:
Tried direct connection, controller functions as mouse, but SBP still does not recognize it.

Day 1, 17:03 CEST:
Leaving Steam.

Day 1, 17:06 CEST:
Trying to add permission rules. sudo: nano: command not found. lolwat?

Day 1, 17:12 CEST:
Managed to add permission rules

# 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;
KERNEL=="uinput", MODE="0660", GROUP="users", OPTIONS+="static_node=uinput"

via vi.

Day 1, 17:14 CEST:
Started Steam with Big Picture Mode. On clicking Add Controller, it recognizes the controller swiftly.

Day 1, 17:17 CEST:
Controller Firmware updated. After exiting Big Picture, controller still recognized as a controller (not as mouse anymore!).

Which concludes the experiment, the controller now works wireless and wired now.

Addendum:

After a few weeks, I’m happy with this controller. Since adding the new permission rule, the controller functions as a mouse under every circumstance, not just with wired connection. Still, Steam Big Picture must be running for full support. I have only used PS2 controller before once or twice, so I was lame at first, but it was quite easy to learn after putting some time into it.

Anyway, it works without any problems. (As I heard HTC Vive driver is also coming for Linux.)

That’s good to hear. Thank you for pioneering the way for others and reporting here :slight_smile: I might want to try one of these controllers some day.

The lastest steam BPM update and Steam controller update changed how SC works: http://steamcommunity.com/app/353370/discussions/0/490123197956024380/

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

These are the new lines that should be added to use the Controller.

(On a different note, it was mentioned Valve is working together with distributions to include these lines by default, but it’s not mentioned, which ones.)