如何让 Steam 控制器工作?

Jor*_*tro 43 steam

我有一个 Steam 控制器,我需要让它在 Ubuntu 中运行,我该怎么做?

Jor*_*tro 32

对于早于 15.10 的 Ubuntu 版本

识别控制器

创建一个 udev 文件:

sudoedit /lib/udev/rules.d/99-steam-controller-perms.rules
Run Code Online (Sandbox Code Playgroud)

然后添加以下内容,不要忘记在文件中使用您的用户名!

# 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"
Run Code Online (Sandbox Code Playgroud)

授予控制器访问权限 /dev/uinput

  • 对于快速和肮脏, sudo chmod 666 /dev/uinput
  • 对于重新启动sudo apt-get install python3-autopilot后仍然存在的解决方法:然后注销/登录或重新启动。这会将您添加到具有写入权限的组/dev/uinput。这将添加一些您可能不需要的软件包,但您可以在 Steam 软件包更新到达后将其删除。

也可以看看:


Ins*_*tus 27

2016 年 11 月 22 日更新(如果您使用此解决方案

由于最近的更新,您的 udev 规则必须更新。

编辑 udev 文件:

sudoedit /lib/udev/rules.d/99-steam-controller-perms.rules
Run Code Online (Sandbox Code Playgroud)

将其中的所有内容替换为:

# 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"
Run Code Online (Sandbox Code Playgroud)

现在拔下并重新插入您的 Steam 加密狗并修复您的控制器

  • 这解决了我无法通过电缆识别 SC 的问题,但我 ** 也** 需要注册 ** Steam Beta ** 参与。否则没变。 (2认同)

小智 15

Ubuntu 16.10 说明

由于控制器不是开箱即用的,这是一个简单的解决方案:

sudo apt install steam-devices
Run Code Online (Sandbox Code Playgroud)

重新启动后它工作正常。


Ste*_*hen 7

我有 15.10 并且我的控制器不工作。

我查看了上面提到的文件,发现分发提供的文件中有一个错字。它有ATTRS{idVendor}两次。第二个应该是idProduct

回顾一下,这是该文件过去所说的:

# Steam Controller device node write access, per lp:1498655
SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", ATTRS{idVendor}=="1102", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", ATTRS{idVendor}=="1142", MODE="0666"
# Steam Controller udev write access, per lp:1498658
KERNEL=="uinput", SUBSYSTEM=="misc", TAG+="uaccess"
Run Code Online (Sandbox Code Playgroud)

这就是它应该说的(对我有用):

# Steam Controller device node write access, per lp:1498655
SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="1102", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="1142", MODE="0666"
# Steam Controller udev write access, per lp:1498658
KERNEL=="uinput", SUBSYSTEM=="misc", TAG+="uaccess"
Run Code Online (Sandbox Code Playgroud)


小智 5

正如豪尔赫·卡斯特罗所指出的。该解决方案运作良好。如果您将 GROUP 更改为users它将覆盖系统上的所有用户帐户。这样,如果您的安装使用不同的帐户,您就不必不断更改文件。