You are not logged in.

#1 2018-03-19 12:48:58

wellsaid
Member
Registered: 2016-04-13
Posts: 23

Xbox 360 wired controller not working for steam

Hi everyone,
I have recently re-installed archlinux. In my previous installation controllers worked perfectly with steam, while unfortunately in this new installation steam is not detecting my xbox 360 wired controller. In big picture mode under controller settings it says: no controller detected.

What i have tried:
1. Installing jstest-gtk from AUR -> It correctly sees the controller
2. Checking permissions in /dev/input/event* -> the device is correctly created and with the right permissions (read for everyone) when i plug the joypad
3. USB Legacy support enabled disabled in bios -> both have the same effect (i have to keep it disabled for a bug with android debug bridge).
3. Alternatives to xpad:
       - steamos-xpad: same behavior working in jstest-gtk not in steam.
       - xboxdrv: working in jstest-gtk, in steam big picture mode two xbox 360 controllers shows up and inputs from my controller are detected by steam. Anyway some games doesen't detect the controller (not working: Grid autosport, Mercenary kings. working: Hands of fate).

In my previous installation Grid autosport and steam worked out of the box with the xpad module.

PS: I am using steam-native with package steam-native-runtime installed (as in my previous installation).

I have no idea how to investigate further tongue

Last edited by wellsaid (2018-03-19 13:14:42)

Offline

#2 2018-03-19 23:41:22

Ropid
Member
Registered: 2015-03-09
Posts: 1,069

Re: Xbox 360 wired controller not working for steam

I noticed a similar problem recently. My controller didn't work in both Steam and the game "Guacamelee", while I remember that things were fine in the past. The controller also worked correctly in jstest for me, just didn't work in Big Picture and didn't work in games.

For me, 'xboxdrv' solved the problem. For that "two controller" problem you mention, I solved that by blacklisting xpad in /etc/modprobe.d/. The file I created looks like this:

$ cat /etc/modprobe.d/blacklist-xpad.conf 
blacklist xpad

And my xboxdrv config looks like this:

## This config is for the device "Thrustmaster GPX Gamepad"

[xboxdrv]
silent = true
# next-controller = true
# detach-kernel-driver = true
# evdev = /dev/input/by-id/usb-Thrustmaster_GPX_Gamepad_0000380D-event-joystick
# evdev = /dev/input/event18
evdev-grab = true
mimic-xpad = true
# trigger-as-button = true

deadzone-trigger = 0
deadzone = 4000

[calibration]
x1=-32767:0:32767
y1=-32767:-2750:32767
x2=-32767:-500:32767
y2=-32767:425:32767

[evdev-absmap]
ABS_X = X1
ABS_Y = Y1
ABS_RX = X2
ABS_RY = Y2
ABS_HAT0X = DPAD_X
ABS_HAT0Y = DPAD_Y
ABS_Z = LT
ABS_RZ = RT

[evdev-keymap]
BTN_THUMBL = TL
BTN_THUMBR = TR
BTN_SOUTH = A
BTN_EAST = B
BTN_NORTH = X
BTN_WEST = Y
BTN_START = Start
BTN_SELECT = Back
BTN_MODE = Guide
BTN_TL = LB
BTN_TR = RB

[xboxdrv-daemon]
dbus = disabled

This is the file "/etc/default/xboxdrv". It's used by the "xboxdrv" systemd service that comes with the xboxdrv package.

I used this setup in the games "Guacamelee" and "Hollow Knight" and it worked there. I don't have the games you mentioned so I can't test them.

About problems with this setup, it doesn't always detect the controller when I plug it in. When that happens, I have to restart the xboxdrv service.

If you want to try this config file, you might want to cut out some of the stuff. The calibration section has to go as it's only really there because the sticks weren't fully centered as the controller is pretty old.

About the button layout section in the config file, this is for a (perhaps crappy) xbox 360 controller alternative, not for an original Microsoft controller. I had to fix the button layout as it things were mapped to wrong button events by default. What's strange about that is that I remember that things were fine in the past with the xpad driver in the kernel. It looked exactly like a xbox 360 controller when that worked, button layout was the same.

Last edited by Ropid (2018-03-19 23:44:23)

Offline

#3 2018-03-19 23:44:39

wellsaid
Member
Registered: 2016-04-13
Posts: 23

Re: Xbox 360 wired controller not working for steam

Hi, thank you so much that helped big_smile
For me commenting the line next-controller = true was enough to make the second controller disappear. While tanks to the line mimic-xpad = true all games i mentioned work perfectly with the controller.
I would love to use the xpad module since its already shipped with the kernel, but i guess for the moment this is a nice solution wink

Offline

#4 2018-04-03 21:08:12

lightstream
Member
From: Britain
Registered: 2011-10-30
Posts: 64

Re: Xbox 360 wired controller not working for steam

are you using libinput or evdev? I've also got a nice shiny new install, and my 360 controller works fine in native linux games  using xpad and libinput. (I don't have Grid though, in fact the only native game I've installed so far is Everspace)

Offline

Board footer

Powered by FluxBB