Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

⚠️ READ BEFORE POSTING - BigSur / M1 / Intel / Errors with Driver #1139

Open
7 tasks
L0VEFIRE opened this issue Jan 10, 2021 · 217 comments
Open
7 tasks

⚠️ READ BEFORE POSTING - BigSur / M1 / Intel / Errors with Driver #1139

L0VEFIRE opened this issue Jan 10, 2021 · 217 comments

Comments

@L0VEFIRE
Copy link

L0VEFIRE commented Jan 10, 2021

This is my effort to help everyone and stop redundant posts. Despite this driver will receive no more updates there are a few work-arounds to look into. First and foremost, Here is the words quoted by FranticRain (owner and Developer) himself to help everyone clearly understand the current state of this driver.

The state of this repository (xbox driver) going forward

FranticRain:

As stated in similar issues that have since been closed, 360Controller will not work in Big Sur. Kernel extensions are deprecated in Big Sur, which is what 360Controller is. Conceivably a replacement could be written in DriverKit, however I believe that users should transition over to Bluetooth versions of Xbox controllers, as they have official support from Apple. This official support means a better experience for both users and game developers. And I definitely don’t want to be responsible for fragmenting that ecosystem.
On top of that, as stated previously, I am no longer able to contribute to open source, so I won’t be making any further changes to this repository.

⚠️ IMPORTANT:
(1) Uninstalling the Driver on Big Sur will give you an Error, the only way to uninstall it is manually.
(2) ONLY install the driver after you have followed the steps below in before installing section. It will still say "Installation Failed" this is normal ignore it. As long as you follow the terminal steps below, xbox controllers will worked again wired. Xbox One Controllers model 1708 will work via bluetooth after a firmware update.
(3) As of currently late January 2021, using Windows Parallels on an M1 Mac will not work for any controller, and will give you constant issues.

MANUALLY UNINSTALLING THE DRIVER

Goto the following locations and find the following files. Either drag them to the trash, or select them and press (Command+Delete)
_EMPTY THE TRASHCAN!!!
Use the check boxes for your convenience

Important - Before you can even access these files you need to gain access to your main drive which apple has disabled by default (thanks apple lol)

Summary of Steps to Enable Drive in Finder Sidebar:
(1) Click on the desktop or the finder on the dock
(2) click on "finder" in the menu bar
(3) click on preferences
(4) select the "sidebar" tab
(5) check the box for "your name"'s Macbook (whatever your devices is)
(6) exit this window and go to your finder window
(7) navigate to Macintosh HD (Follow steps below)

Steps to Uninstall the Driver

  • Macintosh HD/Library/Application Support/MICE/360Daemon.app
  • Macintosh HD/Library/PreferencePanes/Pref360Control.prefPane
  • Macintosh HD/Library/LaunchDaemons/com.mice.360Daemon.plist
  • Macintosh HD/Library/Extensions/360Controller.kext
  • Macintosh HD/Library/Extensions/Wireless360Controller.kext
  • Macintosh HD/Library/Extensions/WirelessGamingReceiver.kext
  • Macintosh HD/Library/Extensions/WirelessOneController.kext

BEFORE INSTALLING THE DRIVER!!!

(1) Update your Controller Firmware
For Xbox Controllers this is done by either your Xbox through a wired conncetion or Windows 10 App from the app store called "Xbox Accessories" also a wired connected is needed. For all other controllers check you manufacture website for support.

(2) Manually adding driver support to Big Sur
In order for the Xbox driver to work this must be done First. Afterwards, like stated before insatlling the driver can be done, it will still fail but will not fucntion with wired controllers (not elite).

If you play on steam you will need to do these same steps before installing steams gamepad driver; just using steams dev id instead for step 2. The full post for the steam method on are located in this link if your curious. [Fix.for.game.controllers.on.Big.Sur.Steam.for.Mac.pdf] (https://github.com/360Controller/360Controller/files/5792061/Fix.for.game.controllers.on.Big.Sur.Steam.for.Mac.pdf)


STEPS:

  1. Boot into Recovery mode (hold ⌘-R at boot). Open Terminal (Utilities -> Terminal).
  2. Type spctl kext-consent add G947KKM5RL
  3. Press return.
  4. Type kmutil trigger-panic-medic --volume-root "/Volumes/Macintosh HD"
    (If driver name is different then replace “Macintosh HD” with whatever your drive is named; press Tab at the end of typing "/Volumes/" to get a hint).
  5. Press return.
  6. Reboot.
  7. Once at desktop, load terminal
  8. Type sudo kmutil load -p /Library/Extensions/360Controller.kext

NOTE: Installing the driver may still say failed, don't worry about it. After rebooting, it should work for both wired and wireless for Xbox One / X Series Controllers. Make sure to update your controller firmware prior to this via any Xbox or Xbox Accessory App on Windows 10.


OTHER CONSIDERATIONS:

(1) Use Windows Bootcamp
Using bootcamp for Games instead has proven to be a useful alternative, and use macfancontrol to keep CPU cool via full blast.

(2) Advisory for Xbox Elite controllers
Elite Controllers generally will only work on Windows 10 or an Xbox Console; until it gets a firmware update and full support is added to big sur, steam, and games.

Currently, for steam after installing the “Big Picture gamepad driver” Elite controller will work via bluetooth only with limited support (only some games will work)

(3) Consider Downgrading to macOS Catalina
you can choose to do this on you main parition after you back it up, wipe your drive and re-install, or easier just install a second partition on your driver for Catalina just for games (also can use a NVME SSD for this as well via thunderbolt)

(4) Check your controller is compatible with this Driver
https://github.com/360Controller/360Controller/wiki/Compatible-controllers

(5) Using Controllers with STEAM®
Controllers will not work with steam on Big Sur, unless you have:

(a) repeated the terminal steps above replacing the dev id with Steams ID instead
(b) installing Big picture mode gamepad driver
(c) making sure steam preference controller settings are checked on for you controller and can be identified.


HOPE THIS HELPS

@L0VEFIRE L0VEFIRE changed the title ⚠️ READ BEFORE POSTING - BigSur & 360Controller ⚠️ READ BEFORE POSTING - BigSur / 360Controller / M1 Jan 10, 2021
@AyaanZaveri
Copy link

Thanks, so this works on M1 Big Sur??

@L0VEFIRE
Copy link
Author

L0VEFIRE commented Jan 10, 2021

Thanks, so this works on M1 Big Sur??

no, as far as I’m concerned it wont work at all. Correction: Yes, after controller a firmware update xbox one / X Series controllers do work.

(there is someone who complied there own personal build of it for the M1, but without it being signed not sure it would be any use to anyone really)
Link -> #1133

@Johnth10
Copy link

Xbox series controller works after firmware update on windows or on the xbox

@L0VEFIRE
Copy link
Author

@Johnth10
could you be more specific for everyone. (1) which mac processor are you referring to and presume you also mean Big Sur. (2) are you referring to wired or wireless connection

@Johnth10
Copy link

Johnth10 commented Jan 10, 2021

Sorry for not being precise.

Answers to your questions :
1 : M1
2 : both

Read this : #1119

@L0VEFIRE L0VEFIRE changed the title ⚠️ READ BEFORE POSTING - BigSur / 360Controller / M1 ⚠️ READ BEFORE POSTING - BigSur / M1 / Intel / 360Controller Jan 12, 2021
@L0VEFIRE
Copy link
Author

L0VEFIRE commented Jan 12, 2021

@Johnth10

thanks for clearing that up, this is good to know! I will add this to the main post once I clean up the markdown formatting a bit to make it easier to read. I also update my xbox one controller firmware and can confirm even on Intel macs it works for both bluetooth and wired with no issues. 👍

@Johnth10
Copy link

@L0VEFIRE

Good to know. Thank you for your work.

@AyaanZaveri
Copy link

I tried my Xbox controller on Parallels and it worked with a wire which is kind of odd. But now it doesn't work.

@L0VEFIRE
Copy link
Author

I tried my Xbox controller on Parallels and it worked with a wire which is kind of odd. But now it doesn't work.

I have had nothing but nightmares in past attempts to use virtualization software to play games; which is why its not a listed option. yeah, it might have worked for a moment but this is something ive found to not go away. which is why boot camp is a more stable option. this issue it’s beyond my scope, so if your determined maybe you can google for some answers. only hint i can tell you is to shut down the emulation and check out your settings for Usb/accessories. best i can tell ya.

@AyaanZaveri
Copy link

The problem is that I'm on the M1 Mac and it runs ARM processors so it doesn't work. Parallels have a beta which makes Windows 10 work but it could run into issues maybe that's why. But, if Bootcamp comes with support I'd switch to it. Thanks!

@L0VEFIRE
Copy link
Author

oh right forgot about that. well someone was able to make bootcamp work on the M1. they did something with the arm build for windows microsoft has. um i saved it i will look it up for you maybe it might help you.

@L0VEFIRE
Copy link
Author

The problem is that I'm on the M1 Mac and it runs ARM processors so it doesn't work. Parallels have a beta which makes Windows 10 work but it could run into issues maybe that's why. But, if Bootcamp comes with support I'd switch to it. Thanks!

okay here are two links that might help.

[1st person to run windows on M1]
https://9to5mac.com/2020/12/02/windows-on-m1-macs-run-arm-virtualization/

[using parallels to run windows on M1]
https://www.google.com/amp/s/9to5mac.com/2020/12/22/run-windows-10-arm-m1-mac-apple-silicon-x64-x86-no-boot-camp-video/amp/

@AyaanZaveri
Copy link

AyaanZaveri commented Jan 15, 2021

Thanks, I'm currently using Parallels now and it is fast.

@bw881
Copy link

bw881 commented Jan 17, 2021

@L0VEFIRE
Many thanks, followed instructions as posted. Now can use xbox controller freely on big sur!
Mac model: Macbook pro mid2014.

@AyaanZaveri
Copy link

How?

@L0VEFIRE
Copy link
Author

@FatSandwich

he is using a Intel Processor hence the mac model he is using.

@L0VEFIRE
Copy link
Author

@FatSandwich

this might be worth looking into if you haven’t read it already, but i would read it very carefully, a lot of important steps that must be followed for it to work correctly.

https://kb.parallels.com/en/124771

@AyaanZaveri
Copy link

Aren’t those steps for BlueTooth though? My controller doesn’t have BlueTooth. Thanks anyway man!

@L0VEFIRE
Copy link
Author

L0VEFIRE commented Jan 18, 2021

@FatSandwich
i might actully have a hunch on why your wired controller isnt working, and its uniqueto VM’s, but you also have a M1 so the software is quite new for M1. But in normal instances when using a wired device with VM’s it will installed the driver on first conncetion, but once you go to reboot the VM the driver is still installed, but treats it like it never was so you end up in limbo, this doens’t usally occure when putting the VM to sleep but it is a new version of parrelles.

what version of xbox controller are you using by chance.? full name and model (should be on back)

@AyaanZaveri
Copy link

Model: 1537
Name: Xbox One Controller
Bluetooth: No

Also, what's weird is that in the device's settings in Windows 10 it shows "Controller - Connected". But, when I go to https://gamepad-tester.com/ it says "No Gamepad Detected". Another weird thing is when I first connected my Xbox controller to my M1 mac it worked flawlessly in Parallels and I could even use it to play games, but now it just doesn't work!

Thanks for your help!

@AyaanZaveri
Copy link

I have a similar issue to
https://answers.microsoft.com/en-us/windows/forum/all/driver-error-for-xbox-controller-on-windows-10/1d7b20f5-dde7-44f4-b94b-ca3fdaebad8f

But they didn't seem to fix the issue.
I still haven't tried reinstalling windows but if nothing works I might have to!

@L0VEFIRE
Copy link
Author

reference this link
https://www.google.com/amp/s/www.drivereasy.com/knowledge/solved-microsoft-xbox-one-controller-driver-install-failed-issue/amp/

go to method 1 uninstalling the driver. see if that helps.

but i will say windows 10 on its own has issues with pairing xbox controllers. yours is wired so maybe a different cable,.

see if uninstalling helps if so might be on to something

@AyaanZaveri
Copy link

I tried uninstalling the driver but that didn't work either. At this point, I'll try reinstalling Windows 10.

@AyaanZaveri
Copy link

IT WORKED!!! REINSTALLING WINDOWS 10 WORKED!!! I should have tried it before! Thank you so much for your help man!

@AyaanZaveri
Copy link

And now it's not working again!!!!! It did the same thing as last time!!!

@L0VEFIRE
Copy link
Author

L0VEFIRE commented Jan 19, 2021 via email

@AyaanZaveri
Copy link

Yeah I hope so! Thank you I will go the forums and ask them!

@palmerj
Copy link

palmerj commented Aug 10, 2023

You need to use the ARM64 compiled binary which is mentioned further up in the post.

@palmerj
Copy link

palmerj commented Aug 10, 2023

@mmg1988 can you please share your development instructions to compile on Apple Silicon?

@patrulea
Copy link

You need to use the ARM64 compiled binary which is mentioned further up in the post.

Where is it?

@palmerj
Copy link

palmerj commented Aug 24, 2023

Here https://github.com/360Controller/360Controller/files/9063388/Install360Controller.pkg.zip

But I'm wondering if @mmg1988 can provide his build steps/process. I just want to ensure I install safe code.

@blza
Copy link

blza commented Sep 15, 2023

@mmg1988 also kindly ask to provide build instructions for Apple Silicon as readme says the XCode 6.4 is needed to build the project, the one that can't be installed on Ventura.

@blza
Copy link

blza commented Sep 17, 2023

Still desperate to know now to build it for M1. But thanks to this thread, this build from @mmg1988 https://github.com/360Controller/360Controller/files/9063388/Install360Controller.pkg.zip (it's alpha5) and instructions from #1227 I was able to connect 8bitdo Ultimate Wireless Controller with Charging dock (Bluetooth) in 2.4G mode and 8bitdo Ultimate C 2.4G wireless controller both wireless and wired on Ventura 13.4.1 MacBook Pro M1 2020. Everything works for both controllers except rumble feature.

I added following lines inside installed kext in /Library/Extensions/360Controller.kext/360Controller/Info.plist to enable these two particular devices:
<key>8bitdoUltimate</key> <dict> <key>CFBundleIdentifier</key> <string>com.mice.driver.Xbox360Controller</string> <key>IOCFPlugInTypes</key> <dict> <key>F4545CE5-BF5B-11D6-A4BB-0003933E3E3E</key> <string>360Controller.kext/Contents/PlugIns/Feedback360.plugin</string> </dict> <key>IOClass</key> <string>Xbox360Peripheral</string> <key>IOKitDebug</key> <integer>65535</integer> <key>IOProviderClass</key> <string>IOUSBDevice</string> <key>idProduct</key> <integer>12550</integer> <key>idVendor</key> <integer>11720</integer> </dict>

BTW 8bitdo Ultimate Wireless Controller with Charging dock (Bluetooth) works natively in Bluetooth mode in Ventura: including rumble feature. But analog triggers are registered as full press at any press scale (so no Mario Sunshine in BT mode).

@palmerj
Copy link

palmerj commented Sep 26, 2023

@mmg1988 are you able to share your changes to get this compiled for Apple silicon?

@blza
Copy link

blza commented Oct 7, 2023

@mmg1988 are you able to share your changes to get this compiled for Apple silicon?

really insistent we are :))) as I understand anyone who has experience of porting legacy apps could build it, but me with no experience failed. There are instructions from @mmg1998 in one of comments actually but they are a little bit vague, so me myself failed at the first and the second try. Maybe we could collaborate somehow to try to build it in separate Issue thread and try to fix errors we encounter. The one thing to start from is that the version that was build by @mmg1988 is alpha5, not alpha6. I tried to build alpha 6 and failed.

@blza
Copy link

blza commented Oct 7, 2023

Just updated to Sonoma 14.0. Previously installed 360Driver is working.

@Lumabots
Copy link

Just updated to Sonoma 14.0. Previously installed 360Driver is working.

are you using a m1 mac ? because i can't reinstall it for me i said bad signature and i have done the whole thing we can read here

@blza
Copy link

blza commented Oct 12, 2023

Just updated to Sonoma 14.0. Previously installed 360Driver is working.

are you using a m1 mac ? because i can't reinstall it for me i said bad signature and i have done the whole thing we can read here

Yes, Macbook Pro 2020 M1. 360Driver was installed and worked on Ventura 13.6, just updated to Sonoma 14.0 through System settings. No loss in functionality for the driver. Everything works as on Ventura.

@luizgununes
Copy link

luizgununes commented Dec 7, 2023

I was able to build with success the alpha 6 version like @mmg1988 did following his tutorial with some additional steps but when I install the package the receiver still not working. I have a Macbook M1 Pro with the latest MacOS.

@luizgununes
Copy link

Now, after install my built package, when I run sudo kmutil load -p /Library/Extensions/360Controller.kext or sudo kext util /Library/Extensions/360Controller.kext I'm facing this error:

Error Domain=KMErrorDomain Code=71 "Could not find: Executable for Kext com.mice.driver.Xbox360Controller v1.0 in codeless kext bundle com.mice.driver.Xbox360Controller at /private/var/db/KernelExtensionManagement/Staging/com.mice.driver.Xbox360Controller.1pw0nb/360Controller.kext not found" UserInfo={NSLocalizedDescription=Could not find: Executable for Kext com.mice.driver.Xbox360Controller v1.0 in codeless kext bundle com.mice.driver.Xbox360Controller at /private/var/db/KernelExtensionManagement/Staging/com.mice.driver.Xbox360Controller.1pw0nb/360Controller.kext not found}

@luizgununes
Copy link

I've realized that I'm having this error, even saying that built with success. For some reason, this file doesn't exist after the build inside the kext.

fatal error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo: can't open input file: build/Release/360Controller.kext/Contents/MacOS/360Controller (No such file or directory)

@palmerj
Copy link

palmerj commented Dec 7, 2023

@luizgununes that's great news! Do you have a fork and/or list of exact steps that you can share here?

@bryce13950
Copy link

Has anyone seen this issue?

image

@luizgununes
Copy link

luizgununes commented Dec 8, 2023

@bryce13950 I don't remember having this error, so I can't help, sorry.

@palmerj If I have success figuring out the error I've reported above, I can write a tutorial, but there is no mystery, just download the XCode, install the MacOS development package when suggested, open the latest source code folder downloaded here in this GitHub, remove the code mentioned here before, change the architecture to arm64 for each package inside the driver, change the signature method in all projects like mentioned before too, check the errors tab to solve additional errors, run chmod +x for ./build.sh before running with sudo to build and cross your fingers. I've also installed "Packages" with brew.

PS.: I've downloaded a Windows 11 on Parallels and the Xbox 360 receiver magically worked. It's impressive. But I want to run native.

@palmerj
Copy link

palmerj commented Dec 12, 2023

If I have success figuring out the error I've reported above, I can write a tutorial,

Thanks that would be fantastic @luizgununes !

@rhysholland
Copy link

Any updates @luizgununes please ?

@luizgununes
Copy link

Any updates @luizgununes please ?

Believe me or not, but suddenly, I've made it work. But it's not my credit.

Days after my last post here, I deleted all files and gave up. But, a few weeks later, I searched again and found this link - one that I'm 100% sure I already tried to install before - and it worked!

It gave an error during the installation, as always. But when I connected my controller, it appeared on the list (System Settings > Xbox 360 Controller) and the Enable Driver option works too!

I don't know exactly what could have caused it to only work now, but I'm happy.

Something that might have helped it work is that my crsutil is set to disabled.

Good luck!

@palmerj
Copy link

palmerj commented Feb 8, 2024

@luizgununes I'm still interesting in building from source so I can trust output (given you need to disable security on loading the module). Did you ever install the driver from a source build? If so can you share the full steps you took? For example I'm not 100% clear what you did for the comment you made above:

  • remove the code mentioned here before
  • change the signature method in all projects like mentioned before too

Thanks so much!

@rhysholland
Copy link

@luizgununes You absolute legend - tysm !!

@jonasw8
Copy link

jonasw8 commented Feb 12, 2024

Any updates @luizgununes please ?

Believe me or not, but suddenly, I've made it work. But it's not my credit.

Days after my last post here, I deleted all files and gave up. But, a few weeks later, I searched again and found this link - one that I'm 100% sure I already tried to install before - and it worked!

It gave an error during the installation, as always. But when I connected my controller, it appeared on the list (System Settings > Xbox 360 Controller) and the Enable Driver option works too!

I don't know exactly what could have caused it to only work now, but I'm happy.

Something that might have helped it work is that my crsutil is set to disabled.

Good luck!

Esse instalador com link é para processador da apple ou para intel?

@rhysholland
Copy link

@jonasw8 buenas, no hablo portugués, solo español, pero el instalación trabajé para mí en mi M1 Mac, utilizando eso link. Buena suerte!!

@luizgununes
Copy link

Any updates @luizgununes please ?

Believe me or not, but suddenly, I've made it work. But it's not my credit.
Days after my last post here, I deleted all files and gave up. But, a few weeks later, I searched again and found this link - one that I'm 100% sure I already tried to install before - and it worked!
It gave an error during the installation, as always. But when I connected my controller, it appeared on the list (System Settings > Xbox 360 Controller) and the Enable Driver option works too!
I don't know exactly what could have caused it to only work now, but I'm happy.
Something that might have helped it work is that my crsutil is set to disabled.
Good luck!

Esse instalador com link é para processador da apple ou para intel?

Acredito que para ambos, mas o meu processador é o M1 Pro.

@luizgununes
Copy link

@luizgununes I'm still interesting in building from source so I can trust output (given you need to disable security on loading the module). Did you ever install the driver from a source build? If so can you share the full steps you took? For example I'm not 100% clear what you did for the comment you made above:

  • remove the code mentioned here before
  • change the signature method in all projects like mentioned before too

Thanks so much!

I don't know if you really need to disable crsutil, you can try without it.

@Federacolo
Copy link

Thanks @mmg1988 Finally I got my Xbox 360 wireless controllers working.

Macbook Air M1 mac OS: Ventura 13.1 Xbox 360 Wireless Receiver for Windows (Model 1086) Xbox 360 Wireless Controller (I have three controllers, successfully got all of them being connected at the same time.) Screenshot 2023-01-06 at 19 08 30

My Steps are just combination of below steps:

STEPS:

  1. Boot into Recovery mode (hold ⌘-R at boot). Open Terminal (Utilities -> Terminal).
  2. Type spctl kext-consent add G947KKM5RL
  3. Press return.
  4. Type kmutil trigger-panic-medic --volume-root "/Volumes/Macintosh HD"
    (If driver name is different then replace “Macintosh HD” with whatever your drive is named; press Tab at the end of typing "/Volumes/" to get a hint).
  5. Press return.
  6. Reboot.
  7. Once at desktop, load terminal
  8. Type sudo kmutil load -p /Library/Extensions/360Controller.kext

If you don't have signing certificate

  • Reboot in Recovery Mode
  • Type: csrutil enable --without kext
  • Restart
  • Finally run in terminal: sudo kextutil /Library/Extensions/360Controller.kext and should works

Furthermore, we have to allow kernel extensions:

  1. Boot into Recovery mode (hold ⌘-R at boot).
  2. Click "Utilities" on the menu bar.
  3. Go to "Startup Security Utility".
  4. Go to "Security Policy".
  5. Select "Reduce Security" and check "Allow user management of kernel extensions from identified developers".
  6. Select "OK"
  7. Reboot (Click "Apple Menu" => "Restart" in the menu bar).

Then you will see the Wireless Receiver with constantly green light, that indicates receiver get fully working now. So we can connect all controllers to attach to this receiver.

THANK YOU. Got it working on MacBook m3 Pro 14", Sonoma 14.4.1 with wired xbox 360 controller. I use the build from @mmg1988 (https://github.com/360Controller/360Controller/files/9063388/Install360Controller.pkg.zip) and run csrutil disable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests