@Jandalf I recently had to reset my System Integrity Protection settings (csrutil clear
) and once again ran into this issue, where my Razer device was not recognized.
I have upgraded to macOS Big Sur 11.1, and I can confirm that the solutions by @avaddon and @rdabban, which had worked for me on 11.0, no longer work.
Manually loading the kernel extension (the kextload
command) will display the error code 27 "Extension with identifiers com.razer.common.razerhid not approved to load. Please approve using System Preferences.
", but no pop-up or "Allow" option would appear anywhere on the System Preferences.
Adding the Razer TeamID with the /usr/sbin/spctl kext-consent add R2H967U7J8
command showed me a pop-up, but with no "Allow" option, and no option to allow the kernel extension would appear in the System Preferences, so no good.
I finally managed to make it work by temporarily disabling System Integrity Protection (SIP), as follows:
- Boot into Recovery Mode. This can be done by restarting your computer and holding
Cmd+R
on boot until a loading bar shows up. - Once in Recovery Mode, sign in with your account and open a terminal. You can find it in the top menu under Utilities > Terminal.
- Disable SIP by running the following command:
csrutil disable
. - Close the terminal and reboot (normal reboot, not into Recovery Mode).
- Open a terminal and load the extension with the following command:
sudo kextload /Library/Extensions/RazerHid.kext
. - Reboot (normal reboot, not into Recovery Mode) and confirm that your Razer device is now correctly detected.
- Now we must reenable SIP to maintain system security. This should not break your device. Boot once more into Recovery Mode, open a terminal, run
csrutil enable
, close the terminal and reboot.
You should now be able to load your Razer device AND have SIP enabled.
Good luck y'all!
there is an much more easy way of thoing this : with uhubctl
to install this on macos :
make sure you have the latest xcode command line tools , you can force this by typing in a terminal window
install uhubctl by typing in a terminal window
use uhubctl to give a list of your ports by typing in the terminal window
where this a part of my result i get
Current status for hub 20-6 [0bda:5411 Generic 4-Port USB 2.0 Hub, USB 2.10, 4 ports, ppps]
Port 1: 0503 power highspeed enable connect [0bda:5411 Generic 4-Port USB 2.0 Hub, USB 2.10, 4 ports, ppps]
Port 2: 0100 power
Port 3: 0103 power enable connect [1532:0046 Razer Razer Mamba Tournament Edition]
Port 4: 0100 power
example to use wich you then can use in a script or whatever
so the -l is the number of the hub you select (for me that was 20-6) and the -p is the port on that hub (port 3 for me)
-a cycle is to powercycle that port and -d 2 is to leave 2 second between the power off and on (for example you can set an delay here or for the uhubctl command in your sript also with for example "sleep 7"
so the same as your python scrypt would be
then save it as yourscript.sh
to make it executable
to set an sh script to run at login change the .sh to .command to make your script directly executable wich you then can also add directly in system preferences > youraccount > login
that works pretty fine for me :)