Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

trus0und

macrumors member
Original poster
Feb 7, 2021
43
10
Posting this here just for my own benefit:

1613228261278.png
 

trus0und

macrumors member
Original poster
Feb 7, 2021
43
10
Getting a hang near the end of the boot process with the current AML file I have made (attached).

IMG_0335.JPG


Originally thought this was related to the apfs_keybag error, but noticed it on normal boot too so unlikely related.
 

Attachments

  • SSDT-GPU-DISABLE.zip
    1 KB · Views: 116

trus0und

macrumors member
Original poster
Feb 7, 2021
43
10
Yes, this is the current file I have in there (attached). Also, tried the device properties way, but seems abit odd. I think the device path is right, but still doesnt get disabled.

Screen Shot 2021-02-14 at 2.44.07 am.png
 

Attachments

  • SSDT-GPU-DISABLE 2.zip
    896 bytes · Views: 99

trus0und

macrumors member
Original poster
Feb 7, 2021
43
10
I can confirm device properties are injecting mind you, as I just tried flipping my PCIE Drive for Windows to built-in and that worked just fine! :D
 

trus0und

macrumors member
Original poster
Feb 7, 2021
43
10
Finally have had another chance to jump into this, but am still having a few issues understanding why this isnt disabling. This is what I can see in Hackintool:

Screen Shot 2021-02-20 at 12.37.56 am.png


I believe the PciRoot is correct, and gfxutil does show the same thing. This is what I have added to the DeviceProperties in OpenCore:

Screen Shot 2021-02-20 at 12.36.58 am.png


This does not work, and after the reboot I can still see the additional GPU in the System Info. Also this is how it displays in the PCI Devices:

Screen Shot 2021-02-20 at 12.40.40 am.png


If anyone can point me in the right direction here I would be very grateful!
 

startergo

macrumors 601
Sep 20, 2018
4,792
2,193
Finally have had another chance to jump into this, but am still having a few issues understanding why this isnt disabling. This is what I can see in Hackintool:

View attachment 1732227

I believe the PciRoot is correct, and gfxutil does show the same thing. This is what I have added to the DeviceProperties in OpenCore:

View attachment 1732228

This does not work, and after the reboot I can still see the additional GPU in the System Info. Also this is how it displays in the PCI Devices:

View attachment 1732229

If anyone can point me in the right direction here I would be very grateful!
When you add properties you have to also delete them if they already exist.
 
  • Like
Reactions: trus0und

trus0und

macrumors member
Original poster
Feb 7, 2021
43
10
@startergo Thank you, I have attempted adding the properties like this but have found very little on whether I am doing the delete part correctly as I am finding very little in the way of info on that.

This is where I am at, but it just seems to be injecting nothing at all. I wonder if the PciRoot is incorrect?

Screen Shot 2021-02-20 at 10.17.59 am.png


Thank you again for all your help!
 

trus0und

macrumors member
Original poster
Feb 7, 2021
43
10
Made some great progress tonight! With the help of MaLd0n, we have lift off! Was even able to customise the DSDT Patch a little:

Screen Shot 2021-02-21 at 4.53.25 am.png

Sleep/Wake is working again. My drives show as internal. I have OpenCore on the internal EFI and OpenCapony is setup so I have a boot picker! Success!!!
 

startergo

macrumors 601
Sep 20, 2018
4,792
2,193
[
Made some great progress tonight! With the help of MaLd0n, we have lift off! Was even able to customise the DSDT Patch a little:

View attachment 1732836
Sleep/Wake is working again. My drives show as internal. I have OpenCore on the internal EFI and OpenCapony is setup so I have a boot picker! Success!!!
What changed?
 

trus0und

macrumors member
Original poster
Feb 7, 2021
43
10
He made a DSDT patch for me which disables the GPU only on Darwin. I can share it if you want to see how it was done. I am not really sure how he did it because he added a DGPU section and then inside that he added some injects that look alot like the SSDT injects.
 

Attachments

  • DSDT.Darwin.zip
    17.2 KB · Views: 116
  • Like
Reactions: startergo

startergo

macrumors 601
Sep 20, 2018
4,792
2,193
He made a DSDT patch for me which disables the GPU only on Darwin. I can share it if you want to see how it was done. I am not really sure how he did it because he added a DGPU section and then inside that he added some injects that look alot like the SSDT injects.
Thanks. Any changes in the config file?
 

trus0und

macrumors member
Original poster
Feb 7, 2021
43
10
There were a couple of changes. I have to load the custom DSDT, and also we enabled RebaseRegions, though I am not entirely sure if thats necessary.

I may see if I can figure out whether this can be injected with a less all around patch of the DSDT, but ultimately if it works it works so that would be for my own learning if anything!

Ive attached the config for your info :)
 

Attachments

  • config.plist.zip
    3.4 KB · Views: 102

startergo

macrumors 601
Sep 20, 2018
4,792
2,193
@startergo My apologies, been a busy couple of days! I did use that guide, and from the Windows side it appears my path is _SB_.PC03.BR3A. So in saying that, I modified the SSDT to this which I believe is correct:

Code:
/*
* Intel ACPI Component Architecture
* AML/ASL+ Disassembler version 20200925 (64-bit version)
* Copyright (c) 2000 - 2020 Intel Corporation
*
* Disassembling to symbolic ASL+ operators
*
* Disassembly of iASLMNAwTd.aml, Sun Feb 14 01:15:38 2021
*
* Original Table Header:
*     Signature        "SSDT"
*     Length           0x000000D3 (211)
*     Revision         0x02
*     Checksum         0x2B
*     OEM ID           "DRTNIA"
*     OEM Table ID     "spoof"
*     OEM Revision     0x00000000 (0)
*     Compiler ID      "INTL"
*     Compiler Version 0x20200925 (538970405)
*/
DefinitionBlock ("", "SSDT", 2, "DRTNIA", "spoof", 0x00000000)
{
    External (_SB_.PC03.BR3A.PEGP, DeviceObj)

    Method (_SB.PC03.BR3A.PEGP._DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
    {
        If ((!Arg2 || (_OSI ("Darwin") == Zero)))
        {
            Return (Buffer (One)
            {
                 0x03                                             // .
            })
        }

        Return (Package (0x0A)
        {
            "name",
            Buffer (0x09)
            {
                "#display"
            },

            "IOName",
            "#display",
            "class-code",
            Buffer (0x04)
            {
                 0xFF, 0xFF, 0xFF, 0xFF                           // ....
            },

            "vendor-id",
            Buffer (0x04)
            {
                 0xFF, 0xFF, 0x00, 0x00                           // ....
            },

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

I will double check it though as I suppose it is probably wrong :p
According to the modified DSDT, which works this SSDT should do the same without adding DSDT:

Code:
/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20200925 (64-bit version)
 * Copyright (c) 2000 - 2020 Intel Corporation
 *
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of iASLMNAwTd.aml, Sun Feb 14 01:15:38 2021
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x000000D3 (211)
 *     Revision         0x02
 *     Checksum         0x2B
 *     OEM ID           "DRTNIA"
 *     OEM Table ID     "spoof"
 *     OEM Revision     0x00000000 (0)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20200925 (538970405)
 */
DefinitionBlock ("", "SSDT", 2, "DRTNIA", "spoof", 0x00000000)
{
    External (_SB_.PC03.BR3A, DeviceObj)

    Method (_SB.PC03.BR3A._DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
    {
        If ((!Arg2 || (_OSI ("Darwin") == Zero)))
        {
            Return (Buffer (One)
            {
                 0x03                                             // .
            })
        }

        Return (Package (0x0A)
        {
            "name",
            Buffer (0x09)
            {
                "#display"
            },

            "IOName",
            "#display",
            "class-code",
            Buffer (0x04)
            {
                 0xFF, 0xFF, 0xFF, 0xFF                           // ....
            },

            "vendor-id",
            Buffer (0x04)
            {
                 0xFF, 0xFF, 0x00, 0x00                           // ....
            },

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

trus0und

macrumors member
Original poster
Feb 7, 2021
43
10
Perhaps that would work in conjunction with the RebaseRegions option ?

Before when I tried this, I got a hang somewhere along the line during boot. I'll give it another go at some stage!
 

startergo

macrumors 601
Sep 20, 2018
4,792
2,193
This is what works for me:
1613946058612.png

NVIDIA is disabled in Big Sur and in Windows both work:
1613946136137.png

1613946618382.png
 
Last edited:
  • Like
Reactions: trus0und

trus0und

macrumors member
Original poster
Feb 7, 2021
43
10
I see, and the AAPL, ndrv-dev setting disables the loading of the driver? Seems the driver that loads for me without the DSDT is IONDRVSupport I believe and that is what isn't loading with the DSDT patch.
 

startergo

macrumors 601
Sep 20, 2018
4,792
2,193
I see, and the AAPL, ndrv-dev setting disables the loading of the driver? Seems the driver that loads for me without the DSDT is IONDRVSupport I believe and that is what isn't loading with the DSDT patch.
Yes here is more of the Apple NVIDIA code:
 
  • Like
Reactions: trus0und

startergo

macrumors 601
Sep 20, 2018
4,792
2,193
I see, and the AAPL, ndrv-dev setting disables the loading of the driver? Seems the driver that loads for me without the DSDT is IONDRVSupport I believe and that is what isn't loading with the DSDT patch.
Unfortunately sleep does not work.
 

startergo

macrumors 601
Sep 20, 2018
4,792
2,193
I finally got my SSDT to disable NVIDIA card. Since my setup is not ordinary and I have an expansion board connected to the second slot a new device/s had to be created in the SSDT, because the ACPI path is missing. This is the original ioregistry hook:
Windows ACPI path:
Code:
ACPI(_SB_)#ACPI(PCI0)#ACPI(IOU1)#PCI(0000)#PCI(0400)#PCI(0000)
Apple IORegistry path:
Code:
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IOU1@7/IOPP/PXS2@0/IOPP/pci-bridge@4/IOPP/GFX1@0
And this is the modified one:
Code:
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IOU1@7/IOPP/PXS2@0/IOPP/PBR4@4/IOPP/GFX1@0
As you can see in the place of the original pci-bridge, a new device PBR4 was created:
Code:
/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20200110 (64-bit version)
 * Copyright (c) 2000 - 2020 Intel Corporation
 *
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of iASL8LfnAY.aml, Sun Mar 28 13:48:33 2021
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x000000E3 (227)
 *     Revision         0x02
 *     Checksum         0x69
 *     OEM ID           "hack"
 *     OEM Table ID     "spoof1"
 *     OEM Revision     0x00000000 (0)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20200925 (538970405)
 */
DefinitionBlock ("", "SSDT", 2, "hack", "spoof1", 0x00000000)
{
    External (_SB_.PCI0.IOU1.PXS2, DeviceObj)

    Device (_SB.PCI0.IOU1.PXS2.PBR4)
    {
        Name (_ADR, 0x00040000)  // _ADR: Address. corresponds to #PCI(0400), MSW byte reversed
        Device (GFX1)
        {
            Name (_ADR, Zero)  // _ADR: Address. corresponds to #PCI(0000)
        }
    }

    Method (_SB.PCI0.IOU1.PXS2.PBR4.GFX1._DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
    {
        If ((!Arg2 || !_OSI ("Darwin")))
        {
            Return (Buffer (One)
            {
                 0x03                                             // .
            })
        }

        Return (Package (0x06)
        {
            "name",
            Buffer (0x09)
            {
                "#display"
            },

            "IOName",
            "#display",
            "class-code",
            Buffer (0x04)
            {
                 0xFF, 0xFF, 0xFF, 0xFF                           // ....
            }
        })
    }
}

Reference for creation by CaseySJ :
https://www.tonymacx86.com/threads/...-class-code-spoof.210316/page-19#post-1430407
 
  • Like
Reactions: trus0und

DCswitch

macrumors member
Feb 25, 2019
42
10
I have a Mac Pro 7,1 running Big Sur and I want to try using OpenCore/Innie to show the external drives as internal and then see if I can install macOS to 2 NVMe blades in RAID 0. Even if I can't do that, it would be nice to have my NVMe drives show as internal.

Does someone have this configurtion handy? I'm not running an Nvidia card... just stock RX580 MPX.
 

trus0und

macrumors member
Original poster
Feb 7, 2021
43
10
I have a Mac Pro 7,1 running Big Sur and I want to try using OpenCore/Innie to show the external drives as internal and then see if I can install macOS to 2 NVMe blades in RAID 0. Even if I can't do that, it would be nice to have my NVMe drives show as internal.

Does someone have this configurtion handy? I'm not running an Nvidia card... just stock RX580 MPX.
Sorry for the delay in reply, I have taken some time away for my health. You can basically use the config provided config in this post: https://forums.macrumors.com/threads/opencore-on-the-mac-pro.2207814/ as its practically as clean as you can go for the config which is what you'd want for a legit Mac. From there, you can use Hackintool to find your PCIe Device Path for your NVMe blades, and then inside of OpenCore's config you will need to set the builtin setting to 1.
 

trus0und

macrumors member
Original poster
Feb 7, 2021
43
10
@startergo Sorry to tag you directly. I am having a hell of a time getting Windows to show up in the OC boot picker here. Do you know if a normal bootcamped Windows install should show up? If not, do you know if there is a special way I have to do this on a real Mac? I tried the steps in the OpenCore on the Mac Pro main thread, but to no avail unfortunately. Thanks in advance for any help you can provide!
 

startergo

macrumors 601
Sep 20, 2018
4,792
2,193
Sure you have to chain load opencore from refindplus. From the refindplus you can load non UEFI Windows. The easiest way is to use @Dayo MybootMGR.
 
  • Like
Reactions: trus0und

trus0und

macrumors member
Original poster
Feb 7, 2021
43
10
Sure you have to chain load opencore from refindplus. From the refindplus you can load non UEFI Windows. The easiest way is to use @Dayo MybootMGR.
I see, and if I just want to use OpenCore on its own it just has to be a UEFI install of Windows, is that right?
 
  • Like
Reactions: startergo
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.