Contribute
Register

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

Status
Not open for further replies.
Hi.
Hope everyone's fine.
Recently I started this hack - dual 16-core on Supermicro X11DPG-qt
Thank you KGP and thank you all for sharing your systems' development.
After over a week of working on this machine, I am finally STUCK!

Here are the full specs and below, the progress, some pics and my EFI folder

The System pictures are from the High Sierra installation but Mojave has the exact same behaviour

The EFI files and the ioreg dump are attached to a link on my personal cloud as they are too big to uploaded here
The pictures folders the same as they are to big to post them all

Mainboard: Supermicro X11DPG-QT, bios revision 2 from 2017

I cannot update to a later version as the Thunderbolt support will not be available no more.

CPUs - 2x Xeon Gold 6142 @2.4GHz engineering samples(stepping B0)
Memory - 8x 8GB Micron DDR4 ecc @ 2666MHz
GPU's - Monitors GPU - AMD RX560, processing GPUs - AMD Vega 56 and Vega 64
I am running on dual PSU - Supermicro 860W for the logic board and Corsair HX1200i for the GPUS and drives
System drives - both NVMEs -Samsung 970 EVO 2TB on the native M.2 port for Mac and 970 EVO 500GB for Windows on a PCIe adapter,
Storage - 6X HGST 7k3000 3TB - Striped RAID
WiFi+BT - FENVI FV9801
Displays: Apple Thunderbolt Display 2K, Apple Cinema Display 23 and Dell 22"
Progress so far:
after 3 days of restarting and swiping the USB stick from my laptop to the beast and back --- I have successfully booted and installed both High Siera 10.13.6(16G45) and Mojave 10.14.3

This X11DPG-QT board has the PCIe ports ordering the opposite of any board I've seen so far, you can see on the attached picture

With High Sierra I was able to use a pretty clean EFI bootloader, I tried to respect the KGP guidance as much as I could but, the only way to boot was to use another kernel patch and the KernelPM checked in clover.

The system works almost ok but using 1 video board only.
My goal is to have the RX560 for the monitors and the Vega GPUs for processing
so far, only the monitor GPU gets acceleration and Metal support. I swap them and doesn't matter with one is the primary, the other two will not be recognized by the system.
I installed Whatevergreen and Lilu(many versions tried) and I could have the boards recognised by the system but no acceleration and no Metal(you can see one pic from DaVinci Resolvew with only 1 GPU available)

I tried to follow some instructions for creating a SSD for each additional GPU but still no go.
I am not very advanced in doing that so, maybe someone could verify if DSDT and SSDT patching was done properly.

I had successfully booted High Sierra or Mojave with the monitor GPU in PCIe slot-9(CPU1 Slot). Any other choice it hangs at PCI configuration. beginsWindows boots ok from any slot

At the moment of this posting, I swapped the GPUs position as I need to work on this machine. But as I stated, doesn't matter which GPU combinations I use, Only the monitors GPU will have acc and metal, and Only slot-9 will take me to to a successful boot

With these CPUs the only way to boot the installer was to use 0x0040670 as fakecpuid, droping the MATS table instead of the DMAR in Clover's ACPI, Pike's xpcm_pkg_scope kernel patch instead of xpcm_core_scope as the guide is recommending.
I configured the BIOS settings as close as I could to the original guide, I would like to say that it took me a lot of time to discover the Extended APIC in bios needs to be disabled for this board.

Still not working:
Thunderbolt GA Titan Ridge card - it was initialised in Windows, I connected a thunderbolt hard drive but macOS wouldn't even see it in the PCI branch of System Profiler, nor the IORegistryExplorer, I have way less TB options in bios than the guides

Bluetooth for the FENVI adapter not showing up.

USB 3 not working.

All of the above is happening both with High Sierra and Mojave, the only difference is that the EFI structure for Mojave is an ambiguous one, especially the config.plist that, honestly, after days of trying to boot, just matched a downloaded one from another forum.

Please let me know what other info about this build I should share.

Long story short questions:

1.) Is the MSR register in your BIOS locked o unlocked? If locked, you have to check "Kernel PM" and enable xpcm_core_scope. The need of xpcm_pgk_scope would imply that your CPU is not fully natively implemented by macOS. Drop Table DMAR should be fine also in your case. Also note that respective XCPM patches change from 10.13 to 10.14.

2.) You should use AppleALC.kext, Lilu.kext and WEG.kext in your EFI-Folder, otherwise neither HDAU nor HDEF will be properly implemented.

3.) Under "System Parameters" you have Nvidia Web checked although you seem not to use any Nvidia GPU.

4.) You are using USBInjectAll.kext and SSDT-1-SMCI--MB for XHCI USB. You might ask for help in the respective thread. I recommend to create and use a board specific XHC USB kext instead and even provide a dedicated guideline to do so. BTW.. what is SSDT-2-SpsNm for? And finally, I never recommended at any place do use a DSDT in /EFI/CLOVER/ACPI/patched.

5.) You do not use SSDT-DTPG.aml and you did not properly adopt SSDT-Vega64.aml to your system. The implemented SSDT-Vega64.aml is for PC02.BR2A while your ACPI table reads PC03.BR3A. I am also missing a properly adapted SSDT-RX560.aml in your EFI-Folder. The current GFX0 and GFX2 ACPI implementation of your two GPUs is solely thanks to WEG.kext and not due to any SSDT implementation. Also all other System SSDTs provided in the X299 Github library (yet to be properly adapted to your system) are be missing in your current EFI-Folder distribution.

6.) Concerning TB, I did not find any traces of any TB adapter in your IOREG.save, which rather suggests that either your TB adapter is not installed at all or at least not properly enabled in your BIOS. Once the TB adapter will be part of your ACPI table, you anyway should use a properly adapted SSDT-TB3HP.aml in /EFI/CLOVER/ACPI/patched.

For properly adapting available system SSDTs to your motherboard and particular PCIe slot population, this small guideline might be helpful in any case (standard sentence, repeated dozens of times). Else it might be beneficial to repeat reading also the main guide in your case.

Good luck,

KGP
 
Last edited:
Did you properly adopt a Vega SSDT to your system? Did you also implement a properly adapted Nvidia SSDT? And do you also use SSDT-DTPG.aml as mandatory?

In any case, nobody will be able to help you of you do not provide information requested at beginning of section C.)

Good luck,

KGP
Thanks for your response. Unfortunately I have no clue what are you talking about - how to adopt Vega/Nvidia SSDTs. I have to dig a bit.
On the other hand it is weird that it is impossible to simply plug and play graphic cards in legendary and user friendly macOS.
 
Thanks for your response. Unfortunately I have no clue what are you talking about - how to adopt Vega/Nvidia SSDTs. I have to dig a bit.
On the other hand it is weird that it is impossible to simply plug and play graphic cards in legendary and user friendly macOS.

User friendly? Don't forget that macOS is meant to be exclusively installed on Apple devices and to be exclusively compatible with Apple devices.

Cannot provide more than all necessary guidelines you should be able to follow.
 
Last edited:
User friendly? Don't forget that macOS is meant to be exclusively installed on Apple devices and to be exclusively compatible with Apple devices.

Cannot provide more than all necessary guidelines you should be able to follow.

I don't forget. And I don't forget I am using hacked system with hacked hardware. I said 'weird' and 'user friendly' from the 3D/Graphic designer point of view for whom hackintosh is not a hobby. iHack is a working tool.
I'm currently using 4x Nvidia GTX cards with High Sierra on desktop and I did not have to deal with rocket science to make it work. Recently I switched GTX1060 for RX570 in my Macbook's eGPU box and it works beautiful. I don't expected Apple recommended Vega to be a problem. I am happy I did not buy a "working OOB" Vega Froniter right away :)
I do not blame Apple or anyone. Sh*t happens.
 
Last edited:
Long story short questions:

1.) Is the MSR register in your BIOS locked o unlocked? If locked, you have to check "Kernel PM" and enable xpcm_core_scope. The need of xpcm_pgk_scope would imply that your CPU is not fully natively implemented by macOS. Drop Table DMAR should be fine also in your case. Also note that respective XCPM patches change from 10.13 to 10.14.

2.) You should use AppleALC.kext, Lilu.kext and WEG.kext in your EFI-Folder, otherwise neither HDAU nor HDEF will be properly implemented.

3.) Under "System Parameters" you have Nvidia Web checked although you seem not to use any Nvidia GPU.

4.) You are using USBInjectAll.kext and SSDT-1-SMCI--MB for XHCI USB. You might ask for help in the respective thread. I recommend to create and use a board specific XHC USB kext instead and even provide a dedicated guideline to do so. BTW.. what is SSDT-2-SpsNm for? And finally, I never recommended at any place do use a DSDT in /EFI/CLOVER/ACPI/patched.

5.) You do not use SSDT-DTPG.aml and you did not properly adopt SSDT-Vega64.aml to your system. The implemented SSDT-Vega64.aml is for PC02.BR2A while your ACPI table reads PC03.BR3A. I am also missing a properly adapted SSDT-RX560.aml in your EFI-Folder. The current GFX0 and GFX2 ACPI implementation of your two GPUs is solely thanks to WEG.kext and not due to any SSDT implementation. Also all other System SSDTs provided in the X299 Github library (yet to be properly adapted to your system) are be missing in your current EFI-Folder distribution.

6.) Concerning TB, I did not find any traces of any TB adapter in your IOREG.save, which rather suggests that either your TB adapter is not installed at all or at least not properly enabled in your BIOS. Once the TB adapter will be part of your ACPI table, you anyway should use a properly adapted SSDT-TB3HP.aml in /EFI/CLOVER/ACPI/patched.

For properly adapting available system SSDTs to your motherboard and particular PCIe slot population, this small guideline might be helpful in any case (standard sentence, repeated dozens of times). Else it might be beneficial to repeat reading also the main guide in your case.

Good luck,

KGP

Hi KGP
Thank you for your quick response.

I will put the GPUs in the original configuration and extract the correct information again. Do you recommend not to use patched dsdt and ssdt for accuracy?
The DSDT and SSDT in patches folder, I did that hoping that it will help to properly detect the cards. I patched the tables following RahabMan guidlines for this.
The Nvidia Web thicked in plist - I tested 2 Nvidia GPUs to see what’s happening and it’s similar. The system will boot with the monitors card only. Second card will causea reboot at the loginscreen. Usin AMD I un-checked web drivers.
I understand what I have to do for the USB, I will do ito e of these days.
Thunderbolt- as it’s working on windows, does it help if I extract the resources with a software similar to IORegistryExplorer?

Best
Cosministor
 
Hi KGP
Thank you for your quick response.

I will put the GPUs in the original configuration and extract the correct information again. Do you recommend not to use patched dsdt and ssdt for accuracy?
The DSDT and SSDT in patches folder, I did that hoping that it will help to properly detect the cards. I patched the tables following RahabMan guidlines for this.
The Nvidia Web thicked in plist - I tested 2 Nvidia GPUs to see what’s happening and it’s similar. The system will boot with the monitors card only. Second card will causea reboot at the loginscreen. Usin AMD I un-checked web drivers.
I understand what I have to do for the USB, I will do ito e of these days.
Thunderbolt- as it’s working on windows, does it help if I extract the resources with a software similar to IORegistryExplorer?

Best
Cosministor

I don't use any DSDT or DSDT patches, all patching here is done within the config.plist and respective SSDTs, and all guidelines in the originating post of this thread (guide) as well as this small guideline describe how to do so properly. There is another thread that explains how to derive motherboard specific XHC USB kexts (if not already part of the respective Github library) instead of using USBInjectAll.kext + additional SSDT.

If you decided to opt for methods not being part of my guidelines totally fine with me, but in this case you are also invited to publish your issues in respective threads describing thus methods and not here.

Best,

KGP
 
I don't forget. And I don't forget I am using hacked system with hacked hardware. I said 'weird' and 'user friendly' from the 3D/Graphic designer point of view for whom hackintosh is not a hobby. iHack is a working tool.
I'm currently using 4x Nvidia GTX cards with High Sierra on desktop and I did not have to deal with rocket science to make it work. Recently I switched GTX1060 for RX570 in my Macbook's eGPU box and it works beautiful. I don't expected Apple recommended Vega to be a problem. I am happy I did not buy a "working OOB" Vega Froniter right away :)
I do not blame Apple or anyone. Sh*t happens.

Well.. I also used my hacks for scientific work and not just for fun or as a hobby, although my work rather relates to parallel computing and number crunching than 3D/Graphic design and I am doing my further build and guide development not only for my own benefit but hopefully also for the benefit of the respective Hackintosh community.

Talking about the Vega being part of the iMacPro, it does work OoB on the respective Apple device. Also all commercial Vegas including the Vega Frontier do also work OoB on Hackintosh systems, as long as one does not need to use all DP and HDMI ports and also as long one one does not aim at Display Hotplug, multi-monitor support and proper sleep/wake functionality. For achieving the latter on Hackintosh systems , WEG.kext and the respective SSDT-X299-Vega64.aml seem unavoidable, whereas the latter is also used by Apple and in fact has been derived from a dump of a real iMacPro system. If you simply respect these few necessary requisites, everything works as expected also on Hackintosh systems and you can even fine-tune your Vega by adding a dedicated load table to SSDT-X299-Vega64.aml. Finally, any Vega X299 system behaves fully vanilla with respect to macOS updates. Concerning RX560, RX570 or RX580, I never used any of these GPUs myself and up to my knowledge and based on respective user feedback, they are fully natively supported starting with 10.14.4 and at least also require WEG.kext or likely also a respective SSDT for overall compatibility with macOS.

Talking about Nvidia, you might know that I supported and recommended Nvidia myself within my guidelines for long and that I myself formerly used a water blocked Nvidia GTX 1080 Ti on my X299 system. However, the permanent dropout of available Web Drivers during early macOS public betas between June and October each year, in line with several repetitive severe issues and flaws in respective WEB and CUDA driver functionality over the years, and finally given the simple fact that in terms of Mojave and future macOS versions there is no further Nvidia support, I was forced to finally drop my Nvidia GPU from my system one year ago and also forced to change all respective guidelines.

I did never regret my drop of Nvidia and with the Vega we finally reached a fully vanilla macOS Hackintosh system most users are totally satisfied with. Finally I want to emphasise, that it isn't and never was the aim or interest of Apple to provide a "user friendly" and "legendary" or "plug and play" macOS operating system for any Hackintosh system. Provided the proper companies economical interests, rather the opposite is the case. Thus absolutely no reason to blame Apple for anything. And based on recent response by e.g. AMD or ASUS, the Hackintosh sector seems apparently too small for investing additional money for optimising their respective of-the-shelf PC products for additional unrestricted use under macOS rather than Windows, thus the latter rather seems to be our job in this case.

Anyway, I am not a friend of fundamental debates and I therefor would rather prefer if we could stop also with the ongoing discussion at this place.

If you are happy with Nvidia and you also want to remain with High Sierra or your RX570, totally fine with me in this case.

Best,

KGP
 
Last edited:
I implemented WEG / VGTab and Vega works absolutely great for me too - but only when there is no other graphic card in the system.
I agree Nvidia Web Drivers is crap but unfortunately at the moment for me there is no way to drop Nvidia.
One more question: have you tested Vega in multi GPU setup, especially in mix with Nvidia? I put Vega for sale already but maybe a bit hurry...
 
  • Like
Reactions: kgp
I implemented WEG / VGTab and Vega works absolutely great for me too - but only when there is no other graphic card in the system.
I agree Nvidia Web Drivers is crap but unfortunately at the moment for me there is no way to drop Nvidia.
One more question: have you tested Vega in multi GPU setup, especially in mix with Nvidia? I put Vega for sale already but maybe a bit hurry...

I never used more than one Vega on my system, but it is commonly know that at least two Vegas work without any issues under macOS, while you have to dedicate separate SSDTs for you each of the Vegas in use by considering the respective slot population.

I remember that @flymovies was using a hybrid Vega/Nvdida system by employing his Vega under macOS and his Nvidia under Windows (no web driver installed under macOS). I myself consider Vega/Nvidia hybrid configurations under macOS as critical and I would rather strongly discourage from such macOS hardware configurations. Maybe somebody else successfully driving a Vega/Nvidia hybrid configuration under macOS can oppose my personal impressions.

Thus I would rather recommend two stay with Nvidia in your case or opt for respective multi-Vega but Vega only implementations.
 
This is to let you know that due to vacations, I will be basically unavailable from 28th March until 3rd April 2019.

Thanks for your comprehension, my friends..

395188
 
Status
Not open for further replies.
Back
Top