protonscr

Steam Big Picture - no gamepad detected

steamclosed Big PicturereviewedGeneral controller / Steam Input
ValveSoftware/steam-for-linux#2218 · opened 2013-03-23 by LubosD · updated 2025-07-26 · 13 comments · github
LLubosD 2013-03-23 github

Hi,

I have a PS3 Sixaxis gamepad connected to my system as /dev/input/js0. Games can detect and use the controller, but not Steam in Big Picture mode.

In settings, it says "No controller detected".

Kkickingvegas 2013-05-03 github

I see the same issue. /dev/input/js0 is simply not seen by Steam, TF2, and Portal on Ubuntu 12.04

Addendum

So I was able to get Steam to recognize the Game Pad by doing the following:

  • Connect Gamepad
  • Run Steam in Big Picture Mode
  • Enable the Gamepad in Settings
  • Launch Portal. The Gamepad is recognized.
Sslouken 2013-08-16 github

SDL looks for joysticks on /dev/input/event*
Which device corresponds to your joystick?

Can you download the SDL library, build it with debug information (CFLAGS=-g ./configure; make install) and debug the issue to find out what SDL is doing?
http://www.libsdl.org/release/SDL2-2.0.0.tar.gz

Thanks!

NNemoder 2013-09-25 github

Same issue here, my /dev/input/js0 works and has the proper permissions. My /dev/input/event12 is also my gamepad but the default permissions don't allow steam access to it.

Jjdeblese 2013-10-02 github

Nemoder has it: according to the thread below, steam uses the event# devices rather than the js# devices, so you need to change the permissions. See the link for how to set up udev to automatically do this.

http://steamcommunity.com/app/221410/discussions/0/864959809809029907/

Fforesto 2014-07-31 github

The permissions set by udev on /dev/input/event* are indeed a problem on many systems, but for some of us, Steam's Big Picture still says "no controller detected" after the permissions have been fixed. Alexey Loukianov did an outstanding job of investigating, and posted details in #1894.

In short:

  • Steam detects game controllers using libsdl, which uses libudev to find the appropriate /dev/input/event* device file. (It ignores /dev/input/js0.)
  • Steam ships its own version of libudev; one that is incompatible with the the version of udev that runs on many modern linux distributions, so it can't find the /dev/input/event* device file it needs. (Meanwhile, other SDL applications on the same system handle game controllers just fine.) This is a problem that really ought to be fixed.
  • As a temporary workaround, you can figure out which /dev/input/event* file corresponds to your gamepad, manually make it readable, and set the SDL_JOYSTICK_DEVICE environment variable to that file's path when launching Steam. Something like this: env SDL_JOYSTICK_DEVICE=/dev/input/event18 steam
SStivanification 2017-10-06 github

Ok, in order to find out which dev/input/event* file is associated to my controller, i ran ls -al /dev/input/by-id/usb-* with the following output:
lrwxrwxrwx 1 root root 10 Oct 6 16:18 /dev/input/by-id/usb-PixArt_USB_Optical_Mouse-event-mouse -> ../event14 lrwxrwxrwx 1 root root 9 Oct 6 16:18 /dev/input/by-id/usb-PixArt_USB_Optical_Mouse-mouse -> ../mouse1 lrwxrwxrwx 1 root root 10 Oct 6 17:36 /dev/input/by-id/usb-Sony_Interactive_Entertainment_Wireless_Controller-if03-event-joystick -> ../event15 lrwxrwxrwx 1 root root 6 Oct 6 17:36 /dev/input/by-id/usb-Sony_Interactive_Entertainment_Wireless_Controller-if03-joystick -> ../js1 lrwxrwxrwx 1 root root 9 Oct 6 16:18 /dev/input/by-id/usb-SunplusIT_INC._HP_Truevision_HD-event-if00 -> ../event9
So I concluded that the file in question is the event15 one. Now I executed evtest /dev/input/event15 and no "Permissons denied" error popped up, so I assume it is not a permissions issue.

SStivanification 2017-10-06 github

Nevertheless, I made the dev/input/event15 file readable for everyone and executed env SDL_JOYSTICK_DEVICE=/dev/input/event15 steam in terminal, still the controller is not detected.

Xxinhuang 2017-10-21 github

I also have the same problem. Permission of /dev/input/event* tested, doesn't seems to be the problem. Also tried with SDL_JOYSTICK_DEVICE, still no luck. Also tried both stable & beta channel, problem still. DS4 was once working on Ubuntu 16.10/17.04. Haven't play for long and just upgraded to Ubuntu 17.10.

Tthor27 2018-05-16 github

Not working for me either, tried setting udev rules, chmod 666 /dev/uinput putting my user on input group, settings SDL_JOYSTICK_DEVICE and no luck at all... it was working fine on Ubuntu 16.04, and is also working fine outside steam (like in kde settings)

Oopsaaaaa 2019-11-01 github

I am on ubuntu 18.04
I found the controller event by plugging it in and running ls -al /dev/input/by-id/usb-*. then ran it without it plugged in. ( thanks @Stivanification )
I added read permissions sudo chmod o+r event26. then tested it evtest /dev/input/event26
when I messed with the controller I saw the input events.
I ran steam with env SDL_JOYSTICK_DEVICE=/dev/input/event26 steam
went into big picture mode still no controllers detected

Oopsaaaaa 2019-11-01 github

I remembered having this issue before and figured out the old workaround I used.
sudo apt install xboxdrv
xboxdrv -D
Takes your ps3 controller and emulates an xbox controller.
As soon as I boot up steam it tells me I have a controller plugged in.
o no. In the define layout none of the buttons are doing anything. bother.

MManagor 2025-05-26 github

Dualshock 3 works fine modern Linux installations.

Kkisak-valve maintainer 2025-07-26 github

Closing as outdated.