Contribute
Register

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

Status
Not open for further replies.
Made some more progress, but i seem to be running into a strange issue with the graphics card drivers. when the graphics card drivers are loaded it seems to freeze the system after entering the password into OSX. any suggestions? ive tries adding the NvidiaFixup and Lilu and nothing worked,then i removed those and uninstalled the drivers and got back into the OS. reinstalling them again causes the same issue.
 
Ok if so there is a much simpler solution which could work aswell in Theory.

One could be to delete the driver itself for the Nvidia Cards so it could not be initialised at all or using nv_disable=1 aswell or combined.

I would really appreciate if someone could test this aswell since I don’t use an Nvidia gpu so can’t test it on my own.
Install the Nvidia and boot MacOS with bootflag nv_disable=1

This was one of the first thing I had tried at the beginning. It made no difference.

I had managed to get the NVidia and AMD installed, but only if the NVidia was the active card.
For thst I had to first boot in Windows, and then reboot under macOS. But it wouldn't survive of reboot, which made it very cumbersome.

Never succeeded in getting the AMD to work if the NVidia was present in one of the slot.
 
Ok then there is just the SSDT method which could work.
 
I had the same issue with my RX 560.

In clover DSDT, I made sure that SL05 -> GFX0 was enabled

And in my SSDT, I made sure to match my device ID's and names for GFX0 and HDAU


Code:
DefinitionBlock ("", "SSDT", 1, "NICO", "X299", 0x00000000)
{

External (_SB_.PC02.BR2A, DeviceObj)    // (from opcode)
External (_SB_.PC02.BR2A.GFX0, DeviceObj)    // (from opcode)
External (GFX0, DeviceObj)    // (from opcode)




Scope (_SB.PC02.BR2A)
    {
        Scope (GFX0)
        {
            OperationRegion (PCIS, PCI_Config, Zero, 0x0100)
            Field (PCIS, AnyAcc, NoLock, Preserve)
            {
                PVID,   16,
                PDID,   16
            }

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

            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                Store (Package (0x14)
                    {
                        "built-in",
                        Buffer (One)
                        {
                             0x00                                       
                        },

                        "device-id",
                        Buffer (0x04)
                        {
                             0xFF, 0x67, 0x00, 0x00                     
                        },

                        "hda-gfx",
                        Buffer (0x0A)
                        {
                            "onboard-2"
                        },

                        "AAPL,slot-name",
                        Buffer (0x07)
                        {
                            "Slot-1"
                        },

                        "@0,connector-type",
                        Buffer (0x04)
                        {
                             0x00, 0x08, 0x00, 0x00                     
                        },

                        "@1,connector-type",
                        Buffer (0x04)
                        {
                             0x00, 0x08, 0x00, 0x00                     
                        },

                        "@2,connector-type",
                        Buffer (0x04)
                        {
                             0x00, 0x08, 0x00, 0x00                     
                        },

                        "@3,connector-type",
                        Buffer (0x04)
                        {
                             0x00, 0x08, 0x00, 0x00                     
                        },

                        "@4,connector-type",
                        Buffer (0x04)
                        {
                             0x00, 0x08, 0x00, 0x00                     
                        },

                        "@5,connector-type",
                        Buffer (0x04)
                        {
                             0x00, 0x08, 0x00, 0x00                     
                        }
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }
        }

        Device (HDAU)
        {
            Name (_ADR, One)  // _ADR: Address
            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                Store (Package (0x0C)
                    {
                        "built-in",
                        Buffer (One)
                        {
                             0x00                                       
                        },

                        "device-id",
                        Buffer (0x04)
                        {
                             0xE0, 0xAA, 0x00, 0x00                     
                        },

                        "AAPL,slot-name",
                        Buffer (0x07)
                        {
                            "Slot-1"
                        },

                        "device_type",
                        Buffer (0x16)
                        {
                            "Multimedia Controller"
                        },

                        "name",
                        Buffer (0x1D)
                        {
                            "AMD High Definition Audio   "
                        },

                        "hda-gfx",
                        Buffer (0x0A)
                        {
                            "onboard-2"
                        }
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }
        }
    }

Thanks it worked!
Now the definition is complete.

Just for reference what are these?
"@0,connector-type",
there are 6 of them up to @5

Thanks again, I'm learning bit by bit!
:D
 
Ok if so there is a much simpler solution which could work as well in Theory.

One could be to delete the driver itself for the Nvidia Cards so it could not be initialized at all or using nv_disable=1 as well or combined.

I would really appreciate if someone could test this as well since I don’t use an Nvidia gpu so can’t test it on my own.

Edit: But after each update you have to redo it so better staying with SSDT if it works, but why not testing the other method as well? Could also work.

Edit 2: boot up MacOS without the Nvidia card installed and delete IONDRVSupport.kext, repair rights, shutdown.

Install the Nvidia and boot MacOS with bootflag nv_disable=1

Try also without it!

I read "nv_disable=1" does not work anymore in 10.13. and when I tried it, it did not work. This is, why I was looking for another method. I hope we can implement the SSDT solution. I will try tonight.
 
Another question, about Power Management, Power Nap.
I'm testing the build in extended periods of sleep now and I noticed after an hour or so it wakes up does a few things then it gets into sleep. Then when I wake it manually all seems to work, but Power Nap is disabled in system preferences.
I have darkware=0 flag in clover.
Is there a way to let it sleep without any auto wake ups?
Thanks!
 
I'm done installing the Asus X299 Deluxe, put the ASRock TB cards.
Adapted @kgp SSDT (I set the TB cards in slot 2 as I want slot 4 to be available for the nvidia cards later on). Once you've done it 3 times, it does go quick !

The ASRock TB card worked just fine, though I had to disable the boot from TB option, otherwise the BIOS boot hangs scanning for drive when my RAID box is connected to it. That alone is much better than with the Asus ThunderboltEX 3 card, which cause failure to boot if the Apple TB screen was connected to it.

Exactly the same behaviour as with the ASRock or Gigabyte Designare: suspend doesn't work and TB hotplug doesn't work. USB-C hotplug doesn't work either, worse it completely hangs the machine when I plug something to it, something I had no issue with the Designare (I could plug, it was just not seen, but no hang)

The USB ports on my Apple TB display do not work either (all USB on the motherboards work however), that includes the Apple TB display speakers and Facetime camera... I have the USB port limit patch applied. Yet it doesn't work.
In the PCI list, I can see the pci12d8,4008 which is this: http://pci-ids.ucw.cz/read/PC/12d8/400e the USB controller found in the screen. It is seen, but it doesn't work.

I will keep the Asus mostly because I can't be bothered swapping motherboard a 4th time, and I got the Asus for 380 euros on Amazon, adding the ASRock TB3 card I got on eBay for 82 euros, that's the cheapest option, and yet I have the highest number of ports.
Screen Shot 2018-03-20 at 3.16.22 pm.png
 
Another question, about Power Management, Power Nap.
I'm testing the build in extended periods of sleep now and I noticed after an hour or so it wakes up does a few things then it gets into sleep. Then when I wake it manually all seems to work, but Power Nap is disabled in system preferences.
I have darkware=0 flag in clover.
Is there a way to let it sleep without any auto wake ups?
Thanks!
Yes. You have to use this acpi patch: 47505257 02 > 58505257 02 Together with this ssdt
 

Attachments

  • SSDT-1.aml
    87 bytes · Views: 128
Yes I need it with your Nvidia in place...
Also I need your Originin Folder so in the Clover Bootloader press F4
Afterwards mount your EFI and upload the hole folder.

Hi DSM2, I have dumped the ACPI/origin folder as per F4 command and attached it to this post. I have also created a fresh version of ioreg, but I can only do it with Asus RX64 in PCIe slot one and PCIe slot 3 empty. With the Nvidia card installed in slot 3 concurrently I can't boot into 10.13.3 as expected. Also note I am no longer using lilu and whatever green as per post from @kgp, since the Vega 64 runs natively without these kexts.
 

Attachments

  • yvess iMac Pro.ioreg
    22.9 MB · Views: 104
  • origin.zip
    85.4 KB · Views: 72
Did you change in the BIOS where the TB is located?
I've had issue getting the Asus TB3 card to work in other slots though.

I did, yes. And it worked fine in Windows 10 — I plugged in a TB2 dock via the TB3-TB2 adapter and all the interfaces, et cetera, popped up in Windows and somehow worked despite it being a dock designed for use with Macs.
 
Status
Not open for further replies.
Back
Top