NZXT AIO Water Coolers and macOS

If you wish to remain with water cooling there are few options:

  • You can boot Windows first to setup the cooler and reboot into macOS.
    • NZXT devices forget curves when a computer powers down.
    • Corsair and EVGA devices retain curves on-board until reset with the software.
  • You can use any one of these open source command line based tools - liquidctl, krakenx, leviathan, and OpenCorsairLink.

Most of these rely on libusb. There are issues with this. Apple revamped USB in 10.11 so they have a heavy reliance on ACPI. They also use kernel HID to communicate with devices in exclusive mode. Unlike Linux and Windows which can operate in shared mode. As such, you need to use hidapi to control water loops. The best repo to use is liquidctl/macos-extra. An issue pointed out on the master branch libusb requires unloading the kernel HID driver, which then renders all keyboards, mice, etc from working. You can reload the kext if you use a script. As in unload driver, start liquidctl then reload driver. But this came with issues. Sometimes I got a kernel panic, other times ports stopped working.

  1. Clone the macos-extra repo to your user folder. Should be /Users/username/liquidctl-macos-extra.
  2. Install Python 3. This is required.
  3. Terminal pip3 install --upgrade pip This is required.
  4. Terminal pip3 install /Users/username/liquidctl-macos-extra
  5. Terminal liquidctl list and then liquidctl status

Full documentation on how to control pumps and fans here: https://github.com/jonasmalacofilho/liquidctl/blob/macos-extra/docs/nzxt-kraken-x-3rd-generation.md#nzxt-kraken-x-3rd-generation

Should you need to power cycle for any reason, you can use launchd to automaticlly set a pump configuration upon login. This is cleaner and more appropriate than dropping a script.sh file in your startup items. I have already created a sample of that. See here.

  1. Copy liquidctlBoot.sh to your user folder.
  2. Terminal chmod +x ~/liquidctlBoot.sh to make it executable.
  3. Copy com.jonasmalacofilho.liquidctl.plist to ~/Library/LaunchAgents/.
  4. Terminal launchctl load ~/Library/LaunchAgents/com.jonasmalacofilho.liquidctl.plist.
  5. Power down so the pump forgets and defaults. Once you login, the script should run and the the lights should change.

Errors can be found in system.log using Console. This is a user item, so if you have more than one user, this will not run for anyone else. But that doesn't matter much since you don't need to run it for each user. You set your pump once and done.

Test your cooling with terminal yes > /dev/null & - You need one instance per core. So if you have four cores, you enter that four times. To stop, killall yes.

submitted by /u/cbabbx
[link] [comments]