Contribute
Register

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

Status
Not open for further replies.
Ok i have a little Problem with the graphics, I´m on SMBIOS iMac17,1 and macOS 10.13.2 (17C88), downloaded the WebDriver-378.10.10.10.25.102 an follow the instructions below

a.) Copy NvidiaGraphicsFixup.kext v1.2.1 and Lilu.kext v1.2.1 (using the Debug) to the /EFI/CLOVER/kexts/Other/ directory in the EFI-
Partition of your System Disk.
b.) Install now the actual Nvidia 10.13 Web Driver Package.
c.) Now reboot as requested by the Nvidia Web Driver Installer
d.) All Users with SMBIOS iMac17,1 and macOS 10.13.2 (17C88) or SMBIOS iMacPro1,1 and macOS 10.13.2 (17C2120) /
macOS 10.13.2 SA (17C2205) now do possess already a fully functional Web Driver.

but the webdriver was not loaded.

I have the Nvidia symbol but OS X Default Graphics Driver is checked and the Graphicscard shows "Display 33 MB"

what could I have forgotten or done wrong?

EDIT: solved...maybe for others, I must enable the "NvidiaWeb" in Clover Configurator "System Parameters"
 

Attachments

  • Bildschirmfoto 2018-01-13 um 07.53.54.png
    Bildschirmfoto 2018-01-13 um 07.53.54.png
    72.5 KB · Views: 114
  • Bildschirmfoto 2018-01-13 um 16.55.04.png
    Bildschirmfoto 2018-01-13 um 16.55.04.png
    11.7 KB · Views: 116
  • config.plist
    11.5 KB · Views: 245
Last edited:
I'm having issues with sound (using AppleALC method) and XCPM even though I've implemented the patches on BIOS.
Attached is my current Bootleg from Clover
Suggestions appreciated
 

Attachments

  • Bootlog.pdf
    79.4 KB · Views: 158
:headbang: LOGIC-X ISSUE SOLVED :headbang:

The ASUS BIOS patching, providing full read/write access for the OSX Kernel to the MSR 0xE2 register, apparently also circumvents the Intel SKZ7 bug and yet missing BIOS microcode implementations. The Xnu CPU Power Management (XCPM) is now solely handled by the OSX Kernel, which completely resolves all former Logic-X or other studio audio software implementations. The same states for all other X299 mainboards with factory-default open MSR 0xE2 register implementation.

Nevertheless there is a second extremely important intrinsic LOGIC X configuration setting, which has to be adopted depending on the degree of sophistication of the studio audio hardware (Latency) in use.

In the following description, I will provide the correct audio preference settings for the ASUS Prime X299 with the onboard Realtek ALC S1220A audio chip:

1.) Within Logic X go to "Preferences" -> "Audio"

2.) Under Advanced check "Show Advanced Tools"

3.) Go back to the "Audio" settings and adopt "I/O Buffer Size" from "128" to e.g. "512" or even better "1024" Samples, in case you really use the onboard Realtek ALC S1220A audio chipset. Users of more sophisticated Studio Audio Hardware with better latencies have to adopt the I/O Buffer Size accordingly to their hardware implementation.

LogicX-audio settings.png
Now your Logic-X distribution should work absolutely flawless.

To check the now flawless functionality and performance of Logic-X, download, unzip and run the attached Logic-X test sample Test Hyperthreading Bug.logicx.zip of @DSM2. Note that the test sample sound volume output is zero, for avoiding panic attacks at audience side.. ;) this is just a test sample to check Logic-X functionality and performance and not a chart breaking audio sample :lol:

Start Intel Power Gadget (IPG) in parallel and play the test sample with Logic-X:

Logic-X functionality.png


You will rapidly notice that everything fully behaves as expected.


All credits to @DSM2 :thumbup:


Have fun and enjoy,

kgp.png
 

Attachments

  • Test Hyperthreading Bug.logicx.zip
    521.5 KB · Views: 118
Last edited:
:headbang: LOGIC-X ISSUE SOLVED :headbang:

The ASUS BIOS patching, providing full read/write access for the OSX Kernel to the MSR 0xE2 register, apparently also circumvents the Intel SKZ7 bug and yet missing BIOS microcode implementations. The Xnu CPU Power Management (XCPM) is now solely handled by the OSX Kernel, which completely resolves all former Logic-X or other studio audio software implementations. The same states for all other X299 mainboards with factory-default open MSR 0xE2 register implementation.

Nevertheless there is a second extremely important intrinsic LOGIC X configuration setting, which has to be adopted depending on the degree of sophistication of the studio audio hardware (Latency) in use.

In the following description, I will provide the correct audio preference settings for the ASUS Prime X299 with the onboard Realtek ALC S1220A audio chip:

1.) Within Logic X go to "Preferences" -> "Audio"

2.) Under Advanced check "Show Advanced Tools"

3.) Go back to the "Audio" settings and adopt "I/O Buffer Size" from "128" to e.g. "512" or even better "1024" Samples, in case you really use the onboard Realtek ALC S1220A audio chipset. Users of more sophisticated Studio Audio Hardware with better latencies have to adopt the I/O Buffer Size accordingly to their hardware implementation.

View attachment 305700
Now your Logic-X distribution should work absolutely flawless.

To check the now flawless functionality and performance of Logic-X, download, unzip and run the attached Logic-X test sample Test Hyperthreading Bug.logicx.zip of @DSM2. Note that the test sample sound volume output is zero, for avoiding panic attacks at audience side.. ;) this is just a test sample to check Logic-X functionality and performance and not a chart breaking audio sample :lol:

Start Intel Power Gadget (IPG) in parallel and play the test sample with Logic-X:

View attachment 305704

You will rapidly notice that everything fully behaves as expected.


All credits to @DSM2 :thumbup:


Have fun and enjoy,

View attachment 305705

Fantastic! Great work guys! @DSM2 glad you decided to share this with us!

on a side not, i saw you post elsewhere regarding that sleep/wake works fine on your vegas and that you are not implementing any ssdt for the cards, are you able to elaborate more on this as i am trying to work out some kinks with my vega 64 fe.

thanks in advanced
 
Fantastic! Great work guys! @DSM2 glad you decided to share this with us!

on a side not, i saw you post elsewhere regarding that sleep/wake works fine on your vegas and that you are not implementing any ssdt for the cards, are you able to elaborate more on this as i am trying to work out some kinks with my vega 64 fe.

thanks in advanced

This probably won't be the end and all and be all for the Vega, but here's what I'm using now as an ssdt. Most things are working right for me. Single VEGA card here, first slot

Code:
/for definition block
    External (_SB_.PCI2.BR2A.GFX0, DeviceObj)    // (from opcode)
    External (GFX0, DeviceObj)    // (from opcode)
    External (GPRW, MethodObj)    // 2 Arguments (from opcode)
/end definition block

    Scope (\_SB.PCI2.BR2A.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))
        }

        Device (GFXA)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Device (GFX0)
            {
                Name (_ADR, Zero)  // _ADR: Address
                OperationRegion (PCIB, PCI_Config, Zero, 0x0100)
                Field (PCIB, AnyAcc, NoLock, Preserve)
                {
                    Offset (0x10),
                    BAR0,   32,
                    BAR1,   32,
                    BAR2,   64,
                    BAR4,   32,
                    BAR5,   32
                }

                Method (_INI, 0, NotSerialized)  // _INI: Initialize
                {
                    If (LEqual (BAR5, Zero))
                    {
                        Store (BAR2, Local0)
                    }
                    Else
                    {
                        Store (BAR5, Local0)
                    }

                    OperationRegion (GREG, SystemMemory, And (Local0, 0xFFFFFFF0), 0x8000)
                    Field (GREG, AnyAcc, NoLock, Preserve)
                    {
                        Offset (0x6800),
                        GENA,   32,
                        GCTL,   32,
                        LTBC,   32,
                        Offset (0x6810),
                        PSBL,   32,
                        SSBL,   32,
                        PTCH,   32,
                        PSBH,   32,
                        SSBH,   32,
                        Offset (0x6848),
                        FCTL,   32,
                        Offset (0x6EF8),
                        MUMD,   32
                    }

                    Store (Zero, FCTL)
                    Store (Zero, PSBH)
                    Store (Zero, SSBH)
                    Store (Zero, LTBC)
                    Store (One, GENA)
                    Store (Zero, MUMD)
                }

                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                {
                    Store (Package (0x16)
                        {
                            "AAPL,slot-name",
                            Buffer (0x07)
                            {
                                "Slot-1"
                            },

                            "CFG,CFG_USE_AGDC",
                            Buffer (One)
                            {
                                 0x00                                          
                            },

                            "PP,PP_DisableAutoWattman",
                            Buffer (One)
                            {
                                 0x00                                          
                            },

                            "ATY,Part#",
                            Buffer (0x0C)
                            {
                                "113-3E366DU"
                            },

                            "@0,AAPL,boot-display",
                            Buffer (One)
                            {
                                 0x00                                          
                            },

                            "@0,name",
                            Buffer (0x0D)
                            {
                                "ATY,Kamarang"
                            },

                            "@1,name",
                            Buffer (0x0D)
                            {
                                "ATY,Kamarang"
                            },

                            "@2,name",
                            Buffer (0x0D)
                            {
                                "ATY,Kamarang"
                            },

                            "@3,name",
                            Buffer (0x0D)
                            {
                                "ATY,Kamarang"
                            },

                            "model",
                            Buffer (0x21)
                            {
                                "AMD Radeon Vega Frontier Edition"
                            },

                            "hda-gfx",
                            Buffer (0x0A)
                            {
                                "onboard-2"
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }
 
I'm having issues with sound (using AppleALC method) and XCPM even though I've implemented the patches on BIOS.
Attached is my current Bootleg from Clover
Suggestions appreciated

I've used VoodooHDA method, it worked for me, the two other methods not. All ports are functional, even the optical one.
Hope it helps.
 
This probably won't be the end and all and be all for the Vega, but here's what I'm using now as an ssdt. Most things are working right for me. Single VEGA card here, first slot

Code:
/for definition block
    External (_SB_.PCI2.BR2A.GFX0, DeviceObj)    // (from opcode)
    External (GFX0, DeviceObj)    // (from opcode)
    External (GPRW, MethodObj)    // 2 Arguments (from opcode)
/end definition block

    Scope (\_SB.PCI2.BR2A.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))
        }

        Device (GFXA)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Device (GFX0)
            {
                Name (_ADR, Zero)  // _ADR: Address
                OperationRegion (PCIB, PCI_Config, Zero, 0x0100)
                Field (PCIB, AnyAcc, NoLock, Preserve)
                {
                    Offset (0x10),
                    BAR0,   32,
                    BAR1,   32,
                    BAR2,   64,
                    BAR4,   32,
                    BAR5,   32
                }

                Method (_INI, 0, NotSerialized)  // _INI: Initialize
                {
                    If (LEqual (BAR5, Zero))
                    {
                        Store (BAR2, Local0)
                    }
                    Else
                    {
                        Store (BAR5, Local0)
                    }

                    OperationRegion (GREG, SystemMemory, And (Local0, 0xFFFFFFF0), 0x8000)
                    Field (GREG, AnyAcc, NoLock, Preserve)
                    {
                        Offset (0x6800),
                        GENA,   32,
                        GCTL,   32,
                        LTBC,   32,
                        Offset (0x6810),
                        PSBL,   32,
                        SSBL,   32,
                        PTCH,   32,
                        PSBH,   32,
                        SSBH,   32,
                        Offset (0x6848),
                        FCTL,   32,
                        Offset (0x6EF8),
                        MUMD,   32
                    }

                    Store (Zero, FCTL)
                    Store (Zero, PSBH)
                    Store (Zero, SSBH)
                    Store (Zero, LTBC)
                    Store (One, GENA)
                    Store (Zero, MUMD)
                }

                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                {
                    Store (Package (0x16)
                        {
                            "AAPL,slot-name",
                            Buffer (0x07)
                            {
                                "Slot-1"
                            },

                            "CFG,CFG_USE_AGDC",
                            Buffer (One)
                            {
                                 0x00                                         
                            },

                            "PP,PP_DisableAutoWattman",
                            Buffer (One)
                            {
                                 0x00                                         
                            },

                            "ATY,Part#",
                            Buffer (0x0C)
                            {
                                "113-3E366DU"
                            },

                            "@0,AAPL,boot-display",
                            Buffer (One)
                            {
                                 0x00                                         
                            },

                            "@0,name",
                            Buffer (0x0D)
                            {
                                "ATY,Kamarang"
                            },

                            "@1,name",
                            Buffer (0x0D)
                            {
                                "ATY,Kamarang"
                            },

                            "@2,name",
                            Buffer (0x0D)
                            {
                                "ATY,Kamarang"
                            },

                            "@3,name",
                            Buffer (0x0D)
                            {
                                "ATY,Kamarang"
                            },

                            "model",
                            Buffer (0x21)
                            {
                                "AMD Radeon Vega Frontier Edition"
                            },

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


same as the front page, its what im using as well. however still issues with it.
 
This probably won't be the end and all and be all for the Vega, but here's what I'm using now as an ssdt. Most things are working right for me. Single VEGA card here, first slot

Code:
/for definition block
    External (_SB_.PCI2.BR2A.GFX0, DeviceObj)    // (from opcode)
    External (GFX0, DeviceObj)    // (from opcode)
    External (GPRW, MethodObj)    // 2 Arguments (from opcode)
/end definition block

    Scope (\_SB.PCI2.BR2A.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))
        }

        Device (GFXA)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Device (GFX0)
            {
                Name (_ADR, Zero)  // _ADR: Address
                OperationRegion (PCIB, PCI_Config, Zero, 0x0100)
                Field (PCIB, AnyAcc, NoLock, Preserve)
                {
                    Offset (0x10),
                    BAR0,   32,
                    BAR1,   32,
                    BAR2,   64,
                    BAR4,   32,
                    BAR5,   32
                }

                Method (_INI, 0, NotSerialized)  // _INI: Initialize
                {
                    If (LEqual (BAR5, Zero))
                    {
                        Store (BAR2, Local0)
                    }
                    Else
                    {
                        Store (BAR5, Local0)
                    }

                    OperationRegion (GREG, SystemMemory, And (Local0, 0xFFFFFFF0), 0x8000)
                    Field (GREG, AnyAcc, NoLock, Preserve)
                    {
                        Offset (0x6800),
                        GENA,   32,
                        GCTL,   32,
                        LTBC,   32,
                        Offset (0x6810),
                        PSBL,   32,
                        SSBL,   32,
                        PTCH,   32,
                        PSBH,   32,
                        SSBH,   32,
                        Offset (0x6848),
                        FCTL,   32,
                        Offset (0x6EF8),
                        MUMD,   32
                    }

                    Store (Zero, FCTL)
                    Store (Zero, PSBH)
                    Store (Zero, SSBH)
                    Store (Zero, LTBC)
                    Store (One, GENA)
                    Store (Zero, MUMD)
                }

                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                {
                    Store (Package (0x16)
                        {
                            "AAPL,slot-name",
                            Buffer (0x07)
                            {
                                "Slot-1"
                            },

                            "CFG,CFG_USE_AGDC",
                            Buffer (One)
                            {
                                 0x00                                         
                            },

                            "PP,PP_DisableAutoWattman",
                            Buffer (One)
                            {
                                 0x00                                         
                            },

                            "ATY,Part#",
                            Buffer (0x0C)
                            {
                                "113-3E366DU"
                            },

                            "@0,AAPL,boot-display",
                            Buffer (One)
                            {
                                 0x00                                         
                            },

                            "@0,name",
                            Buffer (0x0D)
                            {
                                "ATY,Kamarang"
                            },

                            "@1,name",
                            Buffer (0x0D)
                            {
                                "ATY,Kamarang"
                            },

                            "@2,name",
                            Buffer (0x0D)
                            {
                                "ATY,Kamarang"
                            },

                            "@3,name",
                            Buffer (0x0D)
                            {
                                "ATY,Kamarang"
                            },

                            "model",
                            Buffer (0x21)
                            {
                                "AMD Radeon Vega Frontier Edition"
                            },

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

What do you achieve or fix with that? Fan Bug still there?

Greets
 
@kgp just a qucik question!

If I update my bios for pached one, can I still stay on Imac 17,1 SMBIOS? Or to feel the patched bios benefits I must use the Imac Pro SMBIOS?

Thanks as always your hard work!
 
Status
Not open for further replies.
Back
Top