Contribute
Register

Gigabyte Z490 Vision D (Thunderbolt 3) + i5-10400 + AMD RX 580

@CaseySJ, did you have the opportunity to test the behavior of the LED controller?
I also noticed that when the PC wakes up, the LED color settings are also reset.
Yes, I see the same behavior. When system sleeps, the devices on all USB ports are ejected. I believe this causes the ITE Tech controller to reset itself. Even though we've configured HS12 as Type 255 (internal), it gets ejected during sleep.

Currently we use LaunchDaemon to run a liquidctl script at boot. Wondering if that script can also be run after wake-from-sleep...
 
Yes, I see the same behavior. When system sleeps, the devices on all USB ports are ejected. I believe this causes the ITE Tech controller to reset itself. Even though we've configured HS12 as Type 255 (internal), it gets ejected during sleep.

Currently we use LaunchDaemon to run a liquidctl script at boot. Wondering if that script can also be run after wake-from-sleep...
May be sleepwatcher (brew install sleepwatcher) can help...
 
May be sleepwatcher (brew install sleepwatcher) can help...
Yes exactly -- was testing SleepWatcher immediately after posting. It works!

Will add that to the RGB Fusion config post.
 
*** Mini-Guide: Configuring liquidctl to Run at Login and Wake-from-Sleep ***
Please do not quote this mini guide in its entirely. Post a link instead

31-Jul-2020: liquidctl 1.4.0 is now available


Liquidctl is a Python application that manages LEDs and fans on a number of devices from Corsair, NZXT, EVGA, Gigabyte, and others. It is actively developed and maintained on GitHub at this location. Support for Gigabyte RGB Fusion 2.0 is available in liquidctl 1.4.0 and newer.

The RGB Fusion 2.0 driver for liquidctl defines 8 channels that are generically named led1, led2, ... led8. The driver supports the ITE Tech 0x5702 controller found on Z490 Vision D and Vision G, and also the ITE Tech 0x8297 controller found on Gigabyte's X570 motherboards. Not every motherboard supports all 8 channels. One of the first operations we should do is to map out channel names to their physical ports. This has already been done for the Z490 Vision D, as follows:

led1 This is the LED next to the IO panel
led2 This is one of two 12V RGB headers
led3 This is the LED on the PCH chip ("Designare" on Vision D)
led4 This is an array of LEDs behind the PCI slots on *back side* of motherboard
led5 This is second 12V RGB header
led6 This is one of two 5V addressable RGB headers
led7 This is second 5V addressable RGB header
led8 Not in use

Step 1: Install Homebrew and liquidctl
The best way to install liquidctl on macOS is with the Homebrew package installer. Homebrew is also an open-source project on GitHub. Open the spoiler for instructions.
If Homebrew is not installed, it may be installed in Terminal by typing:
Code:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Now we can install liquidctl as follows:
Code:
brew install liquidctl
Step 2: Experiment with liquidctl
We can now run a series of liquidctl commands to detect, initialize, monitor and control compatible devices. Open the spoiler for instructions.
We start with the simple command:
Code:
liquidctl list
This scans the USB bus and lists all compatible devices. Each device has an ID and a Name. If multiple devices are found, their ID or Name must be specified. For example:
Code:
liquidctl list
Device ID 0: Gigabyte RGB Fusion 2.0 (experimental)
Device ID 1: NZXT Smart Device V2 (experimental)
To initialize the device or obtain status information or control lights/fans, we specify either the device ID with the -d argument, or any part of the device name with the -m argument. Because device IDs might change, it is strongly recommended to use device name instead.

To initialize the NZXT device we can type the following (note: use full pathname of liquidctl):
Code:
/usr/local/bin/liquidctl -m NZXT initialize
Similarly, to initialize the Gigabyte RGB Fusion device we can type:
Code:
/usr/local/bin/liquidctl -m RGB initialize
Notice that -m can specify any part of the device name, not just the first few characters.
Step 3: Create a script to set color and fan modes automatically
Once we've experimented with the various capabilities of liquidctl, we create a script will be used to configure each of the compatible devices automatically when the system boots up and when it wakes from sleep. Open the spoiler below for instructions.
An sample script might look like this (note: use full pathname of liquidctl):
Code:
#!/bin/bash

# initialize the device before use
/usr/local/bin/liquidctl -m Gigabyte initialize
/usr/local/bin/liquidctl -m NZXT initialize

# set all color channels on Gigabyte RGB Fusion 2.0 device to "color-cycle"
/usr/local/bin/liquidctl -m Gigabyte set sync color color-cycle

# set color on NZXT 'led2' color channel to 'spectrum-wave'
/usr/local/bin/liquidctl -m NZXT set led2 color spectrum-wave
The first line #!/bin/bash tells macOS to use the 'bash' shell to run the scripts. We can save this file to /Users/Shared/liquidctl-startup.sh and enable file execute permissions by typing this in Terminal:
Code:
chmod +x /Users/Shared/liquidctl-startup.sh
Now we can test the script by typing:
Code:
cd /Users/Shared
./liquidctl-startup.sh
We can refine the script until it produces the desired effects.
Step 4: Launch the script automatically on login
Now we configure macOS to run the script automatically when it boots up and the user logs in. Open the spoiler for instructions.
We use the powerful, but highly underused application called Automator to create a simple task that starts automatically when the user logs in to the computer. Automator is a standard feature of macOS and exists in the Applications folder.
Screen Shot 2020-06-14 at 10.22.45 AM.png

Launch Automator and select New Document from the dialog box that will appear. Then select Application as shown:
Screen Shot 2020-06-14 at 10.23.53 AM.png

Scroll the action list, select Run Shell Script, and drag-and-drop it into the workflow pane on the right side:

Screen Shot 2020-06-14 at 10.25.22 AM.png

Then click the Shell pop-up and choose /bin/bash as shown:
Screen Shot 2020-06-14 at 10.27.59 AM.png
Screen Shot 2020-06-14 at 10.27.48 AM.png

In the edit box, simply type the full pathname of the liquidctl-startup.sh script that was created in Step 3:
Screen Shot 2020-06-14 at 10.32.38 AM.png

The Automator task is complete, so select File --> Save... and save it in the Applications folder with the name Start Liquidctl. A new icon will appear in the Applications folder as follows:
Screen Shot 2020-06-14 at 10.35.04 AM.png

Now we tell macOS to launch this Automator Application when the user logs in. This is done easily by adding it to Login Items in System Preferences --> Users & Groups. This is shown below.
Screen Shot 2020-06-14 at 10.36.55 AM.png

Feel free to reboot the computer, log back in, and check if the LEDs/Fans are automatically configured.
Step 5: Restore lighting effects after wake-from-sleep
Some devices such as Gigabyte RGB Fusion 2.0 lose their configured settings when the system goes to sleep. Other devices such as NZXT Smart Device, for example, retain their configured settings during sleep. For device that lose their configured settings (e.g. Gigabyte RGB Fusion 2.0) we can follow a simple procedure to automatically configure those settings when the system wakes from sleep. Open the spoiler for instructions.
If a device remembers its settings after waking from sleep, this step can be omitted. But for devices such as Gigabyte RGB Fusion 2.0 whose settings are reset when the system goes to sleep, we can follow this procedure to re-apply the settings automatically upon wake-from-sleep.

We begin by installing a simple utility called sleepwatcher as follows:
Code:
brew install sleepwatcher
Then we edit the following newly created file using a text editor or Plist editor:
  • /usr/local/Cellar/sleepwatcher/2.2.1/de.bernhard-baehr.sleepwatcher-20compatibility-localuser.plist
And make it look like this:

XML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>de.bernhard-baehr.sleepwatcher</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/sbin/sleepwatcher</string>
        <string>-V</string>
        <string>-w /Users/Shared/liquidctl-wakeup.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>
Now we create a file called liquidctl-wakeup.sh in /Users/Shared that contains all the liquidctl commands we want to issue to devices that do not remember their settings after waking from sleep. In this simple example, we set all of the Gigabyte RGB Fusion 2.0 color channels to yellow:
Bash:
#!/bin/bash
/usr/local/bin/liquidctl -m Gigabyte set sync color static FFFF00
  • Multiple liquidctl commands may be added to control each channel independently.
  • Colors are specified as RRGGBB values.
Then we add file-execute permission in Terminal:
Bash:
cd /Users/Shared
chmod +x liquidctl-wakeup.sh
Now we start the sleepwatcher service in Terminal:
Code:
brew services start sleepwatcher
And we're done. When the system wakes from sleep, it will take about 10 seconds before the lighting/fan effects are rendered.
Step 6: Examine the /Users/Shared folder
To ensure that the (a) startup and (b) wakeup scripts have been created and have the proper permission, open the spoiler below for instructions.
Begin by typing:
Code:
cd /Users/Shared
ls -l liquidctl*
You should see the following (with your user name instead of casey):
Code:
-rwxr-xr-x  1 casey  wheel  79 Jun 14 04:12 liquidctl-startup.sh
-rwxr-xr-x  1 casey  wheel  79 Jun 14 04:28 liquidctl-wakeup.sh
Note that both files have -rwxr-xr-x permissions. This is necessary.
Congratulations! Task completed.


Maintenance Operations:
We can perform a number of update, stop, and remove operations for liquidctl and sleepwatcher. Open the spoiler for instructions.
We can update and remove liquidctl using these commands:

To update liquidctl when a new version is released:
Code:
brew update liquidctl
To delete liquidctl if we no longer wish to use it:
Code:
brew remove liquidctl

Similarly we can stop the sleepwatcher service and remove sleepwatcher itself using these commands:

To stop the sleepwatcher service:
Code:
brew services stop sleepwatcher
To delete sleepwatcher:
Code:
brew remove sleepwatcher
 
Last edited:
Hello CaseySJ

May I ask on your MSI Armor RX580 that you link too, dose the DVI port work? Since I have not built a hackintosh in years I am trying to catch up on my research before purchasing hardware. So I had read online MSI Radeon GPU's not showing apple screen on boot up, but they do finally arrive at login/desktop... is this true or am I misinformed as those were real Apple hardware users posting? (I have been running an MSI Envidia for years and would like to stick wth the brand)

Thank you.
 
Hello CaseySJ

May I ask on your MSI Armor RX580 that you link too, dose the DVI port work? Since I have not built a hackintosh in years I am trying to catch up on my research before purchasing hardware. So I had read online MSI Radeon GPU's not showing apple screen on boot up, but they do finally arrive at login/desktop... is this true or am I misinformed as those were real Apple hardware users posting? (I have been running an MSI Envidia for years and would like to stick wth the brand)

Thank you.
Hello @JBX,

Up in San Francisco we have the Museum of Modern Art (MoMA), and down here in Silicon Valley I have my personal Museum of Ancient Technology (MoAT). The entrance to MoAT is usually locked, but since it's a just a big rock put there by Paleolithic cavemen, it's easy enough to open. Lo and behold, I found a DVI cable in the dark corners of the museum, but a monitor with a DVI input even predates the cavemen, so no such thing was found. Fortunately, this ancient relic (i.e. the DVI cable) has an HDMI connector on the other end, no doubt the work of alchemists like Merlin. So I connected it to my 21st Century monitor via the RX 580 and was pleasantly surprised to see that:
  • BIOS works
  • Clover / OpenCore boot menu works
  • macOS works
When macOS loads up, there's a purple tint, perhaps due to the accumulated rust over the centuries, but if we were to go even further back in time we might find a DVI-to-DVI cable and a matching DVI monitor, and together the two might work well.

P.S. Hope I made my point! :)


Screen Shot 2020-06-13 at 10.33.53 AM.png
 
Last edited:
It's also a good idea to remove the CMOS battery for 30 seconds as mentioned by @alchymista or perform a CMOS Reset. BIOS parameters and CFG-Lock should both be re-configured afterwards.

Super suggestion, thanks @CaseySJ and @alchymista! That fixed the issue entirely: after a (lengthy) CMOS reset, removing all cables etc, my GPU was recognized in the BIOS and I got display directly from the GPU HDMI port. Solved! :clap:

After formatting the NVME drive, I hit the error
This copy of the Install macOS Catalina application is damaged, and can’t be used to install macOS.
1592070875483.png

I was able to fix this easily following the suggestion that the system date might be the problem, using Terminal:
Code:
date 060612442020
Then the installer proceeded.

I'm now hitting this bump in installation with two minutes left to completion:
An error occurred validating the installer data. The download is either damaged or incomplete. Redownload the installer and try again.
1592070662825.png


This may be just a usual install issue—and perhaps I should follow the simple direction to redownload—but I wondered if this was something you'd bumped into before, and if you had any specific suggestions. Any chance the date issue above is related?
 
Super suggestion, thanks @CaseySJ and @alchymista! That fixed the issue entirely: after a (lengthy) CMOS reset, removing all cables etc, my GPU was recognized in the BIOS and I got display directly from the GPU HDMI port. Solved! :clap:

After formatting the NVME drive, I hit the error

View attachment 475880
I was able to fix this easily following the suggestion that the system date might be the problem, using Terminal:
Code:
date 060612442020
Then the installer proceeded.

I'm now hitting this bump in installation with two minutes left to completion:


This may be just a usual install issue—and perhaps I should follow the simple direction to redownload—but I wondered if this was something you'd bumped into before, and if you had any specific suggestions. Any chance the date issue above is related?
When we remove the CMOS battery, it's possible that the date reverts to something very old. So we should set the correct date and time in BIOS.

If that alone does not help then it might be necessary to re-download the macOS installer and try again. Follow the procedure carefully in Steps 1 and 2.
 
CaseySJ, lol that was funny.

I do have a DVI-HDMI cable... So with that MSI RX580 it will work.

As far as the boot up, I was referring to Verbose and the black Apple load screen not being seen by MSI radeon card users.
 
Last edited:
Please try Step 4 from Post #1. Download the OpenCore 0.5.9 zip file (bottom of Post #1) and follow Step 4. If you need help, just ask.
back again, i did all the things from zero, comes out with the same result, strange thing is, i couldn't get it boot up with your efi file, so i use your kexts and acpi files, and i rebuilt the config.plist, but same results, whether if i chose imac or macpro.... i can see my igpu in hackintool, but it doesn't appear either in my sysinfo or videoproc... kind of frustrating... can you please check my efi file for me?
many thanx
 

Attachments

  • OC.zip
    2.1 MB · Views: 116
Last edited by a moderator:
Back
Top