Contribute
Register

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

Status
Not open for further replies.
Joined
Jun 13, 2018
Messages
275
Motherboard
Prime X299-A
CPU
i7-7820X
Graphics
Vega 64
Mac
iMac, MacBook Pro
Classic Mac
iMac, Power Mac
Mobile Phone
Android, iOS
U
Yes.

There should be no change of functionality.

I did find that I had to fully shutdown the machine before restarting, otherwise the screens weren’t starting.
Only need to do that once, I’m guessing the graphic cCard is left in an incompatible state and that requires a full shutdown first.
Unfortunately it seems that I don’t know how to remove VoodooHDA, I deleted all the kexts everywhere but it still loads on top of ApplALC. Any hint???
 
Joined
Sep 28, 2015
Messages
8
Motherboard
ASUS PRIME X299-DELUXE
CPU
i9-7900X
Graphics
GTX 1050 Ti
Make sure your usb is plugged in to the computer you are using to copy the EFI folder to.

Open clover config then select the 'Mount EFI' tab on the left hand side in the TOOLS menu. Select the EFI folder on your usb drive and then click the 'Mount Partition' option. This will allow you to access the EFI partition on your usb within finder. Then simply copy over your EFI folder on to the EFI partition.

Hope that helps. Same issue I got stuck with you when i first started...
Thanks for your reply. I'm still not able to boot. I used the Clover Configurator.app and copied the EFI directory (not the content of it, but the directory itself with its content), from Desktop to the USB flash drive's empty EFI folder.

I also wondered what to do with the Lilu kexts (AppleALC.kext, Lilu.kext and WhateverGreen.kext) that I built from source in step 10?

I used the Clover Configurator.app, opened the USB flash drive's EFI directory and went into CLOVER/kexts/Other where there were already some kexts (AGPMEnabler.kext, FakeSMC.kext, IntelMausiEthernet.kext and TSCAdjustReset.kext) and copied the three kexts (AppleALC.kext, Lilu.kext and WhateverGreen.kext) to the EFI/CLOVER/kexts/Other directory on the USB flash drive. Was that correct?

Is there any other kexts that should be copied to the USB flash drive? Under C point 9:
"All ASUS Prime X299 Deluxe users, who enabled the second LAN controller in the ASUS Prime X299 Deluxe BIOS, are advised to download, unzip and copy the SmallTree-Intel-211-AT-PCIe-GBE.kext to the EFI-Folders of both USB Flash Drive Installer and 10.13 System Disk, or to disable the second LAN port in the BIOS during the MacOS Installation.

I'd like to use the second LAN port, but I don't understand the part marked in orange. How and where exactly shall the SmallTree-Intel-211-AT-PCIe-GBE.kext be copied to the USB flash drive?

With "to the EFI-Folders of both USB Flash Drive Installer", do they mean this: Use the Clover Configurator.app, open the USB flash drive's EFI directory and open CLOVER/kexts/Other and copy (drag-and-drop) the SmallTree-Intel-211-AT-PCIe-GBE.kext there?

How is the SmallTree-Intel-211-AT-PCIe-GBE.kext supposed to be copied to the 10.13 System Disk? I have not tried to copy it yet. Shall it be drag-and-dropped on the Install macOS High Sierra.app? If so, shall it be drag-and-dropped on the Install macOS High Sierra.app before the Install macOS High Sierra.app is copied to the USB Flash drive with the command:

$ sudo /Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/USB --applicationpath /Applications/Install\ macOS\ High\ Sierra.app --nointeraction

or after that command have completed (but drag-and-drop it on the Install macOS High Sierra.app now located on the USB flash drive)? Or something else?
All BIOS settings are as in the guide. I find it strange that the parameter in BIOS: MSR Lock Control: Disabled
causes the monitor to not start, regardless if the USB flash drive is inserted to the hackintosh or not. Is there something wrong going on here? Since I can't get into BIOS, I need to reset CMOS and again set all BIOS parameters. I have done that 4 times now.

Using GeForce 1050 TI. Will it work fine?
 
Last edited:

kgp

Retired
Joined
May 30, 2014
Messages
6,902
Motherboard
ASUS WS X299 Sage 10G
CPU
i9-7980XE
Graphics
Vega 64
Mac
iMac, MacBook Pro, Mac mini
Mobile Phone
iOS
Remaining key problem for new hopefully successful TB implementation..

Screen Shot 2018-08-04 at 18.52.37.png


@jyavenard , @nmano , anybody else...

can somebody help me in solving the remaining key problem with method _INI..

Code:
        Name (EICM, Zero)
        Name (R020, Zero)
        Name (R024, Zero)
        Name (R028, Zero)
        Name (R02C, Zero)
        Name (R118, Zero)
        Name (R119, Zero)
        Name (R11A, Zero)
        Name (R11C, Zero)
        Name (R120, Zero)
        Name (R124, Zero)
        Name (R128, Zero)
        Name (R12C, Zero)
        Name (R218, Zero)
        Name (R219, Zero)
        Name (R21A, Zero)
        Name (R21C, Zero)
        Name (R220, Zero)
        Name (R224, Zero)
        Name (R228, Zero)
        Name (R22C, Zero)
        Name (R318, Zero)
        Name (R319, Zero)
        Name (R31A, Zero)
        Name (R31C, Zero)
        Name (R320, Zero)
        Name (R324, Zero)
        Name (R328, Zero)
        Name (R32C, Zero)
        Name (R418, Zero)
        Name (R419, Zero)
        Name (R41A, Zero)
        Name (R41C, Zero)
        Name (R420, Zero)
        Name (R424, Zero)
        Name (R428, Zero)
        Name (R42C, Zero)
        Name (RVES, Zero)
        Name (R518, Zero)
        Name (R519, Zero)
        Name (R51A, Zero)
        Name (R51C, Zero)
        Name (R520, Zero)
        Name (R524, Zero)
        Name (R528, Zero)
        Name (R52C, Zero)
        Name (R618, Zero)
        Name (R619, Zero)
        Name (R61A, Zero)
        Name (R61C, Zero)
        Name (R620, Zero)
        Name (R624, Zero)
        Name (R628, Zero)
        Name (R62C, Zero)
        Name (RH10, Zero)
        Name (RH14, Zero)
        Name (POC0, Zero)

       OperationRegion (RPSM, SystemMemory, 0x60510000, 0x54)
        Field (RPSM, DWordAcc, NoLock, Preserve)
        {
            RPVD,   32,
            RPR4,   8,
            Offset (0x18),
            RP18,   8,
            RP19,   8,
            RP1A,   8,
            Offset (0x1C),
            RP1C,   16,
            Offset (0x20),
            R_20,   32,
            R_24,   32,
            R_28,   32,
            R_2C,   32,
            Offset (0x52),
                ,   11,
            RPLT,   1,
            Offset (0x54)
        }
....
....
....
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            If (LNot (OSDW ()))
            {
                Store (One, TBG2)
                Store (R_20, R020)
                Store (R_24, R024)
                Store (R_28, R028)
                Store (R_2C, R02C)
                Store (UP18, R118)
                Store (UP19, R119)
                Store (UP1A, R11A)
                Store (UP1C, R11C)
                Store (UP20, R120)
                Store (UP24, R124)
                Store (UP28, R128)
                Store (UP2C, R12C)
                Store (DP18, R218)
                Store (DP19, R219)
                Store (DP1A, R21A)
                Store (DP1C, R21C)
                Store (DP20, R220)
                Store (DP24, R224)
                Store (DP28, R228)
                Store (DP28, R228)
                Store (D318, R318)
                Store (D319, R319)
                Store (D31A, R31A)
                Store (D31C, R31C)
                Store (D320, R320)
                Store (D324, R324)
                Store (D328, R328)
                Store (D32C, R32C)
                Store (D418, R418)
                Store (D419, R419)
                Store (D41A, R41A)
                Store (D41C, R41C)
                Store (D420, R420)
                Store (D424, R424)
                Store (D428, R428)
                Store (D42C, R42C)
                Store (DVES, RVES)
                Store (D518, R518)
                Store (D519, R519)
                Store (D51A, R51A)
                Store (D51C, R51C)
                Store (D520, R520)
                Store (D524, R524)
                Store (D528, R528)
                Store (D52C, R52C)
                Store (NH10, RH10)
                Store (NH14, RH14)
                Sleep (One)
                ICMB ()
            }
        }
which crashes my SSDT during boot?

In the system DSDT.aml of the iMac Pro dump, I found an additional WAK method to TBG2, but there it becomes really complicated as with PNOT(), also the CPU's get involved, which apparently furthermore requires the integration of nearly the entire iMac Pro DSDT + iMac pro AMLs...

Method _ini.. a short code snippet, which apparently opens Pandora's box...

Code:
Method (_WAK, 1, NotSerialized)  // _WAK: Wake
    {
        P8XH (Zero, Zero)
        Store (Zero, \_SB.PCI0.LPCB.EC.ECSS)
        If (LNot (OSDW ()))
        {
            If (LEqual (Arg0, 0x03))
            {
                Sleep (0x0A)
            }

            If (TBG2)
            {
                \_SB.PC02.BR2C.ICMB ()
            }

            If (TBG3)
            {
                \_SB.PC02.BR2D.ICMB ()
            }
        }

        If (OSDW ()){}
        Else
        {
        }

        \_SB.PCI0.SBUS.BUS0.BLC0.BCAL ()
        Store (\_SB.PCI0.LPCB.EC.EACP, PWRS)
        If (LNot (OSDW ()))
        {
            Notify (\_SB.PWRB, 0x02)
            Store (Zero, \_SB.PCI0.LPCB.EC.LWE0)
            Store (Zero, \_SB.PCI0.LPCB.EC.LWE1)
            Store (Zero, \_SB.PCI0.LPCB.EC.LWE2)
            Store (Zero, \_SB.PCI0.LPCB.EC.LWE3)
            Store (Zero, \_SB.PCI0.LPCB.EC.LWE4)
            Store (Zero, \_SB.PCI0.LPCB.EC.LWE5)
            Store (Zero, \_SB.PCI0.LPCB.EC.LWE6)
            Store (Zero, \_SB.PCI0.LPCB.EC.LWE7)
        }
        PNOT ()
        Store (One, \_SB.SCGE)
        Return (Package (0x02)
        {
            Zero,
            Zero
        })
    }
Any solution or contribution to a successful implementation of this "remaining code snippet" would be highly appreciated..
 
Last edited:
Joined
May 15, 2018
Messages
49
Motherboard
Asus X299 Deluxe
CPU
Intel I9 7940X
Graphics
GeForce GTX 1060 6GB

I tried another x299 motherboard and it has the same behavior. So I think it's either my GPU or my CPU. Will try to find another graphics card to test with my system (I have an old Nvidia Quadro, but it won't work either - but it's not UEFI, so maybe that's why?). And while I'm at it, I may try a different graphics card.

In case it might help anyone in the future struggling with "Code:A2 Post Error", it turns out that my DisplayPort cable went bad, and because I didn't have a a keyboard plugged in (my monitor would have told me to plug in a keyboard - I was just using the LED on my motherboard for the error code), I got the error. Happy to be back up and running - and now I have an EK P280 water cooling kit installed, though one of the fans is broken and needs replacing! Been a tough week computer-wise
 
Last edited:
Joined
Dec 7, 2017
Messages
127
Motherboard
MSI H81M-P33
CPU
i5-4670
Graphics
GTX 750
Mobile Phone
Android
I received my bluetooth/wifi adaptor (https://www.amazon.com/gp/product/B07CZFVWSZ/?tag=tonymacx86com-20), and now I understand why it's called an adaptor and not a card. Can someone recommend a good wifi/bluetooth module? I imagine they change over time and I've been researching, but it's hard to tell what's what.
Another adapter card (+ includes the WiFi module) is priced about the same as the linked item (which omits the required WiFi module), but also includes Bluetooth 4.2 instead of 4.0:
https://www.amazon.com/gp/product/B0713RRZMB/?tag=tonymacx86com-20
Then there's a similar type of WiFi + Bluetooth 5.0 adapter card, but uses an Intel WiFi module, which currently has no working drivers for macOS.
https://www.amazon.com/gp/product/B07DMDZ888/?tag=tonymacx86com-20
 
Last edited:
Joined
May 15, 2018
Messages
49
Motherboard
Asus X299 Deluxe
CPU
Intel I9 7940X
Graphics
GeForce GTX 1060 6GB
Another adapter card (+ includes the WiFi module) is priced about the same as the linked item (which omits the required WiFi module), but also includes Bluetooth 4.2 instead of 4.0:
https://www.amazon.com/gp/product/B0713RRZMB/?tag=tonymacx86com-20
Then there's a similar type of WiFi + Bluetooth 5.0 adapter card, but uses an Intel WiFi module, which currently has no working drivers for macOS.
https://www.amazon.com/gp/product/B07DMDZ888/?tag=tonymacx86com-20
I appreciate it @rugula. Did it work natively with kgp's Imac Pro build (the thread that were in)? I was surprised to see that it's made by Asus. I have built in Wifi on my Asus x299 Prime Deluxe. Do you think it's possible to get that working in High Sierra?
 
Joined
Apr 7, 2012
Messages
4
Motherboard
ASUS Prime X299 Deluxe
CPU
Intel i9 7940x
Graphics
NVIDIA GTX TITAN (Kepler)
Hi, first of all thanks for the amazing work done in this thread.

I'm considering to build a skylake-x hackintosh with 7900x processor.

I would hear some advice for the motherboard.

The two motherboard i'm cosidering are the Asus x299 Prime Deluxe and the Gigabyte X299 Designare EX.

The questions are:

- About MSR 0xE2 register: Asus has unlocked MSR 0xE2 register in bios 1401, while gigabyte is unlocked by default, so they should be equivalent.
- About Bluetooth/wi-fi: Asus bluetooh works OOB, while wifi don't. So an add-in card is necessary to obtain fully fuctional wireless functions. How about gigabyte? In case of the add-in card, I'll be able to use bluetooth mouse and keyboard in UEFI bios?
- About TB3: Asus is working with some "tweaks" (windows dual boot etc. in section E.5). How about gigabyte? Will it works OOB?

Thanks again and Best Regards
 

kgp

Retired
Joined
May 30, 2014
Messages
6,902
Motherboard
ASUS WS X299 Sage 10G
CPU
i9-7980XE
Graphics
Vega 64
Mac
iMac, MacBook Pro, Mac mini
Mobile Phone
iOS
SSDT-9.aml, apparently the one and only key for a complete and successful TB Hackintosh implementation...

In order to demonstrate that I am not yet totally insane with my guesses and ideas, let's demonstrate below that SSDT-9.aml seems to be one of possible cornerstone for reaching full Hackintosh functionality on a iMac Pro Hackintosh system.

However, due to the missing method "_ini" implementation (port and device initialisation/configuration) in SSDT-9.aml and likely also due to other missing Apple iMac Pro SSDT/DSDT ACPI implementations, my modified SSDT-9.aml yet fails in implementing the basic system essentials for a complete TB Hackintosh configuration and results in plenty of ACPI errors, Name Space Lookup failures and variable or argument errors during boot..

ss-1.png


SC-2.png


SC-3.png


Nevertheless, few essential things are added when inspecting IOREG or Apple's system report..

While from the TB-kexts used on a real iMacPro only com.apple.driver.AppleThunderboltNHI.kext is active on our Hackintosh systems, SSDT-9.aml so far also loads at least com.apple.iokit.IOThunderboltFamily.kext.

Screen Shot 2018-08-05 at 12.45.06.png


Screen Shot 2018-08-05 at 12.46.48.png


However, com.apple.driver.AppleThunderboltDPAdapterFamily, com.apple.driver.AppleThunderboltIP.kext, com.apple.driver.AppleThunderboltDPInAdapter, com.apple.driver.AppleThunderboltPCIDownAdapter remain without function due to frequent ACPI errors (Namespace Lookup errors, argument and variable errors, etc.) during boot, which are supposedly due to the yet missing Method "_ini" (port/device implementation/configuration) in my most actual SSDT-9.aml distribution and lacking related ACPI implementations...

Screen Shot 2018-08-05 at 13.01.23.png


Most essentially, with my current SSDT-9.aml, also the "RTPC true" entry adds under AppleThuderboltNHIType3..

Screen Shot 2018-08-05 at 12.47.31.png


One might also find the one or other interesting IOREG add-ons under in all other TB PCI device implementations...

Attached below my current AML Tb-Implementations for use by experts only!!! I also add once more @TheOfficialGypsy 's most recent iMac Pro dump, where you find the original SSDT-9.aml (BTW.. SSDT-10.aml might be noteworthy in addition), besides the iMac Pro DSDT and other iMacPro SSDT implementations... attached as well the IOREG save of the original iMac Pro...

@TheOfficialGypsy 's, any more recent dump under 10.13.6 or 10.14 PB4 available?

I guess, it rapidly might become evident that the complexity of the problem apparently exceeds the capacities and knowledge of one single person... What about active collaborators, here online or maybe also within some small local "insitu" and "hands-on" workgroup in the Berlin/Germany area?

@apfelnico, @nmano, @jyavenard or who ever wants and is able to join this endeavour?

I really don't know if there is any valid chance for a successful SSDT-9.aml Hackintosh TB implementation, but I think we should give it a try..

Enjoy and have fun,

kgp.png


P.S: SSDT-9.aml of the iMac Pro dump is broken and impossible to be compiled..

One needs to start with the SSDT-9.dsl and add "\_SB.PC01.BR1A.UPSB.AMPE ()" under:

Code:
        Scope (\_GPE)
        {
            Method (_L32, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
            {
                If (LNot (OSDW ()))
                {
                    If (LEqual (\_SB.PC01.BR1A.POC0, One))
                    {
                        Return (Zero)
                    }

                    Sleep (0x0190)
                    If (LEqual (\_SB.PC01.BR1A.WTLT (), One))
                    {
                        \_SB.PC01.BR1A.ICMS ()
                    }
                    Else
                    {
                    }

                    If (\_SB.PC01.BR1A.UPMB)
                    {
                        Store (Zero, \_SB.PC01.BR1A.UPMB)
                        Sleep (One)
                    }
                    Else
                    {
                    }

                    \_SB.PC01.BR1A.CMPE ()
                }
                ElseIf (LEqual (\_SB.GGII (0x01030012), One))
                {
                    \_SB.SGII (0x01030012, Zero)
                }
                Else
                {
                    \_SB.SGII (0x01030012, One)
                }

                \_SB.PC01.BR1A.UPSB.AMPE ()
            }
        }
It took me weeks and months to discover and fix these stupid errors.. ;)

For the sake of completeness and for simplicity, I also attach a minimal SSDT-9 hot plug injector AML, which pretty does everything for achieving a functional TB and TB HXC USB hot plug workaround on THB-C removed Hackintosh systems..
 

Attachments

Last edited:
Joined
Dec 7, 2017
Messages
127
Motherboard
MSI H81M-P33
CPU
i5-4670
Graphics
GTX 750
Mobile Phone
Android
Did it work natively with kgp's Imac Pro build (the thread that were in)? I was surprised to see that it's made by Asus. I have built in Wifi on my Asus x299 Prime Deluxe. Do you think it's possible to get that working in High Sierra?
The user comments on Amazon say that the previously linked Asus WiFi card + module works in OSX.
I personally only use a wired ethernet connection, so don't use any WiFi or Bluetooth device.
The Atheros WiFi-Bluetooth module that comes included with the Asus x299 Prime Deluxe motherboard: only the Bluetooth functions, per initial post of this thread. AFAIK, the WiFi portion of the Atheros module does not work in macOS, due to lack of drivers. However, this other thread may provide some answers:
https://www.insanelymac.com/forum/topic/312045-atheros-wireless-driver-os-x-101112-for-unsupported-cards/
 
Status
Not open for further replies.
Top