Confused on Steam Play and Proton? Be sure to check out our guide.
PS3 DualShock 3 under linux
Bumadar Jan 24, 2014
I took me personally a bit of time to get the PS3 controller to work with my system, it ended up a being a udev rights issue which manifested itself as a segment fault, as most system are similar so I figured this might help others.

So this is in opensuse and with USB cable.


Step 1: 

Install xboxdrv, in my case (opensuse) it's found right here
modprobe joydev and modprobe uinput need to be enabled, in my case this already was the case, check with modprobe -l

Step 2:

start xboxdrv simply by typing xboxdrv, now here the fun part start, IF you get a segement fault then do Step 3, else go to Step 4

Step 3:

The segment fault seems to come from the fact that you as a user don't have rights to /dev/uinput and this needs to be solved by making a udev rule

Connect the PS3 controller to your system with a USB cable and do a dmesg so you get the correct Vendor and Product ID:

[Fri Jan 24 15:41:13 2014] usb 3-1: New USB device found, idVendor=054c, idProduct=0268


change to root and head over to /etc/udev/rules.d/ and using vi create a file called 40-xboxdrv.rules


In this file place the following code:

ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="054c", ATTR{idProduct}=="0268", OWNER="root", GROUP="users", MODE="0660", RUN+="/bin/chown root:users /dev/uinput", RUN+="/bin/chmod 0660 /dev/uinput"

notice where you use the Vendor and Product ID and that you will give the group "users" rw right to /dev/uinput as well as adding the group "users" to the directory owner group.

save the file and reconnect your PS3 controller,  if you do a ls -l /dev/uinput you should get something like 

crw-rw---- 1 root users 10, 223 Jan 24 15:15 /dev/uinput

if you now type xboxdrv as normal user it should not longer give a segment fault.  (probably some other message but we don't care yet)

Step 4:

Create a file called PS3.xboxdrv in your home directory and paste the following code in it (which came from here with the evdev line marked out)

# Example configuration for the Playstation 3 controller
#
# Note this only works when connected with USB, when using Bluetooth a
# different configuration is required. 

[xboxdrv]
#evdev=/dev/input/by-id/usb-Sony_PLAYSTATION_R_3_Controller-event-joystick

[evdev-absmap]
ABS_X   = x1
ABS_Y   = y1
ABS_Z   = x2
ABS_RZ  = y2
ABS_#48 = lt
ABS_#49 = rt

[evdev-keymap]
BTN_THUMB   = tl
BTN_THUMB2  = tr
BTN_BASE5   = lb
BTN_BASE6   = rb
KEY_#302    = a
KEY_#301    = b
BTN_DEAD    = x
KEY_#300    = y
BTN_TRIGGER = back
KEY_#720    = guide
BTN_TOP     = start
BTN_TOP2    = du
BTN_PINKIE  = dr
BTN_BASE    = dd
BTN_BASE2   = dl

# EOF #

Step 5:

Basicly your done now and you can start the xboxdrv now using the following command:

xboxdrv --detach-kernel-driver --silent --mimic-xpad --config ~/PS3.xboxdrv

you can remove --silent to see more info if you run into trouble but normally it's not needed.
Of course you could even add this line in a small script or if your clever even in a udev rule so it starts the moment you plug the controller in.
Bumadar Jan 24, 2014
ps: the code tag works like crap here
Liam Dawe Jan 24, 2014
Quoting: Quote from Bumadarps: the code tag works like crap here
Like i say to everyone, REPORT BUGS.
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register


Or login with...
Sign in with Steam Sign in with Google
Social logins require cookies to stay logged in.