Steam Controller

From Gentoo Wiki
Jump to: navigation, search
Resources

The Steam Controller is a game controller developed by Valve. It features two trackpads (in place of thumbsticks) with haptic feedback and sixteen buttons. The Steam controller is designed not only for games supporting traditional controllers, but also for games that support keyboard and mouse.

Installation

Kernel

The Steam Controller is fully supported by Linux via the Steam client, however it does require USB and user level driver support.

KERNEL Enabling user level driver support
Device Drivers --->
   Input device support --->
      [*] Generic input layer (needed for keyboard, mouse,...)
      [*]   Miscellaneous devices --->
         <*>   User level driver support

To have kernel support for the Steam controller (which makes it possible to use the Steam controller when not running the Steam client), enable the driver support in the kernel (CONFIG_HID_STEAM). Steam Controller support was added in kernel version 4.3 and above.

KERNEL Enabling Steam Controller driver support
Device Drivers --->
   HID support  --->
      Special HID drivers  --->
         <*> Steam Controller support

Permissions

Consolekit and systemd

If Steam was installed manually and ConsoleKit or systemd are being used, create the following udev rules file:

FILE /etc/udev/rules.d/99-steam-controller-perms.rules
# Valve USB devices
SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", MODE="0666"

# Steam Controller udev write access
KERNEL=="uinput", SUBSYSTEM=="misc", TAG+="uaccess", TAG+="udev-acl"

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

The above udev rules file will grant access to the Steam Controller by automatically setting an ACL entry for the logged-in user.

If Steam was installed from anyc's Steam external repository, a udev rules file that supports ConsoleKit and systemd should already be installed with the >=steam-launcher-1.0.0.51-r1 ebuild.

Note
If ConsoleKit or systemd are being used, set the USE variable to acl to have the ACL entry set for the logged-in user.

Next, reload the udev rules files and trigger a device event for the new rule:

root #udevadm control --reload
root #udevadm trigger

Once the udev rules files are reloaded, the user using the Steam Controller will need to log out/in for the correct permissions to be set.

Manual udev

If Steam was installed manually or from an external repository, and ConsoleKit or systemd are not being used, create the following udev rules file:

FILE /etc/udev/rules.d/99-steam-controller-perms.rules
# Valve USB devices
SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", MODE="0666"

# Steam Controller udev write access
KERNEL=="uinput", SUBSYSTEM=="misc", MODE="0660", GROUP="input", 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"

The above udev rules file will grant access to the Steam Controller for users in the input group:

root #gpasswd -a <user> input

See also