LinuxQuestions.org
Latest LQ Deal: Latest LQ Deals
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Software > Linux - Games
User Name
Password
Linux - Games This forum is for all discussion relating to gaming in Linux.

Notices


Reply
  Search this Thread
Old 12-03-2018, 10:12 PM   #1
ianm42
LQ Newbie
 
Registered: Jun 2016
Posts: 8

Rep: Reputation: Disabled
Playstation2 Controller with USB adapter need help getting additional buttons to work


Hi all

i tried and checked about a week now to get a PS2 controller working on my linux machine, hardware works fine, the adapter works with same controller on same machine with windows perfectly fine,
unfortunately the following buttons (Square, Circle,X) do not seem to exist in the driver or kernel driver or wherever that info should be available, all others seem to do something, even if i check with (cat /dev/input/eventX) all buttons give some output but not the mentioned ones the 3 ones seem dead and non existent. i found many guides talking about PS3 controller and it being about Bluetooth, but this is hardwired, with an adapter to USB,

i tried antimicro, says same i.e 13 buttons 3 buttons are missing same is in Jstest.
im running Lubuntu Linux 4.15.0-42-generic #45-Ubuntu SMP Thu Nov 15 19:32:57 UTC 2018 x86_64 x86_64 x86_64 GNU/Linu

please help and let me know what else info is needed.

thank you in advance.

Edit: btw. im not sure if this is the best choice of category to post this thread, maybe if needed move it appropriately.


additional Edit:

i ran across this:
http://domisan.sakura.ne.jp/article/psxpad/psxpad.html

it seems a patch for raspi, altough i have no idea, if it is modifiable to work with amd/intel/64bit cpu, any help appreciated, have no experience in patching a kernel or compiling,
here is what i tried

patch -p1 -d /usr/src/linux-headers-4.15.0-42 < psxpad-spi_rp.patch

which gave me this

|diff -uprN linux_org/arch/arm/boot/dts/bcm2708-rpi-0-w.dts linux_alt/arch/arm/boot/dts/bcm2708-rpi-0-w.dts
|--- linux_org/arch/arm/boot/dts/bcm2708-rpi-0-w.dts 2017-05-08 23:58:26.103387000 +0900
|+++ linux_alt/arch/arm/boot/dts/bcm2708-rpi-0-w.dts 2017-04-25 10:57:51.000000000 +0900

i assume the patch is for ARM cpu, and i am wondering if the file is modifiable to work with x86/64 architecture.

and yes i am possibly doing everything wrong, apologies in that case, any help appreciated.

Last edited by ianm42; 12-04-2018 at 04:54 AM. Reason: adding more info
 
Old 12-05-2018, 12:49 AM   #2
ianm42
LQ Newbie
 
Registered: Jun 2016
Posts: 8

Original Poster
Rep: Reputation: Disabled
i wonder what happened this looks empty, the text disappeared but thread remains?
 
Old 12-05-2018, 10:07 AM   #3
ianm42
LQ Newbie
 
Registered: Jun 2016
Posts: 8

Original Poster
Rep: Reputation: Disabled
the post was something along these lines:

i have a USB to Playstation 2 Dual shock2 game controller adapter that is working perfectly fine under windows, unfortunately in linux im running lubuntu 18.04 Linux 4.15.0-42-generic #45-Ubuntu SMP Thu Nov 15 19:32:57 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux, and the following 3 buttons dont seem to work/exist square, X and circle, while checking under "cat /dev/input/eventX" all buttons give some response/output but the 3 mentioned ones (sqaure, X and Circle) dont do anything so it appears like they dont exist at all, i wonder what the issue is and if anyone can help with this. thank you in advance.
 
Old 12-08-2018, 10:01 PM   #4
ianm42
LQ Newbie
 
Registered: Jun 2016
Posts: 8

Original Poster
Rep: Reputation: Disabled
hrmm the biggest problem i seem to have is that there is alot of outdated information and it is for me personally impossible to find out which and what i should be looking for to get it running with Ubuntu 18.04 kernel 4.15.0-42, there is talk of SDL2 then there is talk of xboxdrvr, and i actually found that "/dev/usb/hiddev1" in my case, by doing "cat /dev/usb/hiddev1" does give me some output and does give me some output pushing X,Square and Circle, as well as all other buttons, so i thought id simply try to do "ln - n /dev/usb/hiddev1 /dev/input/js0" ofc that got me nothing at all, game controller was not recognized by SDL2, antimicro, Qjoypad, or jstest im ofc 100% sure im doing something wrong, but i might be on the right path to fix this issue??? any input appreciated
i also found this
https://bugs.launchpad.net/ubuntu/+s...ux/+bug/836335

it apeares also to be a bug apparently, this person has exactly the same problem that i seem to have, but well it seems completely abandoned and never fixed. now im not sure if that is actually a fact or not and if there is a replacement for that or some other way to get this working. or if i should just forget about it and throw just my precious Playstation 2 controller into the landfill and contribute to the destruction of our planet further.

Last edited by ianm42; 12-08-2018 at 10:29 PM.
 
Old 12-17-2018, 07:20 AM   #5
ianm42
LQ Newbie
 
Registered: Jun 2016
Posts: 8

Original Poster
Rep: Reputation: Disabled
bump
 
Old 12-23-2018, 03:10 AM   #6
ianm42
LQ Newbie
 
Registered: Jun 2016
Posts: 8

Original Poster
Rep: Reputation: Disabled
bump
 
Old 12-24-2018, 11:57 AM   #7
jeremy
root
 
Registered: Jun 2000
Distribution: Debian, Red Hat, Slackware, Fedora, Ubuntu
Posts: 13,597

Rep: Reputation: 4080Reputation: 4080Reputation: 4080Reputation: 4080Reputation: 4080Reputation: 4080Reputation: 4080Reputation: 4080Reputation: 4080Reputation: 4080Reputation: 4080
Quote:
Originally Posted by ianm42 View Post
bump
Please refrain from doing this in the future. LQ is comprised solely of volunteers; as soon as a member who can answer your questions sees it, they will do so.

--jeremy
 
Old 01-05-2019, 01:14 AM   #8
ianm42
LQ Newbie
 
Registered: Jun 2016
Posts: 8

Original Poster
Rep: Reputation: Disabled
sorry apologies for that, what is usually done to avoid something getting buried in the void? what is the normal procedure?, also, no idea how to PM and if its possible at all, question is actually, is this maybe better off in another section of the forum? and if so where? maybe hardware?

Quote:
Originally Posted by jeremy View Post
Please refrain from doing this in the future. LQ is comprised solely of volunteers; as soon as a member who can answer your questions sees it, they will do so.

--jeremy
 
Old 11-17-2019, 05:42 AM   #9
Sliver-X
LQ Newbie
 
Registered: Nov 2019
Posts: 2

Rep: Reputation: Disabled
A Fix

I connect my Dualshock 1 to my PC with a no-name PS1/PS2 to PS3 adapter I found on Amazon a few years ago.

It works great under Windows with drivers like SCPToolkit (Which makes it act like an Xbox controller), but I ran into the same problem the original poster describes last year when trying to use it with Ubuntu 18.04.

Recently, I gave antiX 17 a spin on my primary PC and was surprised to see that the adapter showed up as a fully working device under it. I did some research and discovered there were changes to the HID driver sometime at or after Linux 4.10 that broke a bunch of third party adapters, such as ours: antiX 17 was running Linux 4.9.16, which has a copy of the sony-hid driver that predates the breaking changes.

So I downloaded Linux 4.9.196's sources (The most recent at the time, as of now it's 4.9.202: I assume it would also work?) and extracted them. Two files were of interest in here:

linux-source-4.9/drivers/hid/hid-sony.c
linux-source-4.9/drivers/hid/hid-ids.h

I then made a Makefile with the following:

Code:
obj-m += hid-sony.o

all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
I then threw all three into a subfolder named hid-sony (I did all this in /tmp: Wherever you want is fine).

In a root terminal at the folder above hid-sony (Again, for me, /tmp), I ran the following:

Code:
cd ./hid-sony

make

rmmod hid_sony
rm -f /lib/modules/$(uname -r)/kernel/drivers/hid/hid-sony.ko

cp ./hid-sony.ko /lib/modules/$(uname -r)/kernel/drivers/hid/
insmod /lib/modules/$(uname -r)/kernel/drivers/hid/hid-sony.ko

make clean
This entirely replaces the existing driver module with the 4.9 version. After doing this, my gamepad is now fully functional under Ubuntu 18.04, 19.04 and antiX 17 updated to Linux 5.2.8

A downside is that this must be done after every kernel update, but I can live with that.
 
1 members found this post helpful.
Old 01-19-2020, 12:01 PM   #10
Titan91
LQ Newbie
 
Registered: Jan 2020
Posts: 6

Rep: Reputation: Disabled
Quote:
Originally Posted by Sliver-X View Post
I connect my Dualshock 1 to my PC with a no-name PS1/PS2 to PS3 adapter I found on Amazon a few years ago.

It works great under Windows with drivers like SCPToolkit (Which makes it act like an Xbox controller), but I ran into the same problem the original poster describes last year when trying to use it with Ubuntu 18.04.

Recently, I gave antiX 17 a spin on my primary PC and was surprised to see that the adapter showed up as a fully working device under it. I did some research and discovered there were changes to the HID driver sometime at or after Linux 4.10 that broke a bunch of third party adapters, such as ours: antiX 17 was running Linux 4.9.16, which has a copy of the sony-hid driver that predates the breaking changes.

So I downloaded Linux 4.9.196's sources (The most recent at the time, as of now it's 4.9.202: I assume it would also work?) and extracted them. Two files were of interest in here:

linux-source-4.9/drivers/hid/hid-sony.c
linux-source-4.9/drivers/hid/hid-ids.h

I then made a Makefile with the following:

Code:
obj-m += hid-sony.o

all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
I then threw all three into a subfolder named hid-sony (I did all this in /tmp: Wherever you want is fine).

In a root terminal at the folder above hid-sony (Again, for me, /tmp), I ran the following:

Code:
cd ./hid-sony

make

rmmod hid_sony
rm -f /lib/modules/$(uname -r)/kernel/drivers/hid/hid-sony.ko

cp ./hid-sony.ko /lib/modules/$(uname -r)/kernel/drivers/hid/
insmod /lib/modules/$(uname -r)/kernel/drivers/hid/hid-sony.ko

make clean
This entirely replaces the existing driver module with the 4.9 version. After doing this, my gamepad is now fully functional under Ubuntu 18.04, 19.04 and antiX 17 updated to Linux 5.2.8

A downside is that this must be done after every kernel update, but I can live with that.
This is an AWESOME post. I've been trying to figure out for over a year how to get this adapter working in Linux, particularly on my Raspbian based RetroPie OS. It had the same issue and is running a kernel version that is a few steps newer than 4.10. I downloaded the c and h files from here and put them on the micro SD card. I then booted it up, SSH'd into it, built the module, and replaced it. I didn't have to remove the module as it wasn't loaded due to the adapter not being plugged in. Man, this WORKS!! jstest showed all 18 buttons were responding and I tested this in various RetroArch and LibRetro based emulators without an issue. The only thing I had to do differently was add tabs at the beginning of lines 4 and 7 in your Makefile as Make expects those.

I'm going to link to your post on some other threads I found at other places, and make a WayBack Machine snapshot of this thread. Can't thank you enough, as while this isn't a solution for the current kernel revision, it actually does work. Since I don't update my kernel, I won't have to compile it again. Now I can finally play PSX games with the authentic controller.

Last edited by Titan91; 01-19-2020 at 12:08 PM.
 
Old 01-24-2020, 07:37 PM   #11
Sliver-X
LQ Newbie
 
Registered: Nov 2019
Posts: 2

Rep: Reputation: Disabled
I've been using dkms for this.

I made a folder called hid-sony-4.9, which contains the makefile and two source files from the previous method. In this folder, I made a file named dkms.conf:

Code:
PACKAGE_NAME="hid-sony"
PACKAGE_VERSION="4.9"
BUILT_MODULE_NAME[0]="hid-sony"
DEST_MODULE_LOCATION[0]="/kernel/drivers/hid/"
AUTOINSTALL="yes"
Above hid-sony-4.9, I ran the following:

Code:
rmmod hid_sony
rm -f /lib/modules/$(uname -r)/kernel/drivers/hid/hid-sony.ko

cp -r ./hid-sony-4.9 /usr/src/
dkms install -m hid-sony -v 4.9
Now it will be autocompiled by dkms after any kernel upgrade.

I'm linking to a zip file that contains the needed files and two scripts (One for dkms, the other for a straight manual replacement). I make no warranties as to their functionality.

Sony-HID-Downgrader.zip
 
1 members found this post helpful.
Old 04-20-2020, 10:13 AM   #12
liOnux.fr
LQ Newbie
 
Registered: Mar 2020
Distribution: EndeavourOS
Posts: 3

Rep: Reputation: Disabled
Thumbs up Many thanks

Thanks a lot Silver-X for your scripts ! It works fine
 
Old 05-13-2020, 02:17 PM   #13
scshumat
LQ Newbie
 
Registered: May 2020
Posts: 3

Rep: Reputation: Disabled
I just bought a pair of these adapters from Amazon and ran into this same problem - the X, square, and circle buttons do not work in Linux. I decided to do a little digging with usbhid-dump and discovered that the hardware is reporting a USB descriptor with only 13 buttons instead of the requisite 16. I then created a Linux kernel patch that corrects the invalid descriptor and everything is working perfectly now on my system. I submitted a patch to the Linux kernel mailing list so hopefully it will be accepted and will be fixed in an upcoming kernel release.

Here's a description of the patch: https://lkml.org/lkml/2020/5/13/1323

FYI - The kernel commit that breaks these adapters is e19a267b9987. This commit removed a USB descriptor fix-up that masked this problem.

-Scott
 
1 members found this post helpful.
Old 05-13-2020, 03:11 PM   #14
Titan91
LQ Newbie
 
Registered: Jan 2020
Posts: 6

Rep: Reputation: Disabled
That's VERY much appreciated. With any luck everyone who had this issue over the last few years may have a permanent fix soon!
 
Old 05-14-2020, 03:49 AM   #15
liOnux.fr
LQ Newbie
 
Registered: Mar 2020
Distribution: EndeavourOS
Posts: 3

Rep: Reputation: Disabled
I made a tutorial for embedded Linux like Batocera.linux here :

https://forum.batocera.org/d/3796-tu...ap-usb-adaptor

I also hope that Scott's patch will be accepted.
Thank you all for your contributions ;-)

Lionel
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Multimedia Keyboard, additional buttons don't work nykey Slackware 2 07-17-2006 11:23 AM
Playstation2 owners Fear58 General 6 06-13-2004 12:37 AM
PlayStation2 OS Westdog976 Linux - Software 2 06-12-2003 03:38 PM
Linux up your Playstation2... fatgod Linux - General 3 05-24-2002 09:04 AM
Sony releases Linux for PlayStation2 Kzin Linux - General 1 02-03-2002 05:17 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Software > Linux - Games

All times are GMT -5. The time now is 11:53 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration