I got an xbox Elite v2 controller
I followed this technique (as originally seen here) : Xbox One controller Ubuntu 18.04 ...to get the controller running.
The technique seems to be a functional solution for Xbox One S and Xbox One X controllers so I assumed it would function for the elite controller. And for the most part, I was correct.
Here are the steps I took, in order :
sudo apt install -y sysfsutils
echo '/module/bluetooth/parameters/disable_ertm=1' | sudo tee /etc/sysfs.conf
sudo reboot
I then turned on my elite controller and started scanning on it and from my computer and successfully paired the two.
This resulted in my controller being fully functional (and via bluetooth!).
I then wanted to change the default mappings on the buttons on the underside. For that, I had to go into windows and run the "xbox accessories" app which first updated my controller before I could map.
I successfully mapped what I wanted but now back in ubuntu the connection is less functional for the controller's triggers specifically, seemingly as a result of the update to the controller's firmware :
- The right trigger sends no input.
- The left trigger inputs as a right trigger
- left trigger input is received by the computer constantly from the moment the controller is paried to the moment it is unpaired.
- the "View button" (left of X/home) sends no input
How do I fix this?
Try mapping the controller specifically in Ubuntu, with a textfile that has all the correct input mappings listed, This would be done by modifying a general controller mapping file for X-Input (I believe thats what all of Microsofts controllers use) EX> LB = "4" or whatever and so on, and like you said it isn't triggering an input for some of the buttons and mistriggering for others so what you have is a basic misconfiguration issue caused by Windows likely trying to map it to a new controller architecture (perhaps something to do with the Series X, dunno why but its possible).
I would recommend first attempting to reset the controller entirely, if it has that function, as theres no reason for it to have updated at all if it was previously functional.
Second I would try finding or creating that mapping file, using a program that interprets the X-Input calls directly or doing it through terminal. JStest seems to be one for Xbox360 Controllers, which albeit limited could help with testing for the triggers and such, to ensure your controller is ACTUALLY sending a signal for those. (given it connects properly, which it should, or you could simply wire the connection while testing and then connect via bluetooth after ensuring that it is indeed not locked for any weird reason.)
Third, is getting the mapping correct in Ubuntu, either through the file I spoke of previously, or through the programs you wish to use with it. And also not connecting it back to your Windows partition or PC unless you want it to yet again be reconfigured for the Windows setup and change your mapping for it.( No idea why it would ever do that, usually controllers don't carry a mapping information whatsoever and its on the OS to determine how to read that info, but still.)
Hope this might give you a little insight on the process and help at all! I've been through a similar situation trying to set up controllers in an emulator that didn't even have a GUI, and required a txt file to be created for the inputs, all of which had no documentation and it was pretty annoying, but thats a good place to start.
AS A NOTE: You said you got it working with that code at the top, reconnected it to Windows, and then it broke. So I would also try (if you haven't) doing what you did in the beginning and then figuring out how to map the bottom buttons WITHOUT Windows, I'm sure you can read those input calls aswell if any others are sending.
In the end updating to ubuntu 20.04 fixed my issue.
I use rocket league with proton with acceptable latency.