Contribute
Register

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

Status
Not open for further replies.
:thumbup:
This is from a config.plist of one of my older EFI-Folder distributions. The TB arbitrary entries have been removed in my latest EFI-Folder distribution.

@ffltt, my friend! Please update your EFI-Folder. You do not use TB in any case, thus the abitrary entry was never needed in your case.
Copy that! I will remove it now, thank you my friend:thumbup:
 
I do not know if it can affect this.... I would eliminate it if I do not use it.
I have no that in my cc,I used Mac OS 10.13.3 now,everything works good,I think that is the last macOS. version for my hackintosh:cry:
 
final cut X only crashes when it is exported in those codecs, in others it is not, I have checked it, in addition I edit in video, use after effects, final cut X.

Ok, but i‘m saying, i have no crashes with my system when rendering. This is the reason why i not downgrade FCP, everthing works flawless...
 
  • Like
Reactions: kgp
Mine's giving me some sort of ACPI error I think? I keep looking everywhere around the internet and I can't find a fix.. Does anyone have any idea or suggestions on how to fix this?
Screen Shot 2018-05-03 at 9.28.42 PM.png
 
@kgp
Put the processor cores in the correct order:

Code:
                <dict>
                    <key>Comment</key>
                    <string>CP0A to CP38</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwQQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1AzOA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP0B to CP39</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwQg==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1AzOQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP0C to CP40</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwQw==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0MA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP0D to CP41</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwRA==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0MQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP0E to CP42</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwRQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0Mg==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP0F to CP43</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwRg==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0Mw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1A to CP44</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxQQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0NA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1B to CP45</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxQg==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0NQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1C to CP46</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxQw==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0Ng==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1D to CP47</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxRA==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0Nw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1E to CP48</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxRQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0OA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1F to CP49</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxRg==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0OQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2A to CP50</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyQA==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A1MA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2B to CP51</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyQQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A1MQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2C to CP52</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyQg==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A1Mg==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2D to CP53</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyQw==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A1Mw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2E to CP54</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyRA==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A1NA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2F to CP55</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyRQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A1NQ==
                    </data>
                </dict>

Before and after :)


Guess there is some error... shouldn't it read like that?

Code:
                <dict>
                    <key>Comment</key>
                    <string>CP0A to CP38</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwQQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1AzOA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP0B to CP39</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwQg==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1AzOQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP0C to CP40</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwQw==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0MA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP0D to CP41</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwRA==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0MQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP0E to CP42</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwRQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0Mg==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP0F to CP43</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwRg==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0Mw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1A to CP44</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxQQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0NA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1B to CP45</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxQg==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0NQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1C to CP46</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxQw==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0Ng==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1D to CP47</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxRA==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0Nw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1E to CP48</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxRQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0OA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1F to CP49</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxRg==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0OQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2A to CP50</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyQQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A1MA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2B to CP51</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyQg==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A1MQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2C to CP52</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyQw==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A1Mg==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2D to CP53</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyRA==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A1Mw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2E to CP54</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyRQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A1NA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2F to CP55</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyRg==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A1NQ==
                    </data>
                </dict>

In any case, your ACPI patches seem not to be applicable for the i9-7980XE... See the original i9-7980XE IOREG CPU nomenclature below: apparently I miss cores 18 and 19 but I have cores 36 and 37... hmmm

Screen Shot 2018-05-04 at 05.31.10.png
 
Mine's giving me some sort of ACPI error I think? I keep looking everywhere around the internet and I can't find a fix.. Does anyone have any idea or suggestions on how to fix this?View attachment 329552

What about using TSCAdjustReset.kext?
 
Guess there is some error...
In any case, your ACPI patches seem not to be applicable for the i9-7980XE... See the original i9-7980XE IOREG CPU nomenclature below: apparently I miss cores 18 and 19 but I have cores 36 and 37... hmmm

That's strange. Take a look at the original iMac Pro. There is counted in the internal DSDT from 0 to 35. So 36 digits for a maximum of 18-core Xeon. I just moved the alphanumeric values to an area that normally can not be used. What is wrong? Who can test it?

original iMac Pro:
 

Attachments

  • imacpro.png
    imacpro.png
    173.6 KB · Views: 127
That's strange. Take a look at the original iMac Pro. There is counted in the internal DSDT from 0 to 35. So 36 digits for a maximum of 18-core Xeon. I just moved the alphanumeric values to an area that normally can not be used. What is wrong? Who can test it?

original iMac Pro:


1.) I guess your ACPI replacements from CP2A until CP2F should read 43503241 until 43503246 instead of 43503240 until 43503245.

2.) The original CPU IROEG nomenclature on my system ranges from 0-17 and 20-37,which is quite weird. Also alphanumerical values are populated.. Thus, you cannot just move the alphanumeric values to an area that normally can not be used.

3.) Do you use TSCAdjustReset.kext? Maybe it does something it should not do on my system?

4.) The IOREG screenshot of an iMacPro you show above is just for an iMac Pro with an 8-core processor. Even with your 10-core Skylake-X, the IOREG CPU nomenclature looks fine. Which means, something turns my CPU nomenclature upside down or the latter becomes more complex in case of a CPU >10-cores (20 threads).
 
Last edited:
1. A careless mistake. Now it is right ...

Code:
                <dict>
                    <key>Comment</key>
                    <string>CP0A to CP38</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwQQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1AzOA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP0B to CP39</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwQg==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1AzOQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP0C to CP40</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwQw==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0MA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP0D to CP41</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwRA==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0MQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP0E to CP42</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwRQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0Mg==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP0F to CP43</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AwRg==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0Mw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1A to CP44</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxQQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0NA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1B to CP45</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxQg==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0NQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1C to CP46</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxQw==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0Ng==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1D to CP47</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxRA==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0Nw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1E to CP48</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxRQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0OA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP1F to CP49</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AxRg==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A0OQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2A to CP50</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyQQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A1MA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2B to CP51</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyQg==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A1MQ==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2C to CP52</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyQw==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A1Mg==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2D to CP53</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyRA==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A1Mw==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2E to CP54</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyRQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A1NA==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>CP2F to CP55</string>
                    <key>Disabled</key>
                    <false/>
                    <key>Find</key>
                    <data>
                    Q1AyRg==
                    </data>
                    <key>Replace</key>
                    <data>
                    Q1A1NQ==
                    </data>
                </dict>

2. Strange. Even Apple does it differently.

3. I use the BIOS with built-in TSC and the current Clover (4452).

4. Too bad, it works on a 10 core CPU. Who wants to continue researching?
 
4.) The IOREG screenshot of an iMacPro you show above is just for an iMac Pro with an 8-core processor. Even with your 10-core Skylake-X, the IOREG CPU nomenclature looks fine. Which means, something turns my CPU nomenclature upside down or the latter becomes more complex in case of a CPU >10-cores (20 threads).

It does not matter if 8-core or 18-core processor. It is the same EFI ROM with the exact same internal DSDT. These are the values from 0 to 35 - created for all processors.
 
Status
Not open for further replies.
Back
Top