У меня есть Steam Controller, и мне нужно, чтобы он работал в Ubuntu, как мне это сделать?
У меня есть Steam Controller, и мне нужно, чтобы он работал в 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 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 и отремонтируйте контроллер.
Создайте файл 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
. Это добавит несколько пакетов, которые вам, вероятно, не понадобятся, но вы можете удалить их, как только появится обновление пакета steam..rules
файл. Однако вторая строка ( KERNEL=="uinput", MODE=
...) не включена. Означает ли это, что я также должен добавить эту строку, если я хочу эмуляцию геймпада? Или это будет добавлено автоматически?
Поскольку контроллер не работал из коробки, это было простое решение:
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"
/lib/udev/rules.d/99-steam-perms.rules
Теперь внизу;)
Как отметил Хорхе Кастро. Решение работает хорошо. Если вы измените ГРУППУ на users
нее, она покроет все учетные записи пользователей в системе. Таким образом, если ваша установка использует разные учетные записи, вам не нужно продолжать вносить изменения в файл.
Я только что получил свой Steam Controller, подключил его к моей системе Ubuntu 15.10 x64, и он вообще не будет работать. Тем не менее, я заметил кое-что другое в моем, что здесь не упоминалось.
Я набрал lsusb
в терминале и нашел это:
Bus 001 Device 011: ID 28de:1042
Я заметил, что idProduct, указанный в правилах udev по умолчанию, был "1102" или "1142". Итак, я добавил следующую строку /lib/udev/rules.d/99-steam-perms.rules
(под другими похожими строками):
SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="1042", MODE="0666"
Затем я отключил USB-ключ, подключил его, и он работает! Затем он сразу же обновил прошивку (в Steam) до «1142», и поэтому мне больше не нужна строка, которую я добавил. Я надеюсь, что это помогает кому-то еще.
Не удалось заставить мой контроллер работать. Ubuntu 16.04. Я поместил текст в файлы, как это было предложено Insperatus, но все еще не любил.
Вместо этого поместите текст в файл в /etc/udev/rules.d
.
Введите это в терминале:
sudoedit /etc/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"
KERNEL=="uinput", MODE="0660", GROUP="users", 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"
Я использовал блок текста сверху и назвал файл, как это было предложено в 1-м ответе: 99-steam-controller-perms.rules
Контроллер сейчас работает.