RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    Issue configuring PowerA Fusion wired XBox One controller

    Scheduled Pinned Locked Moved Help and Support
    controller confxbox oneemulationstatio
    44 Posts 8 Posters 9.5k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • simonsterS
      simonster @mitu
      last edited by simonster

      @mitu

      So, after writing RP4.4 image to SD card and starting it, the pad worked correctly (triggers as buttons), but after updating RetroPie Setup Script and running update installed modules (and selecting not to update OS packages) and rebooting, the controller now has the 2 additional axis listed.

      I did eventually find that it is using xpad. Because I'd already had the device plugged in before trying it, it wasn't listing the driver in dmesg | tail. The option is still set in /etc/modprobed/xpad.conf so it must be an issue with the xpad driver in use? The install script stated it was installing version 0.4

      mituM 1 Reply Last reply Reply Quote 0
      • mituM
        mitu Global Moderator @simonster
        last edited by

        @simonster said in Issue configuring PowerA Fusion wired XBox One controller:

        The install script stated it was installing version 0.4

        I think it's the same version set there for a long time, I'm not sure if it's relevant. So the updated driver has some new unwanted features.

        1 Reply Last reply Reply Quote 0
        • simonsterS
          simonster
          last edited by simonster

          Given that the xpad code has been updated numerous times last week (22nd/23rd June), and it appears that a diff is being applied by the RetroPie Setup, is there a chance that this isn't being applied correctly any longer? Previous to the 22nd June, it hadn't been changed since December.

          EDIT: I have just checked the RetroPie-Setup git repository and can see this was updated 2 days ago.

          mituM 1 Reply Last reply Reply Quote 0
          • mituM
            mitu Global Moderator @simonster
            last edited by

            @simonster Yes, the patch was no longer applying correctly to the upstream driver, so it was updated, hence my initial reply in the topic.
            Could you test if it works by removing the patch from the RetroPie script module ? Too late for me at the moment, but I'll give it a test tomorrow also.

            1 Reply Last reply Reply Quote 0
            • mituM
              mitu Global Moderator
              last edited by mitu

              I think I found the problem - the xpad driver from the RetroPie setup is not getting installed properly. I'll do more testing, starting from a 4.4 stock image and running an update to see how it works, and try to find an easier fix than my manual steps.

              1 Reply Last reply Reply Quote 1
              • mituM
                mitu Global Moderator
                last edited by mitu

                Ok, so I did more testing and the problem is the RetroPie xpad driver not installing correctly during an update. Since the install script first removes the RetroPie xpad driver, then installs it again, you're left with the stock Linux kernel driver, which exhibits the problem of mapping the triggers to axis instead of buttons.

                The install script runs ok, but in the driver install step it prints an error:

                [...]
                 Building module:
                    cleaning build area....
                    make -j4 KERNELRELEASE=4.14.34-v7+ KVERSION=4.14.34-v7+.....
                    cleaning build area....
                
                    DKMS: build completed.
                
                    xpad.ko:
                    Running module version sanity check.
                    Error! Module version 8E0436A9FBE74C6BE0383CF for xpad.ko
                    is not newer than what is already found in kernel 4.14.34-v7+ (85D9866F0D7E8D4F0C731B6).
                    You may override by specifying --force.
                [...]
                

                Since during an full RetroPie update the screen scrolls fast, this message doesn't get noticed, but it's logged in the update log.

                The xpad install fails starting with the stock 4.4 image, which includes kernel 4.14.x that probably has a module version newer than the driver installed by the RetroPie-Setup script. I tried the driver install both on the stock image 4.4 image (with just the RetroPie script updated) and on an updated OS (newer kernel version).

                TL;DR version : You can force the RetroPie xpad driver installation by editing the /home/pi/RetroPie-Setup/scriptmodules/supplementary.xpad.sh file and (around line 75) replace

                dkms install -m xpad -v 0.4 -k "$kernel"
                

                with

                dkms install  --force -m xpad -v 0.4 -k "$kernel"
                

                You can easily check which module driver gets loaded by executing

                sudo rmmod xpad
                sudo modprobe xpad
                

                and looking at the kernel log with dmesg | tail

                # Default Linux driver shows
                [  367.808250] input: Microsoft X-Box One pad as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/input/input1
                [  367.808955] usbcore: registered new interface driver xpad
                
                # RetroPie driver shows
                [  640.816875] xpad: loading out-of-tree module taints kernel.
                [  640.818925] input: Microsoft X-Box One pad as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/input/input2
                [  640.819752] usbcore: registered new interface driver xpad
                

                @buzz - you think the xpad.sh script can be modified (adding --force to the install step) to get rid of this error ?

                BuZzB jasonwJ 2 Replies Last reply Reply Quote 1
                • BuZzB
                  BuZz administrators @mitu
                  last edited by

                  @mitu yeah. Will sort. Thanks

                  To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                  1 Reply Last reply Reply Quote 0
                  • jasonwJ
                    jasonw @mitu
                    last edited by

                    @mitu That would be great, it’s been a major issue of mine since the 4.4 release! Thanks for finding the root of the issue as my previous posts have gone nowhere. As an aside, it does look like the XBOXDRV now works correctly again and seems to be a good option.

                    mituM 1 Reply Last reply Reply Quote 0
                    • mituM
                      mitu Global Moderator @jasonw
                      last edited by mitu

                      @jasonw I hope this could fix your Xbox controller problem you reported a while back. I got an Xbox controller only yesterday so I could test the driver's behavior.
                      In your original post, you mentioned you have an Xbox360 wireless controller - do you have an USB dongle for it ? The xpad driver is only used for wired Xbox controllers (but I guess the USB dongle appears as a wired controller).

                      simonsterS jasonwJ 3 Replies Last reply Reply Quote 0
                      • simonsterS
                        simonster @mitu
                        last edited by

                        @mitu

                        I can confirm that having added --force to the supplementary/xpad.sh on my machine and run the Update from Source on xpad, it has now resolved my issue.

                        1 Reply Last reply Reply Quote 0
                        • jasonwJ
                          jasonw @mitu
                          last edited by

                          @mitu yes it’s a 3rd party USB dongle for the XBox 360 controller.

                          1 Reply Last reply Reply Quote 0
                          • jasonwJ
                            jasonw @mitu
                            last edited by

                            @mitu I confirm that xpad now works. I removed xboxdrv as it was not as good as xpad now that xpad is fixed.

                            1 Reply Last reply Reply Quote 0
                            • W
                              wozzashek
                              last edited by wozzashek

                              So I have been having issues mapping my Xbox one controller triggers. They currently map as axis 5+ and axis 4+ (or something similar). This seems to leading to trigger spam when playing psx games.

                              I found my way to this post and am trying to implement the line changes as mention in xpad.sh but the xpad.sh I'm seeing doesn't look anything like what's mentioned. In fact my build_xpad function has one line:
                              dkmsManager install xpad "$(_version_xpad)"

                              I'm guessing the scripts have changed in an updated retropie release.

                              Any help would be appreciated.

                              mituM 1 Reply Last reply Reply Quote 0
                              • mituM
                                mitu Global Moderator @wozzashek
                                last edited by

                                @wozzashek The xpad script has been already modified to do that, though there is a recent change (this week-end ?) that added a helper for dkms.

                                Did you try just to update xpad from source - after any updates to the OS you might have done - and reboot ?

                                quicksilverQ W 2 Replies Last reply Reply Quote 0
                                • quicksilverQ
                                  quicksilver @mitu
                                  last edited by

                                  @mitu not sure if this is related but just updated the retropie setup script and it auto updated my xpad driver. It messed up my ES controller config and I had to reset it.

                                  mituM 1 Reply Last reply Reply Quote 0
                                  • mituM
                                    mitu Global Moderator @quicksilver
                                    last edited by

                                    @quicksilver Could be, but updating the driver does not change any configurations you had - when was the last time you updated the xpad driver ?
                                    @psyke83 Is the update of installed drivers forced now on each script update ?

                                    quicksilverQ 1 Reply Last reply Reply Quote 0
                                    • quicksilverQ
                                      quicksilver @mitu
                                      last edited by quicksilver

                                      @mitu does sudo apt-get upgrade update the xpad driver? If so then it was only a few days ago. Otherwise it's whatever driver comes with the stock 4.4 retropie image.

                                      mituM 1 Reply Last reply Reply Quote 0
                                      • mituM
                                        mitu Global Moderator @quicksilver
                                        last edited by

                                        @quicksilver OS upgrades can potentially update the xpad driver, but the RP version should override that. There have been also a few other updates related to Bluetooth, if you have a log of the RP update (from ~/RetroPie-Setup/logs) maybe we can see better what was updated from the script.

                                        quicksilverQ 1 Reply Last reply Reply Quote 0
                                        • quicksilverQ
                                          quicksilver @mitu
                                          last edited by

                                          @mitu

                                          Log started at: Wed  6 Feb 23:37:27 EST 2019
                                          
                                          RetroPie-Setup version: 4.4.5 (433d33db)
                                          System: Linux retropie 4.14.79-v7+ #1159 SMP Sun Nov 4 17:50:20 GMT 2018 armv7l GNU/Linux
                                          
                                          = = = = = = = = = = = = = = = = = = = = =
                                          Running post update hooks
                                          = = = = = = = = = = = = = = = = = = = = =
                                          
                                          Compiling /opt/retropie/supplementary/runcommand/joy2key.py ...
                                          Already on 'master'
                                          Your branch is up-to-date with 'origin/master'.
                                          Already up-to-date.
                                          HEAD is now in branch 'master' at commit 'b8645a8197d977a0492fc56341dc7248f7d7bb10'
                                          
                                          = = = = = = = = = = = = = = = = = = = = =
                                          Installing dependencies for 'xpad' : Updated Xpad Linux Kernel driver
                                          = = = = = = = = = = = = = = = = = = = = =
                                          
                                          /home/pi/RetroPie-Setup/tmp/build/xpad /home/pi/rpie-art
                                          
                                          = = = = = = = = = = = = = = = = = = = = =
                                          Getting sources for 'xpad' : Updated Xpad Linux Kernel driver
                                          = = = = = = = = = = = = = = = = = = = = =
                                          
                                          git clone --recursive --depth 1 "https://github.com/paroj/xpad.git" "/opt/retropie/supplementary/xpad"
                                          Cloning into '/opt/retropie/supplementary/xpad'...
                                          HEAD is now in branch 'master' at commit 'a66c53c008572db516a60a8d38ef4f823b3d3980'
                                          patching file xpad.c
                                          Hunk #2 succeeded at 1785 (offset 1 line).
                                          Successfully applied patch: /home/pi/RetroPie-Setup/scriptmodules/supplementary/xpad/01_enable_leds_and_trigmapping.diff
                                          /home/pi/rpie-art
                                          
                                          = = = = = = = = = = = = = = = = = = = = =
                                          Building 'xpad' : Updated Xpad Linux Kernel driver
                                          = = = = = = = = = = = = = = = = = = = = =
                                          
                                          
                                          Creating symlink /var/lib/dkms/xpad/0.4/source ->
                                                           /usr/src/xpad-0.4
                                          
                                          DKMS: add completed.
                                          
                                          Kernel preparation unnecessary for this kernel.  Skipping...
                                          
                                          Building module:
                                          cleaning build area....
                                          make -j4 KERNELRELEASE=4.14.79-v7+ KVERSION=4.14.79-v7+.....
                                          cleaning build area...
                                          
                                          DKMS: build completed.
                                          
                                          xpad.ko:
                                          Running module version sanity check.
                                           - Original module
                                             - Found /lib/modules/4.14.79-v7+/kernel/drivers/input/joystick/xpad.ko
                                             - Storing in /var/lib/dkms/xpad/original_module/4.14.79-v7+/armv7l/
                                             - Archiving for uninstallation purposes
                                           - Installation
                                             - Installing to /lib/modules/4.14.79-v7+/extra/
                                          
                                          depmod....
                                          
                                          DKMS: install completed.
                                          /opt/retropie/supplementary/xpad /home/pi/rpie-art
                                          
                                          = = = = = = = = = = = = = = = = = = = = =
                                          Configuring 'xpad' : Updated Xpad Linux Kernel driver
                                          = = = = = = = = = = = = = = = = = = = = =
                                          
                                          /home/pi/rpie-art
                                          
                                          Log ended at: Wed  6 Feb 23:37:53 EST 2019
                                          Total running time: 0 hours, 0 mins, 26 secs
                                          
                                          mituM 1 Reply Last reply Reply Quote 0
                                          • mituM
                                            mitu Global Moderator @quicksilver
                                            last edited by mitu

                                            @quicksilver I think I may have a clue what happened - you updated your kernel with apt-get, this also updated your xpad driver (but it also added the default kernel driver: /lib/modules/4.14.79-v7+/kernel/drivers/input/joystick/xpad.ko). Running RetroPie setup noticed you didn't have the RP driver for the said kernel and re-added it.

                                            1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                                            Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.