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. |
i wonder what happened this looks empty, the text disappeared but thread remains?
|
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. |
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. |
bump
|
bump
|
Quote:
--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?
Quote:
|
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 In a root terminal at the folder above hid-sony (Again, for me, /tmp), I ran the following: Code:
cd ./hid-sony A downside is that this must be done after every kernel update, but I can live with that. |
Quote:
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. |
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" Code:
rmmod hid_sony 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 |
Many thanks
Thanks a lot Silver-X for your scripts ! It works fine :)
|
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 |
That's VERY much appreciated. With any luck everyone who had this issue over the last few years may have a permanent fix soon!
|
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 |
All times are GMT -5. The time now is 04:38 PM. |