• Become a Premium Member for $25/year with no ads to improve your community experience. Upgrade to Pro Account for faster response and no wait times!

SOLVED Instant wake after sleep with black screen

Status
Not open for further replies.

crypolarbear

New member
Joined
Oct 18, 2022
Messages
19
Motherboard
MSI Z590i Unify
CPU
10700k
Graphics
Rx 6800xt
OS X/macOS
13.x
Bootloader
  1. OpenCore (UEFI)
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
Hi everyone! I am new to the hackintosh community and this is my first post here. Recently, I tried to build a hackintosh with the msi z590i unify mothorboard, and one with the msi z590 ace, which is pretty similar to the z590i unify build. The one with z590 ace works pretty good with some minor issues, but the sleep/wake works fine. Although the efi config of the z590i unify one is basically edited from the z590 ace build, the sleep function seems to be broken for some reasons on it.

Here is the hardware:

Motherboard: MSI Z590i Unify
CPU: 10700k
Graphics: Rx 5300
Wifi & BT: Onboard Ax210
OS X: macOS Monterey 12.6
Bootloader: OpenCore
Mac: iMac20,2

It wakes immediately after going into sleep. And it just goes into a loop of continuously sleep and wake with black screen until I use the keyboard or mouse to wake it. I've tried to disconnect all usb devices and ethernet, and it still failed. The onboard ax210 wifi&BT module was enabled in bios, but I didn't include drivers for it and the usb port of BT wasn't mapped as well. I also tried to disabled it in the bios but the result remained the same. So I don't think it was the cause.

I looked up into the wake reason and found out the RP04 was the only reason, but there was no RP04 in my system. That's just weird.

Screenshot 2022-10-20 at 4.53.29 AM.png


Screenshot 2022-10-20 at 5.55.44 AM.png

The usb ports are all properly mapped. And the internal usb2.0 hub connector is set to intenal type as well, even though there is no device connected to it for now. I used the USBToolBox to map them. Both the UTBMap.kext with USBToolBox.kext and the USBMap.kext with Apple native management methods were tested, but the sleep still failed. I also tried using the universal ssdt files provided by the OpenCore guide and then generating my own ssdt files with SSDTTime. Make no difference in both cases.

Screenshot 2022-10-20 at 5.03.55 AM.png

The pmset seems fine as well.

Screenshot 2022-10-20 at 5.04.04 AM.png

The igpu is enabled for HW acceleration and set to display mode framebuffer 00009B3E since empty framebuffer for headless mode doesn't work at all. The z590 ace build has the same setting for igpu and the sleep function works fine, so I don't think it's cause.

I really have no idea of what affected the sleep function. Any ideas or help are much appreciated. The z590i unify is such a great option for hackintosh and I really want to make it work as perfect as I can. Spent many days on it. Hoping someone here can help me. Thank you!

Here is the PR files including EFI and ioreg.
 

Attachments

I’ve not seen anyone reporting this problem, so I have no idea where to get started. It has very little effect on the use of the hackintosh, but the long time waiting On each boot is still annoying. Hoping to get it fixed.
Can you provide a video of the scenario?
 
Here is the PR you may need for my current hackintosh setup. Thank you!
Here are a few issues.

Make the following changes to your config.plist

- The SSDT loading order is not correct. Important SSDTs should load first.
- Remove SSDT-EC and SSDT-USBX and use SSDT-EC-USBX. You can find this SSDT in the OpenCore package. You need to rename PCI0 to PC00 in the SSDT-EC-USBX.
- Remove SSDT-AWAC and use SSDT-AWAC-DISABLE. You can find this SSDT in the OpenCore package.
- Remove ResetLogoStatus Quirk in ACPI>Quirks section.
- Remove the entries from ACPI>Delete section.
- Remove the renames from ACPI>Patch section.
- Remove the entries from Booter>MmioWhitelist section.
- Remove the entry from Booter>Patch section.
- Remove PciRoot(0x0)/Pci(0x1F,0x3) from DeviceProperties>Devices section.
- Disable IGPU from BIOS. If disabling IGPU is not possible, use -wegnoigpu bootarg to disable the IGPU.
- Remove PciRoot(0x0)/Pci(0x1b,0x2)/Pci(0x0,0x0) from DeviceProperties>Devices section.
- Kexts loading order is not correct. Important Kexts should load first.
- Remove NVMeFix. It tends to create issues in some systems.
- Remove RestrictEvents. It is not required on your system.
- Set KernelArch to Auto.
- Remove the entry from Kernel>Block section.
- Remove the entry from Kernel>Force section.
- Remove the entries from Kernel>Patch section.
- Remove the entry from Misc>Entries section.
- Disable SIP using 67000000 as csr-active-config value.
- SMBIOS is not set properly. Set up your SMBIOS. Use iMac20,1.
- Drivers loading order is not correct. Important Drivers should load first.
- Remove HfsPlus.efi
- Remove the entries from UEFI>Reserved Memory section.

Once you're done with the changes, save your config.plist. Restart the system and reset NVRAM twice. Attach the new PR files.
 
I did all the changes and reset the nvram twice, but I have some questions about the changes though.
The SSDT loading order is not correct. Important SSDTs should load first.

Kexts loading order is not correct. Important Kexts should load first.
I didn't know the exact correct order of them, but I used the clean snapshot function of propertree to do the sorting. Is it right? I did used the ocvalidate tool in oc auxiliary tools to check the config.plist though.

- Remove SSDT-EC and SSDT-USBX and use SSDT-EC-USBX. You can find this SSDT in the OpenCore package. You need to rename PCI0 to PC00 in the SSDT-EC-USBX.
- Remove SSDT-AWAC and use SSDT-AWAC-DISABLE. You can find this SSDT in the OpenCore package.
I did this. As for the rest of SSDTs, are they good to use?
I got this SSDT-DTPG.aml from somewhere I don't remember. Should it be SSDT-DTPG.aml or SSDT-DTGP.aml? Just found out it's SSDT-DTGP.aml in your guide Enable TB4 hotplug.

I generated the SSDT-PLUG.aml, SSDT-USB-Reset.aml with SSDTTime.

And I generated the SSDT-TB3-HackinDROM.aml on HackinDROM.

- Disable IGPU from BIOS. If disabling IGPU is not possible, use -wegnoigpu bootarg to disable the IGPU.
I did disable the iGPU in BIOS, but why still keep the device property of iGPU patch?
 
Once you're done with the changes, save your config.plist. Restart the system and reset NVRAM twice. Attach the new PR files.
Now I booted the hackintosh with the new EFI, but I noticed a few problems.
dGPU HDMI audio is still missing.
Hardware acceleration failed.
 
Any specific reason you're using IGPU? RX 6800XT already supports HEVC.
The UHD630 is supported pretty well on Mac and enabling both iGPU and dGPU hardware acceleration can offer better performance, right? Plus, some Mac functions rely on the iGPU, such as sidecar. So I'd like to enable the iGPU for computing tasks only if it's possible.

Comet Lake IGPU is supported, regardless of the Motherboard series. Either 400 or 500 series.
Yes, I found out it's possible to have iGPU display output by patching the connectors, but I just want to make it work in headless mode for computing only. I've tries many headless mode framebuffers for cometlake, like 0300C89B, 0300C59B and 0300C49B. None was successful to turn on the headless mode. Decoder failed for all the cases. But with 07009B3E and 00009B3E, it was successful.

Are you using DP or HDMI?
Both cases had the same results.
That's weird.
I know! And it seems no one else has the same problem with dGPU HDMI audio.
 
Can you provide a video of the scenario?
Unfortunately the file size (23MB) exceeds the upload limit. But the whole process is as follow.

With Rx 6800xt:
Boot up to Picker -> enter the Apple logo and start loading (~3 sec) -> black screen (~15 sec with iGPU disabled, ~30 sec with iGPU enabled. Both DP and HDMI are the same) -> system login page

With Rx 5300:
Boot up to Picker -> enter the Apple logo and start loading (~3 sec) -> black screen (~5 sec. iGPU disabled or enabled are the same. Both DP and HDMI are the same) -> system login page

All cases enter black screen when the progress bar is as below.

Screenshot 2022-10-21 at 6.34.45 AM.png

Good news is the dGPU HDMI audio problem was gone with Rx6800xt installed. It's just weird, could be hardware compatibility problem. But I think the hackintosh is working good enough for me. The headless mode and long bootup black screen are just minor issues. Won't be a problem for daily usage.

Thanks again for your help! It's great to have such support from the community! Hoping this post could be helpful for anyone who finds the same problems.
 
Last edited:
I didn't know the exact correct order of them, but I used the clean snapshot function of propertree to do the sorting. Is it right? I did used the ocvalidate tool in oc auxiliary tools to check the config.plist though.
Yes, it is explained in the installation guide. However, I'll re-mention here. In your case, the sorting order should be like this.

ACPI
  • SSDT-ECUSBX
  • SSDT-AWAC-DISABLE
  • SSDT-DTGP
  • SSDT-TB3
  • SSDT-USB-Reset
  • SSDT-PLUG
Kexts
  • Lilu
  • VirtualSMC
  • WhateverGreen
  • AppleALC
  • SMCSuperIO
  • SMCProcessor
  • RadeonSensor
  • SMCRadeonGPU

I did this. As for the rest of SSDTs, are they good to use?
Yes, the rest looks good.
I got this SSDT-DTPG.aml from somewhere I don't remember. Should it be SSDT-DTPG.aml or SSDT-DTGP.aml? Just found out it's SSDT-DTGP.aml in your guide Enable TB4 hotplug.
DTGP is the right one.
I generated the SSDT-PLUG.aml, SSDT-USB-Reset.aml with SSDTTime.
It is always preferred to use the SSDTs from the OpenCore package.
And I generated the SSDT-TB3-HackinDROM.aml on HackinDROM.
It's fine.
I did disable the iGPU in BIOS, but why still keep the device property of iGPU patch?
Yes, better to delete that too.
 
Now I booted the hackintosh with the new EFI, but I noticed a few problems.
dGPU HDMI audio is still missing.
Hardware acceleration failed.
Which GPU? Are you using a Certified cable? Are you using DP or HDMI? Have you connected a monitor or TV?

Hardware acceleration or HEVC?
 
The UHD630 is supported pretty well on Mac and enabling both iGPU and dGPU hardware acceleration can offer better performance, right? Plus, some Mac functions rely on the iGPU, such as sidecar. So I'd like to enable the iGPU for computing tasks only if it's possible.
Not really.
The Intel IGPU offers Quick Sync which is useful for exports and like you mentioned, some of the functions on Mac rely on IGPU such as AirPlay, DRM, and SideCar. If you don't have such usage, it is always recommended to disable the IGPU and use dGPU instead and use H.265 to export. Of course, if you have a supported GPU for that feature.
Yes, I found out it's possible to have iGPU display output by patching the connectors, but I just want to make it work in headless mode for computing only. I've tries many headless mode framebuffers for cometlake, like 0300C89B, 0300C59B and 0300C49B. None was successful to turn on the headless mode. Decoder failed for all the cases. But with 07009B3E and 00009B3E, it was successful.
That's the correct value for ig-platform-id and device-id.
Both cases had the same results.
Okay.
I know! And it seems no one else has the same problem with dGPU HDMI audio.
Is your AppleALC latest?
 
Status
Not open for further replies.

Forum statistics

Threads
1,926
Messages
17,941
Members
27,723
Latest member
by_chu