问题描述
我有一个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
具有写入权限的组中。这将添加一些您可能不需要的软件包,但是一旦蒸汽软件包更新到达,您就可以删除它们。
也可以看看:
-
https://bugs.launchpad.net/ubuntu/+source/steam/+bug/1498658
-
https://bugs.launchpad.net/ubuntu/+source/steam/+bug/1498655
-
http://steamcommunity.com/groups/steamuniverse/discussions/2/490123197947211023/
第三种解决方案
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″进行了固件更新,因此,我在技术上不需要我添加的行。我希望这有助于其他人。