protonscr

DS4 Controller recognised in big picture but controller configuration does not apply in game

steamclosed 3rd party gameDistro Family: GentooGeneral controller / Steam Input
ValveSoftware/steam-for-linux#5849 · opened 2018-10-19 by ibrokemypie · updated 2021-04-23 · 9 comments · github
Iibrokemypie 2018-10-19 github

Your system information

  • Steam client version (build number or date): Oct 13 2018
  • Distribution (e.g. Ubuntu): gentoo
  • Opted into Steam client beta?: [Yes/No] no
  • Have you checked for system updates?: [Yes/No] yes

Please describe your issue in as much detail as possible:

Steam big picture detects my DS4 controller connected over bluetooth and allows me to navigate. In game however, I can choose configuration for my controller to emulate an xbox controller but it doesn't actually apply, even with forced on.

Steps for reproducing this issue:

  1. Connect DS4 controller over bluetooth
  2. Start steam big picture
  3. Enable DS4 configuration
  4. Start a game (eg burnout paradise)
  5. Choose a configuration (eg ds4 to xbox)
  6. Try to use controller
Mmaxrp 2018-11-19 github

Just solved a nearly identical issue myself. Only surface level difference was that I was attempting to first get the ds4 controller working via USB connection to keep the bluetooth subsystem out of the picture.

The resolution for me came by adding my user to the input group, after I compared lsof on a working system and found that on the working configuration the user was able to read and write to the /dev/input/event* objects created by the ds4 controller.

Please let me know if any other details would be helpful.

Aalfonsoler 2018-11-23 github

Hello! Maybe that could be a solution for my question here: https://github.com/ValveSoftware/steam-for-linux/issues/5911
Could you explain how to use that lsof command and how to add the user to the input in this case?

Nncoder-1 2018-11-27 github

I'm having the same issue, but adding myself to the input group didn't help.

The controller works in Big Picture mode and I can navigate the library and such, but as soon as I start a game, it is not detected. It is detected in game only if I plug the DS4 controller via USB cable.

I tried both with PlayStation configuration support enabled and disabled.

Aalfonsoler 2018-11-27 github

For Ubuntu kind of system users, here is a solution: https://github.com/ValveSoftware/steam-for-linux/issues/5911

Nncoder-1 2018-11-27 github

I'm on Arch Linux, there isn't a steam-devices to install. What I tried is extract both 60-steam-vr.rules and 60-steam-input.rules from Ubuntu's steam-devices package in /etc/udev/rules.d then ran udevadm control --reload-rules. Didn't work.

So moved the Arch Linux steam package's installed 70-steam-vr.rules and 70-steam-input.rules out of /lib/udev/rules.d/ in case it conflicted with the ones from Ubuntu's steam-devices package and reran udevadm control --reload-rules. Didn't work. Figured I try a full reboot. Nope.

Again, the controller works over BT in Big Picture mode, but not in game. It works in game only if connected over USB.

Also, when I run a diff to compare Ubuntu and Arch version of x0-steam-input.rules, it's not much different:

diff /etc/udev/rules.d/60-steam-input.rules /lib/udev/rules.d/70-steam-input.rules 
4c4
< KERNEL=="uinput", SUBSYSTEM=="misc", TAG+="uaccess", OPTIONS+="static_node=uinput", MODE="0660"
---
> KERNEL=="uinput", SUBSYSTEM=="misc", OPTIONS+="static_node=uinput", TAG+="uaccess"
Nnamtsui 2018-12-06 github

Does DS4 work in your game if you plug it in? I experienced similar symptoms with the XBox 360 USB controller being recognized in Big Picture mode when I tap the buttons, but it did not work in-game. This was on Gentoo. There are two options to fix it. Either add your user to the input group (as noted by others in this thread) or create a games group.

Here are the details:

  • controllers
    ** easy way
    add user to input group for permissions to read /dev/input/js0
    This is insecure.
    ** correct way
    Add udev rules /etc/udev/rules.d/99-joystick.rules
SUBSYSTEMS=="input", ATTRS{name}=="Microsoft X-Box 360 pad", GROUP="games", MODE="0660"
DRIVERS=="xpad", GROUP="games", MODE="0660"
SUBSYSTEMS=="input", ATTRS{name}=="Sony Computer Entertainment Wireless Controller", GROUP="games", MODE="0660"
DRIVERS=="sony", GROUP="games", MODE="0660"

Now /dev/input/js0 has group games
Add user to group games
Optional: add user to plugdev group
Optional: /etc/conf.d/modules xpad joydev usbhid (auto loaded if using usb keyboard or mouse)

Nncoder-1 2018-12-06 github

@namtsui, from my post above "It is detected in game only if I plug the DS4 controller via USB cable.",

Therefore, yes, it works in the game when I plug it in. Only Bluetooth doesn't work in-game (but does in big Picture mode).

Kkisak-valve maintainer 2021-03-19 github

Hello @ibrokemypie, are you still experiencing this issue on an up to date system?

Kkisak-valve maintainer 2021-04-23 github

Closing pending feedback.