当前位置: 首页>>技术教程>>正文


如何让Steam控制器工作?

,

问题描述

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

最佳解决方案

自2016年11月22日起更新(如果您使用的是this solution)

Due to a recent update your udev rule must be updated.

编辑udev文件:

sudoedit /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; 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"

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

次佳解决方案

适用于15.10以上的Ubuntu版本

识别控制器

创建一个udev文件:

sudoedit /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; make sure you
# replace 'pgriffais' with the username of the user that runs Steam
KERNEL=="uinput", MODE="0660", GROUP="pgriffais", OPTIONS+="static_node=uinput"

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

  • 对于快速和脏,sudo chmod 666 /dev/uinput

  • 对于在重新启动后仍然存在的解决方法:sudo apt-get install python3-autopilot然后注销/进入或重新启动。这会将您添加到对/dev/uinput具有写入权限的组中。这将添加一些您可能不需要的软件包,但是一旦蒸汽软件包更新到达,您就可以删除它们。

也可以看看:

第三种解决方案

Ubuntu 16.10的说明

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

sudo apt install steam-devices

重启后它工作正常。

第四种方案

我有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"

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

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

第五种方案

正如Jorge Castro所说。解决方案效果很好。如果将GROUP更改为users,它将覆盖系统上的所有用户帐户。这样,如果您的安装使用不同的帐户,则无需继续对文件进行更改。

第六种方案

我刚拿到我的Steam控制器,将它插入我的Ubuntu 15.10 x64系统,根本不起作用。但是,我注意到我的一些不同之处,这里没有提到。

我在终端输入lsusb,发现:

Bus 001 Device 011: ID 28de:1042

我注意到默认udev规则中列出的idProduct是”1102″或”1142″。所以,我将以下行添加到/lib/udev/rules.d/99-steam-perms.rules(在其他类似的行下面):

SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="1042", MODE="0666"

然后,我拔掉了USB加密狗的插头,插上电源,它就可以工作了!然后它立即(在Steam中)对”1142″进行了固件更新,因此,我在技术上不需要我添加的行。我希望这有助于其他人。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1947.html,未经允许,请勿转载。