Contribute
Register

SSDT GPU (Graphics Card) Injection

Status
Not open for further replies.
I followed this guide, but my device was renamed to D082 instead of GFX1. There were a couple of inconsistencies between the guide here and the attached patches in the zip. My device was originally AppleACPIPCI/BR3A@3/IOPP/H000@0. The DSDT shows it like this:
Code:
Device (H000)
{
    Name (_ADR, 0x00)
    Method (_SUN, 0, NotSerialized)
    {
        Return (SNUM ())
    }
}

So I applied used method 3b and applied the patch from Replace Current [email protected]3A.H000/D077.txt. But the SSDT code looks different than your example. Then I applied the patch from Nvidia Kepler HDMI SSDT patch.txt (my GPU is a Titan Black), and this was the final SSDT:

Code:
/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20100331
 *
 * Disassembly of iASLQBI8Fl.aml, Sun Jul 31 15:18:37 2016
 *
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x00000170 (368)
 *     Revision         0x01
 *     Checksum         0xB5
 *     OEM ID           "shiloh"
 *     OEM Table ID     "GFX1"
 *     OEM Revision     0x00001000 (4096)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20100331 (537920305)
 */
DefinitionBlock ("iASLQBI8Fl.aml", "SSDT", 1, "shiloh", "GFX1", 0x00001000)
{
    Device (_SB.PCI0.BR3A.GFX1)
    {
        Name (_ADR, Zero)
        Name (_SUN, One)
        Method (_DSM, 4, NotSerialized)
        {
            If (LEqual (Arg2, Zero))
            {
                Return (Buffer (One)
                {
                    0x03
                })
            }

            Return (Package (0x0A)
            {
                "@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
                },

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

    Device (_SB.PCI0.BR3A.HDAU)
    {
        Name (_ADR, One)
        Method (_DSM, 4, NotSerialized)
        {
            If (LEqual (Arg2, Zero))
            {
                Return (Buffer (One)
                {
                    0x03
                })
            }

            Return (Package (0x02)
            {
                "hda-gfx",
                Buffer (0x0A)
                {
                    "onboard-1"
                }
            })
        }
    }

    Name (_SB.PCI0.BR3A.H000._STA, Zero)
    Name (_SB.PCI0.BR3A.H001._STA, Zero)
    Name (_SB.PCI0.BR3A.D077._STA, Zero)
}

I can see in the boot log that the SSDT is being applied. Why was the device renamed to D082 instead of GFX1?

I got the same as you except the device renamed D07D
did you find any fix for this?
My PCI section in System Information shows nothing but
"This computer doesn't contain any PCI cards or devices. If you installed or connected, a PCI card or device, make sure they’re properly installed."
 
Ok I want to try this too! :)

I've read through a lot of forum posts, but I'm still a bit scared so I hope to find some support here.

iMac 15,1
Mobo: z97x-ud5h-bk
cpu: i7 4790k
videocard: EVGA gtx 960
Ozmosis bios

In ioreg I found the following:

PCI0@0/AppleACPIPCI/GFX0@2 (my 4790k integrated gpu)
PCI0@0/AppleACPIPCI/PEG0@1/IOPP/PEGP@0 (EVGA gtx 960)

in my DSDT extracted with maciASL I found the following devices

_SB.PCI0.\_SB.PCI0.GFX0
_SB.PCI0.\_SB.PCI0.PEG0

Code:
Device (PEG0)
{
        Name (_ADR, 0x00010000)
        Device (PEGP)
        {
                Name (_ADR, Zero)
        }
}

Device (GFX0)
{
        Name (_ADR, 0x00020000)
}

In maciASL I also found I could open an SaSSDT file that expand a lot more on the devices.
for example on the PEG0 device:

Code:
Scope (\_SB.PCI0.PEG0)
    {
        OperationRegion (PEGR, PCI_Config, 0xC0, 0x30)
        Field (PEGR, DWordAcc, NoLock, Preserve)
        {
                    Offset (0x02),
            PSTS,   1,
                    Offset (0x2C),
            GENG,   1,
                ,   1,
            PMEG,   1
        }

        Method (_PRW, 0, NotSerialized)
        {
            Return (GPRW (0x09, 0x04))
        }

        Method (_PSW, 1, NotSerialized)
        {
            If (Arg0)
            {
                Store (One, GENG)
                Store (One, PMEG)
            }
            Else
            {
                Store (Zero, GENG)
                Store (Zero, PMEG)
            }
        }

        Method (HPME, 0, Serialized)
        {
            Store (One, PSTS)
        }

        Method (_PRT, 0, NotSerialized)
        {
            If (PICM)
            {
                Return (AR02 ())
            }

            Return (PR02 ())
        }

        Method (_INI, 0, NotSerialized)
        {
            Store (LTRA, LTRS)
            Store (OBFA, OBFS)
        }

        Name (LTRV, Package (0x04)
        {
            Zero,
            Zero,
            Zero,
            Zero
        })
        Name (OPTS, Zero)
        Method (_DSM, 4, Serialized)
        {
            Name (_T_1, Zero)
            Name (_T_0, Zero)
            While (One)
            {
                Store (ToInteger (Arg0), _T_0)
                If (LEqual (_T_0, Buffer (0x10)
                        {
                            /* 0000 */    0xD0, 0x37, 0xC9, 0xE5, 0x53, 0x35, 0x7A, 0x4D,
                            /* 0008 */    0x91, 0x17, 0xEA, 0x4D, 0x19, 0xC3, 0x43, 0x4D
                        }))
                {
                    While (One)
                    {
                        Store (ToInteger (Arg2), _T_1)
                        If (LEqual (_T_1, Zero))
                        {
                            If (LEqual (Arg1, 0x02))
                            {
                                Store (One, OPTS)
                                If (LTRS)
                                {
                                    Or (OPTS, 0x40, OPTS)
                                }

                                If (OBFS)
                                {
                                    Or (OPTS, 0x10, OPTS)
                                }

                                Return (OPTS)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                        Else
                        {
                            If (LEqual (_T_1, 0x04))
                            {
                                If (LEqual (Arg1, 0x02))
                                {
                                    If (OBFS)
                                    {
                                        Return (Buffer (0x10)
                                        {
                                            /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                            /* 0008 */    0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
                                        })
                                    }
                                    Else
                                    {
                                        Return (Buffer (0x10)
                                        {
                                            /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                            /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                                        })
                                    }
                                }
                            }
                            Else
                            {
                                If (LEqual (_T_1, 0x06))
                                {
                                    If (LEqual (Arg1, 0x02))
                                    {
                                        If (LTRS)
                                        {
                                            Store (And (ShiftRight (SMSL, 0x0A), 0x07), Index (LTRV,
                                                Zero))
                                            Store (And (SMSL, 0x03FF), Index (LTRV, One))
                                            Store (And (ShiftRight (SNSL, 0x0A), 0x07), Index (LTRV,
                                                0x02))
                                            Store (And (SNSL, 0x03FF), Index (LTRV, 0x03))
                                            Return (LTRV)
                                        }
                                        Else
                                        {
                                            Return (Zero)
                                        }
                                    }
                                }
                            }
                        }

                        Break
                    }
                }

                Break
            }

            Return (Buffer (One)
            {
                0x00
            })
        }

        PowerResource (PG00, 0x00, 0x0000)
        {
            Name (_STA, One)
            Method (_ON, 0, Serialized)
            {
                PGON (Zero)
                Store (One, _STA)
            }

            Method (_OFF, 0, Serialized)
            {
                PGOF (Zero)
                Store (Zero, _STA)
            }
        }

        Name (_PR0, Package (0x01)
        {
            PG00
        })
        Name (_PR2, Package (0x01)
        {
            PG00
        })
        Name (_PR3, Package (0x01)
        {
            PG00
        })
        Method (_S0W, 0, NotSerialized)
        {
            Return (0x04)
        }
    }

    Scope (\_SB.PCI0.PEG0.PEGP)
    {
        OperationRegion (PCIS, PCI_Config, Zero, 0x0100)
        Field (PCIS, AnyAcc, NoLock, Preserve)
        {
            PVID,   16,
            PDID,   16
        }

        Method (_PRW, 0, NotSerialized)
        {
            Return (GPRW (0x09, 0x04))
        }
    }

So... all the devices are there and they all work (except for the black screen after apple logo thing), I only have to rename the devices right? Could it be as simple as replacing "GFX0" with "IGPU" and "PEGP" with "GFX0"? (or do I need to replace "PEG0"?) in my DSDT (and SSDT I presume?)

And if I want HDMI audio... or is it for more monitors?... I can first add this to my PEGP device in PEG0 in my DSDT

Code:
Device (PEG0)
                {
                    Name (_ADR, 0x00010000)
                    Device (PEGP)
                    {
                        Name (_ADR, Zero)
                        Name (_SUN, One)
                        Method (_DSM, 4, NotSerialized)
                        {
                            If (LEqual (Arg2, Zero))
                            {
                                Return (Buffer (One)
                                {
                                    0x03
                                })
                            }

                            Return (Package (0x0A)
                            {
                                "@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
                                },

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

                    Device (HDAU)
                    {
                        Name (_ADR, One)
                        Method (_DSM, 4, NotSerialized)
                        {
                            If (LEqual (Arg2, Zero))
                            {
                                Return (Buffer (One)
                                {
                                    0x03
                                })
                            }

                            Return (Package (0x04)
                            {
                                "layout-id",
                                Buffer (0x04)
                                {
                                    0x01, 0x00, 0x00, 0x00
                                },

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

Then I put my DSDT and the SaSSDT (or SSDT-4.aml? that's the name maciASL gives it after opening) in /EFI/Oz/Acpi/Load and they will overwrite what is already in my BIOS?

I hope you can help me? This stuff sometimes seems easy but it's just crazy ;)

Greets!


I included the DSDT and SaSSDT
 

Attachments

  • System DSDT.dsl
    611.7 KB · Views: 134
  • System SSDT-4.dsl
    157 KB · Views: 122
Last edited:
Ok I did it!

Extracted the DSDT and SaSSDT that contained references to my integrated and discreet gpu from my BIOS (from the rom file used to install my BIOS actually) and renamed all GFX0 > IGPU and PEGP > GFX0

With the latest iasl binary (v6.1) I disassemble both files to .dsl and used the latest MaciASL (patchmatic from RehabMan) to string replace the names and then compile and save them back to .aml. Inserted them back into my Ozmosis modded rom file using Dsdt2Bios and UEFITool.

After first flashing back with a non Ozmosis rom, then flashing again with the new modded and DSDT patched rom (dual-bios precautions) I ended up with what I wanted.

ioreg igpu and gfx0.png


But after all this my DVI output on my Nvidia card is still disabled after the Apple logo boot.
Also my 4,7 GHz intel core i7 when down to 4,3 GHz... not sure if this is because of "better" power management or because I reflashed my BIOS and something random happened.

I can't test if any of the other outputs are working right now, don't have a HDMI monitor laying around.
But it's probably not working because of the PEG0@1 right?

Any help would be great!
 
Last edited:
Also my 4,7 GHz intel core i7 when down to 4,3 GHz... not sure if this is because of "better" power management or because I reflashed my BIOS and something random happened.
Did you check your BIOS settings after the flash to make sure they are the same as before the flash?
 
Did you check your BIOS settings after the flash to make sure they are the same as before the flash?

I checked with AppleIntelInfo.kext and it's showing me 4400 MHz, which is the same as my BIOS is showing and it's the default value, so I'm good. I also tried the SSDT generated with Piker-Alpha ssdtPRGen.sh but it wasn't giving me much extra (only some IGPU P-States) so I removed it.

Still black after the apple logo loading screen though. I'm going to try a different board-id, hope it will help.

... Little later ...

Tried different board-id boot arg: agdp=Mac-FC02E91DDD3FA6A4 but that didn't change anything (probably because I needed to edit a kext, which I won't) explained here https://pikeralpha.wordpress.com/2016/10/11/black-screen-tip-of-the-day/

But I think I might have found the solution Shilohhh talked about how the "unload" value in the AppleGraphicsDevicePolicy.kext actually does not disable the GFX# it's referring to, It unloads everything else? Mac15,1 uses Config2 in the policy and the "unload" value for GFX0 is "NO" so maybe this time it disables GFX0 and nothing else?

... Little more later ...

Nope! I changed the name to GFX1 and still booting with a black screen after logo. I know it's not a kernel panic or whatever, because I can use Remote Desktop to restart my computer.

Could it be that the Graphics Device Policy still thinks my IGPU is GFX0? And thus disables all other discrete GPU? Or is it the connector I'm using? I bought some more cables (delivery is tomorrow) to try this last thing, though I'm a bit pessimistic :/
 

Attachments

  • ioreg_gfx1.png
    ioreg_gfx1.png
    62.4 KB · Views: 179
Last edited:
I have the same mainboard and the same problem, could you attach the edited SSDT?

Thanks

Great guide! I already made an SSDT for my ASUS X99 Deluxe, but my ASUS X99-E WS does not work with the same SSDT logic.

Renaming H000 to GFX1 works on the Deluxe (as does using DSDT patches in clover, which avoids an SSDT entirely for this), but neither works on my X99-E WS as H000 no longer is the device the displays come off of. Instead, on the X99-E WS, there is an additional device called "pci-bridge@10" which is not present in the DSDT, nor in any additional ACPI dumps that I could find.

I have attached my current SSDT version, Clover F4 DSDT, and the IOreg. Please let me know if you have any ideas on what to do about that device.

Thanks!

Edit: NM, I fixed this. I added another device with ADR 0x00100000 to the SSDT, then added GFX1 to it.
 
Work in progress...

If you have come to this guide to deal with a "Black Screen" issue, please read this post first:

http://www.tonymacx86.com/graphics/...ro-6-1-imac-15-imac-17-system-definition.html

You may also want to take a look at this post if you feel you might be having other Nvidia Web Driver related issues:
Solving NVIDIA Driver Install & Loading Problems

Injecting your GPU/s in your ACPI tables can:
• Enable HDMI audio functionality from your GPU.
• Possibly resolve issues with connecting multiple monitors.
• Solve ports not working.
• Fix issues with hot-plugging monitors.
• Naming your GPU to "GFX1" can eliminate the "Black Screen" issue with the MacPro6,1 system definition e.g. losing video signal to your monitor when OSX finishes loading and you should reach the desktop at boot time (the system is running, fully functional but there is no signal to the monitor). [credit: dgsga and furter]. NOTE: The system will still be responsive (not frozen). If your system is unresponsive with a black screen, this will not help you.
I prefer SSDTs over the DSDT for device injection as updating the BIOS, moving PCI cards, or adding/removing PCI cards may require you to extract and edit a new DSDT.

Background:

In OEM Apple ACPI tables, the GPU Devices are named as follows:

iMac13/14/15/17: Discrete GPU = "GFX0" (@0). Integrated GPU = "IGPU" (@2 or 0x00020000)
MacPro3,1/5,1: Discrete GPU#1 = "PSX1" (@0).
MacPro6,1: Discrete GPU#1 = "GFX1" (@0). Discrete GPU#2 = "GFX2" (@0).

The usual school of thought is that each GPU should have a unique name (1st GPU = GFX0, 2nd GPU = GFX1 etc etc etc). However, If you use MacPro6,1 with multiple GPUs, you need to name all GPUs GFX1. Any GPU with a different name will lose video signal after the "Apple Logo" boot progress screen.

Preparation:


The file attachment at the bottom of this post contains a basic starter SSDT named SSDT-1.aml. Please download and unzip the files now.

Restart your hackintosh and enter the Clover GUI (you may need to hold down the spacebar while it's booting if you have Timeout set to 0). Press the F4 key (this will extract your motherboard's OEM ACPI tables) and wait for 5 seconds (Clover won't give you any indication that it has extracted the files). Boot your hackintosh and mount your EFI partition (see my included Mount EFI apps).

IMPORTANT:
Make sure your clover config won't conflict with your new SSDT injection. Open your Clover config.plist (EFI/CLOVER/config.plist).

Make sure that you don't have "AddHDMI" active. If it is present, set it to "false":

Code:
    <key>ACPI</key>
    <dict>
        <key>DSDT</key>
        <dict>
...
            <key>Fixes</key>
            <dict>
...
                <key>AddHDMI_8000000</key>
                <false/>

I'm not sure if it matters if Clover is adding properties to your GPU. If they are present, you may want to remove them. If any of these keys are not present, it's OK, don't add them.
Code:
    <key>Devices</key>
    <dict>
        <key>AddProperties</key>
        <array>
            <dict>
                <key>Device</key>
                <string> *your GPU* </string>
                <key> *key* </key>
                <string> *any* </string>
...

Make sure that Clover is not using a EFI string to inject your GPU (you would have had to put it there yourself).
Code:
        <key>Inject</key>
        <false/>
        <key>NoDefaultProperties</key>
        <false/>
        <key>Properties</key>
        <string> *string of numbers* </string>

I'm not sure if it matters if Clover is faking your discrete GPU's device ID. Fake device ID's can be added to the SSDT if needed (info coming later but you might want to wait if you need a fake GPU ID). UseIntelHDMI might be OK but I'm not positive that it won't conflict with our Discrete GPU SSDT injection. If any of these keys are not present, it's OK, don't add them.
Code:
        <key>FakeID</key>
        <dict>
            <key>ATI</key>
            <string>0x0</string>
...
            <key>IntelGFX</key>
            <string>0x0</string>
...
            <key>NVidia</key>
            <string>0x0</string>
...
        <key>UseIntelHDMI</key>
        <false/>

Navigate to the EFI/CLOVER/ACPI/patched folder. If you have DSDT.aml or SSDT*.aml in this folder, verify that you don't already have an entry/s for your GPU/s in these files. If there are GPU entry/s in these ACPI files, you may either remove them, modify the device name/s or leave them alone and skip making a new one/s. You can not inject the same device more than once. If you already have a SSDT named SSDT-1.aml there, rename the starter SSDT-1.aml you just downloaded using the next sequentially higher number IE: SSDT-2.aml or SSDT-3.aml etc etc etc. Names you can use are: "SSDT.aml" or "SSDT-0.aml" through "SSDT-9.aml". If you have more than 1 GPU installed and would like to create SSDTs for them too, duplicate the unmodified starter SSDT and name it using the previously mentioned naming conventions. Continue duplicating and renaming until you have enough for all the GPUs you'd like to inject.


1) Location:

Find your GPU's location in your IO Registry. I prefer IORegistryExplorer.app but you can use IOJones if you prefer. Open your IO Registry viewer and find your GPU. You can try searching for the word "display" if you are lost. In this example, the GPU is located in the PCI slot named "NPE3" and the address is "@2"(0x00020000).
NOTE: The GPU was given the name "display" by default because it has no given name in the ACPI tables. It's address is @0 (Zero or 0x00) in NPE3 which is @2 (0x00020000) in PCI0. Your GPU may already have a name assigned to it in the ACPI tables like "GFX0@0" or "PEGP@0".
171402-ioreg-finddisplay.jpg


NOTE: "AppleACPIPCI" is the driver and not a device. "IOPP" is the PCI bridge for that slot and not a additional device (it has no "@" address). Take a note of the GPU's device name, or name of the PCI slot that your GPU is installed in. Use TextEdit to record your notes.

2) Path:


Navigate to the EFI/CLOVER/ACPI/origin folder. Open DSDT.aml with MaciASL http://sourceforge.net/projects/maciasl/ and enter the name you found in step 1 in the search box labeled "Find" at the top of the app. Use the ">" button next to the search box to go to the matching results. NOTE: The result you are looking for will start with the word "Device". EXAMPLE: "Device (NPE3)".

171401-maciasl-finddevice.jpg


Take a note of the device path at the far bottom left corner of the app but discard "DSDT" and separate each device with a period ".". Example: "_SB.PCI0.NPE3".
NOTE: If you can't find your device in the DSDT, open your SSDTs from the origin folder and search for the device in each of them. Discard "SSDT" instead of "DSDT" in the path if the device was in a SSDT. Take a note of the device's "Name (_ADR, ...)" (address). If it is "Name (_ADR, 0x00010000)", "Name (_ADR, 0x00020000)", "Name (_ADR, 0x00030000)", or something similar, you will add GFX1 to it in step 3a.
Examples:
PCI0@0 > NPE3@2 > display@0 (_SB.PCI0.NPE3)
PCI0@0 > NPE1@1 > display@0 (_SB.PCI0.NPE1)
PCI0@0 > NPE7@3 > display@0 (_SB.PCI0.NPE7)
PCI0@0 > NPE9@3,2 > display@0 (_SB.PCI0.NPE9)

If it is "Name (_ADR, Zero)" or "Name (_ADR, 0x00)", you will need to disable the device and replace it with GFX1 in step 3b.
Examples:
PCI0@0 > PEG0@1 > PEGP@0 (\_SB.PCI0.PEG0.PEGP)
PCI0@0 > BR3A@3 > H000@0 (_SB.PCI0.BR3A.H000)
PCI0@0 > BR3A@3 > D077@0 (_SB.PCI0.BR3A.D077)
PCI0@0 > BR2A@2 > H000@0 (_SB.PCI0.BR2A.H000)
PCI0@0 > BR2A@2 > D075@0 (_SB.PCI0.BR3A.D075)

3) Patching:


Open the downloaded SSDT-1.aml (or the duplicate you are working on) in MaciASL.

If your GPU already had a device name (GFX0, PEGP, PXSX, H000, D077 or anything else) with a Zero (0x0) address in the OEM ACPI tables (DSDT or a SSDT), Skip to Step 3b.


If your GPU had no entry in the OEM ACPI tables, and showed up in IORegistryExplorer as "display@0" , continue here with step 3a.

3a) Add GFX1 to the PCI slot device:

Replace "_SB.PCI0.NPE3" with your device path from step 2 (if it is different), but leave ".GFX1" ".HDAU" at the end for the 2 devices.

EXAMPLE: If your path was \_SB.PCI0.PEG0, then Replace just the red part in "Device (_SB.PCI0.NPE3.GFX1)" & "Device (_SB.PCI0.NPE3.HDAU)" with \_SB.PCI0.PEG0.

BEFORE:

Code:
{
    Device (_SB.PCI0.NPE3.GFX1)
    {
        Name (_ADR, Zero)
        Name (_SUN, One)
    }


    Device (_SB.PCI0.NPE3.HDAU)
    {
        Name (_ADR, One)
    }
}

AFTER:

Code:
{
    Device (\_SB.PCI0.PEG0.GFX1)
    {
        Name (_ADR, Zero)
        Name (_SUN, One)
    }


    Device (\_SB.PCI0.PEG0.HDAU)
    {
        Name (_ADR, One)
    }
}

Continue to Step 3c

.


Hey, I tried this but it's not changing the GPU name for me. It still shows up as display.

I did steps 3a, 3b, 3c and my first try and 3a and 3c on my second try. Still nothing.

Couple questions. I'm not editing the DSDT file in any way right? Just the SSDT-1 file you provide and move that to "patched" when it's done? Are 3a and 3c the only two steps I need?

Also, does the PCI slot the graphics card is in matter? it says @3 so does that mean it's expecting the card to be in the 3rd PCI slot?

Thanks.
 
Hey!

I have just installed a fresh OS X 10.12.2 on my hackintosh. The install went fine, and the first boot works well. But after installing Nvidia WebDrivers i get stuck on the Black screen (No signal).

I have done a lot of tests, but i cant really figure out whats wrong.

My EFI is based on this repo because we have same motherboard.
github.com/koush/EFI-X99/tree/master/CLOVER

What i have changed:
1: SSDT-GFX1
2: SSDT-NVMe
3: and changed the config and the VoodooTSCSync

I have attached a zip with my EFI files and a IOReg dump and a Clover Boot log.

Can some one please see whats wrong here? I really want to get this up and running. The strange thing is i got this up and running earlier with Nvidia Web Drivers.

But after a clean install, stuck on black screen.

Maybe there is some BIOS settings i have set wrong? Any help is good!

Thank you!

UPDATE:
I switched to HDMI and now its working. But I need to replug the hdmi cable when the system has booted.
 

Attachments

  • debug Mac Pro.zip
    1.4 MB · Views: 115
Last edited:
I could not get this to work. This is a screen grab of my IoReg
Screen Shot 2017-02-20 at 7.01.08 PM.png


Here is the SSDT I Created based off of your instructions

Code:
/*
* Intel ACPI Component Architecture
* AML Disassembler version 20100331
*
* Disassembly of iASLYSwE8x.aml, Mon Feb 20 19:12:14 2017
*
*
* Original Table Header:
*     Signature        "SSDT"
*     Length           0x0000015E (350)
*     Revision         0x01
*     Checksum         0x9F
*     OEM ID           "shiloh"
*     OEM Table ID     "GFX1"
*     OEM Revision     0x00001000 (4096)
*     Compiler ID      "INTL"
*     Compiler Version 0x20100331 (537920305)
*/
DefinitionBlock ("iASLYSwE8x.aml", "SSDT", 1, "shiloh", "GFX1", 0x00001000)
{
    Device (_SB.PCIO.BR3A.GFX1)
    {
        Name (_ADR, Zero)
        Name (_SUN, One)
        Method (_DSM, 4, NotSerialized)
        {
            If (LEqual (Arg2, Zero))
            {
                Return (Buffer (One)
                {
                    0x03
                })
            }

            Return (Package (0x0E)
            {
                "@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
                },

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

    Device (_SB.PCIO.BR3A.HDAU)
    {
        Name (_ADR, One)
        Method (_DSM, 4, NotSerialized)
        {
            If (LEqual (Arg2, Zero))
            {
                Return (Buffer (One)
                {
                    0x03
                })
            }

            Return (Package (0x02)
            {
                "hda-gfx",
                Buffer (0x0A)
                {
                    "onboard-1"
                }
            })
        }
    }
}
 
Status
Not open for further replies.
Back
Top