Home Forums Reviews Tutorials Articles Register Search Today's Posts Mark Forums Read User Name Remember Me? Password Linux - Games This forum is for all discussion relating to gaming in Linux.

Notices



Page 1 of 2 1 2 > Search this Thread 12-03-2018, 10:12 PM #1 ianm42 LQ Newbie

Registered: Jun 2016 Posts: 8

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





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. Hi alli 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/Linuplease 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: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 triedpatch -p1 -d /usr/src/linux-headers-4.15.0-42 < psxpad-spi_rp.patchwhich 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 +0900i 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 12-05-2018, 12:49 AM #2 ianm42 LQ Newbie

Registered: Jun 2016 Posts: 8

Original Poster

Rep: i wonder what happened this looks empty, the text disappeared but thread remains? 12-05-2018, 10:07 AM #3 ianm42 LQ Newbie

Registered: Jun 2016 Posts: 8

Original Poster

Rep: 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. 12-08-2018, 10:01 PM #4 ianm42 LQ Newbie

Registered: Jun 2016 Posts: 8

Original Poster

Rep:

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. 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 appreciatedi also found thisit 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 . 12-17-2018, 07:20 AM #5 ianm42 LQ Newbie

Registered: Jun 2016 Posts: 8

Original Poster

Rep: bump 12-23-2018, 03:10 AM #6 ianm42 LQ Newbie

Registered: Jun 2016 Posts: 8

Original Poster

Rep: bump 12-24-2018, 11:57 AM #7 jeremy

root

Registered: Jun 2000 Distribution: Debian, Red Hat, Slackware, Fedora, Ubuntu Posts: 13,254

Rep: Quote: ianm42 Originally Posted by bump



--jeremy 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 01-05-2019, 01:14 AM #8 ianm42 LQ Newbie

Registered: Jun 2016 Posts: 8

Original Poster

Rep:



Quote: jeremy Originally Posted by 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 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? 11-17-2019, 05:42 AM #9 Sliver-X LQ Newbie

Registered: Nov 2019 Posts: 2

Rep: A Fix



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



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



A downside is that this must be done after every kernel update, but I can live with that. 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.clinux-source-4.9/drivers/hid/hid-ids.hI then made a Makefile with the following: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: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.8A downside is that this must be done after every kernel update, but I can live with that. 1 members found this post helpful. 01-19-2020, 12:01 PM #10 Titan91 LQ Newbie

Registered: Jan 2020 Posts: 5

Rep: Quote: Sliver-X Originally Posted by



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



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



A downside is that this must be done after every kernel update, but I can live with that. 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.clinux-source-4.9/drivers/hid/hid-ids.hI then made a Makefile with the following: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: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.8A downside is that this must be done after every kernel update, but I can live with that.



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. 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 . 01-24-2020, 07:37 PM #11 Sliver-X LQ Newbie

Registered: Nov 2019 Posts: 2

Rep:



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"



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



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 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:Above hid-sony-4.9, I ran the following: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. 1 members found this post helpful. 04-20-2020, 10:13 AM #12 liOnux.fr LQ Newbie

Registered: Mar 2020 Distribution: EndeavourOS Posts: 3

Rep: Many thanks Thanks a lot Silver-X for your scripts ! It works fine 05-13-2020, 02:17 PM #13 scshumat LQ Newbie

Registered: May 2020 Posts: 2

Rep:



Here's a description of the patch:



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



-Scott 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. 05-13-2020, 03:11 PM #14 Titan91 LQ Newbie

Registered: Jan 2020 Posts: 5

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

Registered: Mar 2020 Distribution: EndeavourOS Posts: 3

Rep:



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 I made a tutorial for embedded Linux like Batocera.linux here :I also hope that Scott's patch will be accepted.Thank you all for your contributions ;-)Lionel



Page 1 of 2 1 2 >



Thread Tools Search this Thread Show Printable Version Email this Page 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 On BB code is On Smilies are Off [IMG] code is HTML code is Off Forum Rules



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



All times are GMT -5. The time now is 01:02 PM .

