Contribute
Register

How to build your own iMac Pro [Successful Build/Extended Guide]

Status
Not open for further replies.
Please also provide snapshots of your BIOS settings!

Here all the BIOS settings you provided in your guide. I noticed secure boot was active, il cleared all the keys and tried to boot again, then the system stacked at:

AppleUSBHostPort : : forcePowerGated: kPowerStateSleep completed with 0x0000000 after 1512572ms
4E012B62-2178-45FC-8EFF-21D5BC60960F.jpeg
A4B4D7B0-531D-4F92-B03A-6F24C3926719.jpeg
D2B5DFBC-8FFE-4723-9B43-37B97B655049.jpeg
E0B1B20F-CA47-4BDF-9ED3-C7EFB20323F7.jpeg
8FAC9B61-7077-458D-B136-25CF78FF43F2.jpeg
B932DBAD-5C98-426E-9E5F-CA94CD868560.jpeg
EF5033F3-83BE-4D74-9C71-B4B3268EBC95.jpeg
D4C3FEC0-C6A6-41C6-9194-F1F95D624A85.jpeg
A31BCE78-B13B-42DC-ABC7-55703A9E86DB.jpeg
5B3BF80F-ACE5-4C55-9380-00D664F08D6B.jpeg
4C5B2160-0AF3-4881-B697-C1CCE19552FC.jpeg
CCF47263-43CE-4F44-8FE8-6577B94C9D71.jpeg


Then I tried again and it again stops working showing a blank screen / no signal to the monitor
 
Thank you for the response @flmmkr. I want to get something that will keep the 7940x cooler. I asked Corsair and they felt the H115 wasn't that big a difference compared to a H100i. Gonna do some research on water coolers. If anyone has suggestions, I'd love to hear them.
No AiO will be good enough to cool a 14 cores with sync to all cores set...

Of course, if you don't use the CPU much it will be fine, but run the CPU at 100% for several minutes, and the water temperature will start raising with no way to cool down...
My 7980xe only had to run 100% for 5 minutes for the water in the H115i to go over 75C...

Even with my current custom water cooling (with 2x360mm 6cm thick) I can't get the CPU going at more than 4.2GHz on all cores.
 
After I changed my BIOS CPU settings, I didn't get any system freezing for hours. When I unplugged my Apollo twin, it froze.

Also, I'm not sure if you saw the post by flmmkr. Sounds like our water coolers might not be strong enough to keep our 7940s safely cooled in "Sync All Cores" mode.

@garbage914 Yeah that's concerning. Keep me posted on this... Im not sure what other options there are apart from H115 Pro and X52 / X62 etc.
 
Here all the BIOS settings you provided in your guide. I noticed secure boot was active, il cleared all the keys and tried to boot again, then the system stacked at:

AppleUSBHostPort : : forcePowerGated: kPowerStateSleep completed with 0x0000000 after 1512572ms
View attachment 339975 View attachment 339976 View attachment 339977 View attachment 339978 View attachment 339979 View attachment 339980 View attachment 339981 View attachment 339982 View attachment 339983 View attachment 339984 View attachment 339985 View attachment 339986

Then I tried again and it again stops working showing a blank screen / no signal to the monitor

Change:

1.) AVX Instruction "Auto" -> "3"
2.) AVX-512 Instruction "Auto" -> "2"
3.) I miss a screen shot showing "Onboard Device configuration"
4.) I miss a screen shot showing "Boot configuration"
5.) Why under "Boot Option Priorities" there is no OSX system disk? Did you format the latter with HFS+ and a GUID partition table and equip the latter with an EFI-Folder?
6.) Also under "Boot Override" there is only the Windows Boot manager and neither your USB macOS Flash Drive Installer nor the OSX system disk

Please provide missing details and modify settings as indicated above...
 
Attached EFI Folder!

I built the system, installed Win 10 to check if hardware was ok (temps, fans, peripherals etc...) on a SATA Drive, then I applied all the settings on ASUS 1401 Bios as described in your guide starting from scratch (optimized default) and check if all temps and fans were ok in Q-Fan (ASUS bios app for temps/fan management).

I previously prepared my USB stick with high Sierra, in which I copied the EFI Folder you provided in your guide using Clover Config on my iMac. I booted this USB stick, clover boot loader showed properly, then I chose "Boot from USB Install High Sierra" and system started writing all those lines of (I presume) code ?!?! I suppose that was verbose mode? since boot arguments were by default: -v etc... I also tried to boot the usb drive with no arguments but the results were the same --> as showed on the video, the system makes some stuff of lines of code and at some point (maybe when the macOS installer should run) the monitor loses the video signal, the pc stays on but nothing happens.

If needed I can provide an higher resolution video of what happens using YouTube.

Thanks @kgp ! @izo1 feel free to join us! I appreciate your help, I'll stop complaining.

EFI-Folder Errors:

1.) You are missing a properly adopted TSCAdjustReset.kext in /EFI/Clover/kexts/Other! Without this file your system will never boot! You promised me to implement the latter file several weeks ago.

2.) You should disable FredWST DP/HDMI patch in the config.plist in Section "Kernel and Kext Patches" of Clover Configurator. You are using a Vega, no need for this kext patch.

3.) You seem to miss Board Serial Number, Serial Number and SmUUID in your config.plist in Section SMBIOS of Clover Configurator. Without these SMBIOS credentials you won't be able to login to iCloud and you will not be able to use iMessage and Facetime! Or did you just remove the latter information from your config.plist, before uploading your EFI-Folder (which would be totally fine)?

Complete 1.) to 3.) and you should be able to successfully boot your system.

Good luck :thumbup:

KGP
 
Last edited:
05F663D2-6861-46B1-B71E-95A8CA0755FB.jpeg C89C24E3-39D1-4D35-98C1-EB768B4D805F.jpeg B65DF70B-3A26-4882-A7A0-F9615D47DED2.jpeg 913CFBA2-B6C3-4EE8-A74E-2537B1DCD2D4.jpeg
1. Done
2. Done
3. Attached
4. Attached
5. My 970 Pro is in the M.2 slot but is not formatted at all, totally un allocated, ‘cause i have no way to format it from a Mac!
6. Attached (Kingston is the USB High Sierra Install)
 
View attachment 340001 View attachment 340002 View attachment 340003 View attachment 340004
1. Done
2. Done
3. Attached
4. Attached
5. My 970 Pro is in the M.2 slot but is not formatted at all, totally un allocated, ‘cause i have no way to format it from a Mac!
6. Attached (Kingston is the USB High Sierra Install)

o.k., great.. I already detailed your EFI-Folder errors, but post #9074 is still awaiting moderator approval and is yet invisible to other visitors, including yourself. Especially note Error 1.). You promised my to include a properly adopted TSCAdjustReset.kext in /EFI/Clover/kexts/Other, but you did not. This way your system will never boot, my friend. ;)

Moderation, could you please approve post #9074 as soon as possible? The contained information is urgently required by user @pieropontra.
 
I HACK FROM X99 FROM YOUR MOTHERBOARD.
Code:
 OperationRegion (PXCS, PCI_Config, Zero, 0xE0)
                Field (PXCS, AnyAcc, NoLock, Preserve)
                {
                    VDID,   32,
                    Offset (0x54),
                        ,   6,
                    HPCE,   1,
                    Offset (0x5A),
                    ABPX,   1,
                        ,   2,
                    PDCX,   1,
                        ,   2,
                    PDSX,   1,
                    Offset (0x5B),
                    Offset (0x60),
                    Offset (0x62),
                    PMEX,   1,
                    Offset (0xDC),
                        ,   31,
                    PMCS,   1
                }

                Method (DEVS, 0, NotSerialized)
                {
                    If (LEqual (VDID, Ones))
                    {
                        Return (Zero)
                    }
                    Else
                    {
                        Return (0x0F)
                    }
                }

                Method (HPME, 0, Serialized)
                {
                    If (PMEX)
                    {
                        Store (0xC8, Local0)
                        While (Local0)
                        {
                            Store (One, PMEX)
                            If (PMEX)
                            {
                                Decrement (Local0)
                            }
                            Else
                            {
                                Store (Zero, Local0)
                            }
                        }

                        Store (One, PMCS)
                    }
                }

                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    Return (GPRW (0x09, 0x04))
                }

                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM ())
                    {
                        Return (AG16 ())
                    }

                    Return (PG16 ())
                }

REMOVE
Code:
  Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    Return (GPRW (0x09, 0x04))
                }
ADD UNDER XHC5
Code:
  Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                    {
                        Return (Package (0x02)
                        {
                            0x6D,
                            Zero
                        })
                    }
 
  • Like
Reactions: kgp
I HACK FROM X99 FROM YOUR MOTHERBOARD.
Code:
 OperationRegion (PXCS, PCI_Config, Zero, 0xE0)
                Field (PXCS, AnyAcc, NoLock, Preserve)
                {
                    VDID,   32,
                    Offset (0x54),
                        ,   6,
                    HPCE,   1,
                    Offset (0x5A),
                    ABPX,   1,
                        ,   2,
                    PDCX,   1,
                        ,   2,
                    PDSX,   1,
                    Offset (0x5B),
                    Offset (0x60),
                    Offset (0x62),
                    PMEX,   1,
                    Offset (0xDC),
                        ,   31,
                    PMCS,   1
                }

                Method (DEVS, 0, NotSerialized)
                {
                    If (LEqual (VDID, Ones))
                    {
                        Return (Zero)
                    }
                    Else
                    {
                        Return (0x0F)
                    }
                }

                Method (HPME, 0, Serialized)
                {
                    If (PMEX)
                    {
                        Store (0xC8, Local0)
                        While (Local0)
                        {
                            Store (One, PMEX)
                            If (PMEX)
                            {
                                Decrement (Local0)
                            }
                            Else
                            {
                                Store (Zero, Local0)
                            }
                        }

                        Store (One, PMCS)
                    }
                }

                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    Return (GPRW (0x09, 0x04))
                }

                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM ())
                    {
                        Return (AG16 ())
                    }

                    Return (PG16 ())
                }

REMOVE
Code:
  Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    Return (GPRW (0x09, 0x04))
                }
ADD UNDER XHC5
Code:
  Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                    {
                        Return (Package (0x02)
                        {
                            0x6D,
                            Zero
                        })
                    }

Thanks, man! :thumbup:
 
Even with the VegaFixup kext? weird...

Can you try to adopt and use SSDT-Vega-ASUS-Prime-X299-Deluxe-Slot-1.aml.zip? Maybe it even makes VegaFixup kext obsolete? Would be interesting if you could test it.

Note that this is a Vega SSDT stand alone version. If you use it in combination with SSDT-X299-TB3-iMacPro.aml and SSDT-X299-iMacPro.aml, you have to remove:

Code:
    OperationRegion (GNVS, SystemMemory, 0x4FEE6918, 0x0403)
    Field (GNVS, AnyAcc, Lock, Preserve)
    {
        OSYS,   16
    }

    Method (OSDW, 0, NotSerialized)
    {
        If (LEqual (OSYS, 0x2710))
        {
            Return (One)
        }
        Else
        {
            Return (Zero)
        }
    }

    Method (PINI, 0, NotSerialized)
    {
        Store (0x07DC, OSYS)
        If (XOSI ("Darwin"))
        {
            Store (0x2710, OSYS)
        }
        ElseIf (XOSI ("Linux"))
        {
            Store (0x03E8, OSYS)
        }
        ElseIf (XOSI ("Windows 2009"))
        {
            Store (0x07D9, OSYS)
        }
        ElseIf (XOSI ("Windows 2012"))
        {
            Store (0x07DC, OSYS)
        }
        Else
        {
            Store (0x07DC, OSYS)
        }
    }

    Method (XOSI, 1, NotSerialized)
    {
        Store (Package (0x0E)
            {
                "Darwin",
                "Linux",
                "Windows",
                "Windows 2001",
                "Windows 2001 SP2",
                "Windows 2001.1",
                "Windows 2001.1 SP1",
                "Windows 2006",
                "Windows 2006 SP1",
                "Windows 2006.1",
                "Windows 2009",
                "Windows 2012",
                "Windows 2013",
                "Windows 2015"
            }, Local0)
        Return (LNotEqual (Ones, Match (Local0, MEQ, Arg0, MTR, Zero, Zero)))
    }

as well as

Code:
    Method (DTGP, 5, NotSerialized)
    {
        If (LEqual (Arg0, ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")))
        {
            If (LEqual (Arg1, One))
            {
                If (LEqual (Arg2, Zero))
                {
                    Store (Buffer (One)
                        {
                             0x03                                        
                        }, Arg4)
                    Return (One)
                }

                If (LEqual (Arg2, One))
                {
                    Return (One)
                }
            }
        }

        Store (Buffer (One)
            {
                 0x00                                        
            }, Arg4)
        Return (Zero)
    }

and add the respective external objects and methods to your definition block.

But I guess this is anyway evident for someone as experienced as you.
 

Attachments

  • SSDT-Vega-ASUS-Prime-X299-Deluxe-Slot-1.aml.zip
    1.9 KB · Views: 119
Last edited:
Status
Not open for further replies.
Back
Top