It turns out all we need to do is stop /usr/libexec/ioupsd (UPS daemon) from running...
1) Mount the root filesystem as RW - "sudo mount -uw /"
2) Rename ioupsd to something like ioupsd.ORIG (for safekeeping)
3) Reboot
4) Mount the root filesystem as RO - "sudo mount -ur /"
Done and done!
Thanks to @lambusser on the [SUCCESS] Gigabyte Designare Z390 (Thunderbolt 3) + i7-9700K + AMD RX 580 thread for finding a solution to this problem.
All credit goes to @lambusser for finding this!
It's most not the most elegant solution, but as an interim 'fix' it does its job. I have tried it and it works.
Notes:
- Installing macOS updates will most probably re-install the daemon and you will have to re-do the fix;
- If you do have a UPS, removing the UPS daemon will cause macOS to not respond to the UPS commands and therefore the Mac will not shutdown;
- But until another fix can be found, it's worth the trouble to fix this.
This is the @lambusser fix:
So a great find on StackExchange about dealing with daemons in general gave me this!
#!/bin/sh
while sleep 999999999; do :; done
So the good news is that powerd only cares that ioupsd is running and doesn't look for specific output from it. Replacing ioupsd with the above script is working perfectly. System performance is as-expected (powerd is happy that it sees ioupsd running) and all devices are available for passthrough and control (if desired) to a Win10 VM.
#!/bin/sh
while sleep 999999999; do :; done
jb@titan libexec % ls -al ioupsd*
-rwxr-xr-x 1 root wheel 44 1 Apr 10:13 ioupsd
-rwxr-xr-x 1 root wheel 45712 18 Mar 02:42 ioupsd.ORIG
jb@titan libexec %
Positives / Issues:
- This allows any/all Corsair devices to remain attached to your system and you can pass them through (if you wish) to a Win10 VM and control everything from there
- The above method tricks the powerd daemon into thinking everything's ok with ioupsd
- You will NOT be able to use a UPS attached to the system via USB or Serial as ioupsd is effectively "missing"
- Sleep is still an issue as the Corsair components are chatty and they keep waking up the system right after it goes to sleep.
Is there a solution like this for macOS Big Sur? I have tried the above but there are issues with file system security and file read/write privileges!Hi @Piero2411 and others that are having these issues.
@lambusser came up with a fix and documented it here but this thread was not updated with the new 'fix'.
I have been using this 'fix' since 1st April, and have not had any problems, but please note that this is not a perfect solution as it does have some drawbacks, but until Apple stops identifying the Corsair Commander as a UPS, then it's the only known solution that works at the moment that still allows you to use your Corsair devices attached to the Corsair Commander.
To give a happy ending to this thread, I will copy the 'fix' here updated and expanded to make it easier for non-technical users to follow. If you have any problems please give me a yell.
The Fix:
- Open a terminal:
Run Applications/Utilities/Terminal- Become superuser:
sudo su -- Mount the root filesystem as Read & Writable):
mount -uw /- Change the current directory to where the ioupsd file is located:
cd /usr/libexec- Rename ioupsd for safekeeping:
mv ioupsd ioupsd.ORIG- Create a new file named "ioupsd" using your favorite text editor. I'll use nano:
nano ioupsd- Now enter the two code lines:
Bash:#!/bin/sh while sleep 999999999; do :; done
- Save this file and exit editor. If using nano, type:
Ctrl O to save and then Ctrl X to exit nano.- Now to make it readable and executable for everyone type:
chmod a+x ioupsd- Now to make sure you have the right permissions and have the original file renamed type the following and compare it to my example:
ls -al ioupsd*
Bash:jb@titan libexec % ls -al ioupsd* -rwxr-xr-x 1 root wheel 44 1 Apr 10:13 ioupsd -rwxr-xr-x 1 root wheel 45712 18 Mar 02:42 ioupsd.ORIG jb@titan libexec %
- Reboot the computer and you should not be getting the UPS error message on login.
- Now open a terminal again and type the following command to make the root file system Read Only (R/O):
sudo mount -ur /