Contribute
Register

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

Status
Not open for further replies.
I haven't fully tested sleep, because I never used it anyway (even on real Macs)...but last time I checked it seemed to work "ok" especially with no USB devices connected (except for keyboard and mouse and my dual cinema displays USB cables that turn into a hub and speakers).

Anyway, I've attached my EFI folder, but beware that you have to set your own boot options as mine are custom and it won't boot your machine, unless you modify it before using it (I suggest you match the boot to config.plist on page 1 of this thread provided by kgp).

And you need to modify TSCAdjustReset.kext to fit your X299 CPU parameters....and remove VegaGraphicFixup if you are not using a Vega.

As far as BIOS settings, I haven't touched it in a while, but it's similar to the one on post 1 of this thread under Gigabyte. I have the memory OC'd a little bit and maybe one or two other settings (not related to sleep).
Thanks i will test and report
 
1.) Your original adaptation? There is nothing to adopt, when using SSDT-9-minimal-hotplug-injector.aml with the GB Alpine Ridge in Slot-4 of the ASUS Prime X299 Deluxe... If somebody uses a TBEX 3 instead of the Alpine Ridge, he just might have to remove all "Device-ID", "SubsystemVendor-ID", "compatible" and "class-code" DSM entries from the file as "I" told you..
Dear KGP,

I respect your work as much as anyone in this thread, trust me you don't have to be so rude to communicate your points.

Having had no experience with SSDT and hackintoshes prior to last week, it did take me a couple of days to figure out how to make the Thunderbolt SSDT to work on my system. My changes are very minimal and by no means are significant, and I'm not seeking any credit for them. By "original" adaptation I mean the version that was created directly from yours before I removed PEGP removal.
I'm not sure how I missed when you instructed me to remove these values from the file, it's certainly very unfortunate. For now I changed the values with the ones I see in IOreg. So you're saying I can just remove them all and it will still work? Why not do that to make it portable between Alpine Ridge and TBEX3?

May I ask why SSDT-9-minimal-hotplug-injector.aml is now called [email protected] and you even figure as the author of the latter file? My I ask what was your contribution to the creation of this file to justify the latter?
The file is called that because that's what I named it. I made most of the files by duplicating a starting minimal one and copying the text from the website snippets, or from other files, so there were no original names to retain. Furthermore, now that I have 4 different files: AR@Slot-4, AR@Slot-6, TBEX3@Slot-4 and TBEX3@Slot-6, it would be confusing if they're called the same. What would you call them?

Please don't rename and redistribute "MY" files files and don't figure as an author of files which are definitely not yours and where your contribution was practically "ZERO"!

Therefore, please immediately remove [email protected] and [email protected], "created" by "IF", immediately from post #9899 and don't distribute these files also elsewhere.
I have removed these files upon your request. I didn't give much thought to the creator filed, as I originally didn't even expect to distribute them anywhere, and merely used this as a differentiator between files I modified and the ones I didn't.

2.) BTW, I don't believe your Slot-6 fairy tails..

I use an Aquantia 10GB NIC in Slot-6 and my ACPI patch and ACPI replacement implementation tells a totally different story:

Code:
    Scope (\_SB.PC03.BR3A)
    {
        Scope (SL09)
        {
            Name (_STA, Zero)  // _STA: Status
        }

        Scope (PEGP)
        {
            Name (_STA, Zero)  // _STA: Status
        }

        Device (XGBE)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                If (LEqual (Arg2, Zero))
                {
                    Return (Buffer (One)
                    {
                         0x03                                   
                    })
                }

                Store (Package (0x10)
                    {
                        "AAPL,slot-name",
                        Buffer (0x07)
                        {
                            "Slot-6"
                        },

                        "built-in",
                        Buffer (One)
                        {
                             0x00                                   
                        },

                        "name",
                        Buffer (0x32)
                        {
                            "ASUS XG-C100C Aquantia AQC107 10-Gigabit Ethernet"
                        },

                        "model",
                        Buffer (0x11)
                        {
                            "Apple AQC107-AFW"
                        },

                        "location",
                        Buffer (0x02)
                        {
                            "1"
                        },

                        "subsystem-id",
                        Buffer (0x04)
                        {
                             0x87, 0x01, 0x00, 0x00                 
                        },

                        "device-id",
                        Buffer (0x04)
                        {
                             0xB1, 0x07, 0x00, 0x00                 
                        },

                        "subsystem-vendor-id",
                        Buffer (0x04)
                        {
                             0x6B, 0x10, 0x00, 0x00                 
                        }
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }
        }
    }

Thus , what needs to be disabled when using a TB-Adapter in Slot-6 of the ASUS Prime X299 Deluxe is not SL0A but SL09 and indeed also PEGP! I am therefore not surprised that "YOUR" awesome Slot-6.aml does not work at all...

Once more, immediately remove "BOTH" SSDTS from post #9899.

Thanks in advance,

KGP
You are free to believe whatever you want, my friend. If you choose to think that I entertain myself by maliciously counterfeiting SSDTs and IOreg screenshots just to confuse you - I don't think there's anything I can do to make you change your mind.

Now, it's fairly clear that my contribution is not welcome here, and as far as I can see you would prefer to run this activity on your own. I don't think it's the best choice for the community because you seem to be busy with many things and can't help everyone, but I also understand I don't have any leverage here to make my point.

I'll refrain from any further comments on how to improve your instruction and sharing derivatives of your work.

Please don't feel obliged to respond to my requests for help, however I'd like to stay in this thread (until my system is fully functional) and occasionally help other members with the little knowledge I obtained during the last week. Many people, including myself, get this fairly expensive Asus motherboard because of how active this thread is, and I would like to find a path to make my system fully functional, which is not quite what I have now. After that I would gladly abandon this thread and stop causing tension in your kingdom :)
 
Last edited:
Two likely important alternative comments for testing and to be discussed within our community:

1.) CPxx -> PRxx replacements and CPU thread ordering


In fact there is very simple and straight approach for achieving a fully automatic CPxx -> PRxx replacement and CPU thread ordering for any Skylake-X CPU on any X299 mainboard on the market.. However, so far I kept this latter approach secret as I do not no about negative side implications..

In any case, the latter approach would consist of implementing Apple's iMac Pro APIC table APIC.aml.zip in /EFI/Clover/ACPI/patched/, which directly reveals a properly ordered PRxx CPU thread implementation after boot..

However, as stated above, the validity of this latter approach yet has to be confirmed by all users..

2.) USB 2.0 and 3.0 sleep/wake ejection issues

I fully understand that we are dealing with an enjoying, persistent XHC USB sleep/wake ejection issue during sleep/wake on our Sklakye-X/X299 systems, which urgently requires some solution.

However, what I am not able to follow is why most of you insist in using outdated USB2.0 and USB3.0 ports.. By employing the USB3.1 Type-A and Type-C ports (which are backwards compatible with USB2.0 and USB3.0 devices), the sleep/wake ejection issue of USB devices can be entirely removed.

Less I am able to follow why one would sell his Skylake-/X299 system instead, however @TheOfficialGypsy 's personal decision, which I fully respect and tolerate..

Enjoy and have fun,

kgp.png
 

Attachments

  • APIC.aml.zip
    869 bytes · Views: 160
Last edited:
Dear KGP,

I respect your work as much as anyone in this thread, trust me you don't have to be so rude to communicate your points.

Having had no experience with SSDT and hackintoshes prior to last week, it did take me a couple of days to figure out how to make the Thunderbolt SSDT to work on my system. My changes are very minimal and by no means are significant, and I'm not seeking any credit for them. By "original" adaptation I mean the version that was created directly from yours before I removed PEGP removal.
I'm not sure how I missed when you instructed me to remove these values from the file, it's certainly very unfortunate. For now I changed the values with the ones I see in IOreg. So you're saying I can just remove them all and it will still work? Why not do that to make it portable between Alpine Ridge and TBEX3?


The file is called that because that's what I named it. I made most of the files by duplicating a starting minimal one and copying the text from the website snippets, or from other files, so there were no original names to retain. Furthermore, now that I have 4 different files: AR@Slot-4, AR@Slot-6, TBEX3@Slot-4 and TBEX3@Slot-6, it would be confusing if they're called the same. What would you call them?


I have removed these files upon your request. I didn't give much thought to the creator filed, as I originally didn't even expect to distribute them anywhere, and merely used this as a differentiator between files I modified and the ones I didn't.


You are free to believe whatever you want, my friend. If you choose to think that I entertain myself by maliciously counterfeiting SSDTs and IOreg screenshots just to confuse you - I don't think there's anything I can do to make you change your mind.

Now, it's fairly clear that my contribution is not welcome here, and as far as I can see you would prefer to run this activity on your own. I don't think it's the best choice for the community because you seem to be busy with many things and can't help everyone, but I also understand I don't have any leverage here to make my point.

I'll refrain from any further comments on how to improve your instruction and sharing derivatives of your work.

Please don't feel obliged to respond to my requests for help, however I'd like to stay in this thread until my system if fully functional and occasionally help other members with the little knowledge I obtained during the last week. Many people, including myself, get this fairly expensive Asus motherboard because of how active this thread is, and I would like to find a path to make my system fully functional, which is not quite what I have now. After that I would gladly abandon this thread and stop causing tension in your kingdom :)

It is not a question how you call these files as you will or already have simply removed them.. You might not put attention to the figuring author of a file, others do.. Anyway, at least you drew enough attention to implement yourself as the figuring author of the two files under debate..

I agree that even I have problems in permanently referring all substantially contributing authors, but I do it at least within the guide text and along my postings and you are definitely not one of them, sorry..

Don't worry.. if there are really SSDT compatibility issues with the TBEX 3, I will publish a separate file specified for the latter PCIe adaptor. You do not have to do it for me..

I am very willing to help you in properly implementing your system.. All respective requests from your side are more than welcome..

And nobody asked you to abandon this thread... passionated followers like you are of course very welcome..

However, remain within your trails and don't cause even more attention and work from my side as necessary. And moreover, don't distribute, rename and author software which is neither yours nor has been properly implemented..

That's all I ask for...

I guess it is not arrogant and selfish to mention that this guide and thread has become one of the most read and commented guides and threads along this forum.. I think we have been and we are doing pretty well also without all surprising comments and suggestions by somebody who just recently joined the forum (4 August 2018).. it is definitely not my kingdom though..;) I just try to maintain things ordered and consistent..

Have a great day and nothing for bad,

KGP :wave:
 
Last edited:
I haven't fully tested sleep, because I never used it anyway (even on real Macs)...but last time I checked it seemed to work "ok" especially with no USB devices connected (except for keyboard and mouse and my dual cinema displays USB cables that turn into a hub and speakers).

Anyway, I've attached my EFI folder, but beware that you have to set your own boot options as mine are custom and it won't boot your machine, unless you modify it before using it (I suggest you match the boot to config.plist on page 1 of this thread provided by kgp).

And you need to modify TSCAdjustReset.kext to fit your X299 CPU parameters....and remove VegaGraphicFixup if you are not using a Vega.

As far as BIOS settings, I haven't touched it in a while, but it's similar to the one on post 1 of this thread under Gigabyte. I have the memory OC'd a little bit and maybe one or two other settings (not related to sleep).

According to the energy saver preference pane screenshot you uploaded, I believe you’re not actually allowing the machine to sleep, you’re just allowing the displays to sleep.
 
According to the energy saver preference pane screenshot you uploaded, I believe you’re not actually allowing the machine to sleep, you’re just allowing the displays to sleep.

Yes, that is how I always setup my Macs. I set a 1 minute screen saver to lock as well.

As far as sleep, I can go to Apple > Sleep and it works fine. I haven't fully tested auto sleep, but I can when I free up a little bit.
 
@kgp I'm a bit confused, what's the go with the thread ordering code you and @4min have been deliberating? Should I be implementing this for my 7940X processor? What are the advantages? Cheers pal.
 
@kgp I'm a bit confused, what's the go with the thread ordering code you and @4min have been deliberating? Should I be implementing this for my 7940X processor? What are the advantages? Cheers pal.

I am currently collecting CPxx->PRxx ACPI replacement code snippets for the different Skylake-X CPUs, which can be manually implemented in the config.plist by means of a text editor.

Yet I am missing a post with a respective code snippet published for the i9-7940X to be linked within my guide, as @4min only uploaded IOREG snapshots of the resulting PRxx CPU thread implementation ..

His code for automatically implementing the CPxx->PRxx ACPI replacements up to know is not of big help, if somebody already uses a fully pre-configured custom config.plist.. However you can edit his resulting starter config.plist and copy & paste the CPxx->PRxx ACPI replacement snippet to your config.plist, always provided that his replacements are correct...

Note in any case, that up to now the CPxx->PRxx ACPI replacements are purely cosmetic and do not necessarily have to be implemented.

I hope this helps...

KGP
 
@kgp thanks for clarifying mate, very helpful.
 
However, what I am not able to follow is why most of you insist in using outdated USB2.0 and USB3.0 ports.. By employing the USB3.1 Type-A and Type-C ports (which are backwards compatible with USB2.0 and USB3.0 devices), the sleep/wake ejection issue of USB devices can be entirely removed.

Oh, that's interesting, did I overlook that?
Which USB device on which port does work without sleep/wake ejection?

For test purposes I bought a SanDisk USB 3.1 (I think...) Type C pendrive,
but it was ejected the same way as all other devices when it was plugged into the rear USB-C port of the ASUS Prime Deluxe motherboard.
:eek:
In IOReg it was activated as one of the SS0x ports (I forgot which and am away from my machine for one week.)

Did I misunderstand something?

Thanks in advance :thumbup:
 
Status
Not open for further replies.
Back
Top