Contribute
Register

Trying to disable my Nivida GTX1660ti card

Status
Not open for further replies.
Joined
Jan 10, 2021
Messages
21
Motherboard
MSI MPG Z390 GAMING PRO CARBON
CPU
i7-9700K
Graphics
UHD 630
Mobile Phone
  1. iOS
Hi guys!
Firstly I would like to thanks for all the support! You guys are really helpful!

I´m Running Catalina 10.15.7 via Intel iGPU 630 UHD (i7-9700K) with Opencore 0.6.6.
I can't seem to be able to disable my dGPU. I have to take the card out each time I want to run MacOS. This is a dual boot hack with Windows 10.

Not able to set only IGP in BIOS as this causes a boot loop. Once I take it out, it works. In Windows I can use both iGPU and dGPU with no issue.

First I tried the SSDT solution where you find the device path in device manager in Windows (in this format: \_SB.PCI0.PEG0.PEGP )

Then I tried applying the simple soltuion with the -wegnoegpu:
Screenshot 2021-02-11 at 11.22.29.png

none of these solutions worked on my system.
I have two screens. One connected to iGPU and other to the dGPU.
Once I boot, it starts on the screen connected to dGPU. After selecting MacOS from the boot picker the apple logo pears and loads approx 50%. Now the other screen comes alive (iGPU) and continues to boot into Catalina. I log in and after 2-3 sec the system crashes.
I have to remove the dGPU to get into a stable MacOS environment.
What am I doing wrong?

*Is it a specific order for the -wegnoegpu boot arguments?
*Is something wrong in my SSDT-GPU-Disable.aml? Should I change other things than just the "External" and "Method" with my device path?

Thanks for any help!
 

Attachments

  • SSDT-GPU-DISABLE.aml
    211 bytes · Views: 69
  • config.plist
    22.7 KB · Views: 46
SSDT:
Is your Nvidia card's ACPI address (_SB_.PCI0.PEG1.PEGP) or (_SB_.PCI0.PEG0.PEGP).
  • The SSDT you attached is looking for your Nvidia card in the first address.
  • Your post says the address was the second one.
  • Which is correct?
Config.plist:
Your config.plist's DeviceProperties framebuffer is correct for using just the IGPU, but you have a whole host of unnecessary other entries that you could and probably should remove, i.e. all the framebuffer-con entries should be deleted.

Screenshot 2021-02-12 at 20.30.40.png

Leaving just the AAPL,ig-platform-id and framebuffer-patch-enable entries in place.

Screenshot 2021-02-12 at 20.38.57.png

Boot Argument:
The -wegnoegpu boot argument should work, no idea why it hasn't. There is no specific order required for the boot arguments.

I assume when you were using the SSDT to disable the discrete GPU that you had an entry in your config.plist for the SSDT, in the ACPI section and that you removed it when you tried using the -wegnoegpu boot argument.

Generic SSDT's:
The SSDT's you are injecting via OpenCore look fairly generic.
  • Are they all downloads from the Dortania OC guide?
  • Are you sure your 300-series motherboard's DSDT.aml contains an AWAC device?
You might want to have a look at generating some custom SSDT's using Corpnewt's SSDTTime script.

It generates the SSDT's and associated config.plist patches from your DSDT.aml. So they should work better with your system than these generic SSDT's.

They should also load faster as they only contain the data required for your system. The generic SSDT's contain the data for a large number of systems, which means they are slower to load.

Corpnewt's SSDTTime terminal command can be found here - https://github.com/corpnewt/SSDTTime. Select the green 'CODE' button and download the folder.

Revised config.plist:
A copy of the config.plist with the DeviceProperties changes shown above is attached.

I have also taken the liberty of removing some unnecessary placeholder entries from the config.
 

Attachments

  • config.plist.zip
    4.4 KB · Views: 51
Hi and thanks for the reply Edhawk!

I tried to remove the other framebuffer things, but then the screen went black during loading. I think i probably got remove some of the connections mentioned, but the one Im using needs to be set to HDMI.

The correct address for my Nvidia is: (_SB_.PCI0.PEG1.PEGP)
It was just a typo on my behalf. However, I cant seem to find PCI0.PEG1.PEGP i in the beginning of the system DSDT file. Should it be there? I do find PCI0.PEG1 with and PEGP... (See attached screenshots)

When I applied the two different solutions (-wegnoegpu and SSDT), I tried them separately and updating config.plist each time. I use ProperTree and run snapshot co capture those changes.

According to the Dortania guide for coffee lake, Z390 should have SSDT-AWAC. Its mentioned in my system DSDT file. The SSDT`s should be from the Dortania guide. When it comes to generic data in the SSDT`s, I don`t really have an issue with loading time. It loads in less than 30s(is this slow?). Maybe I should have higher standards :) Could it affect other operations post loading of the system?

When I run the GFXUTIL on the "Mac", I get the output as shown in the attachment. Obviously without Nvidia card, but could I determine the address and then used it like the Device Properties method?

Thanks!
 

Attachments

  • GFXUTIL.png
    GFXUTIL.png
    89.3 KB · Views: 61
  • System DSDT.png
    System DSDT.png
    694.5 KB · Views: 65
  • DSTS AWAC.png
    DSTS AWAC.png
    591.2 KB · Views: 64
  • GFXUTIL.png
    GFXUTIL.png
    89.3 KB · Views: 50
  • DSTS AWAC.png
    DSTS AWAC.png
    591.2 KB · Views: 57
  • System DSDT.png
    System DSDT.png
    694.5 KB · Views: 54
  • DSDT PEGP.png
    DSDT PEGP.png
    458.9 KB · Views: 84
Those screenshots don’t show that your DSDT actually contains an AWAC device.

Nor do they show the correct address for the discrete GPU.

The sections you highlighted show External device addresses, i.e. not contained within the DSDT.

Post a copy of your DSDT.aml and I will see and show you if it contains an AWAC device, and the correct address for the Nvidia card.

Using generic tables is never best for the system. Custom tables will always work better, as they are created for a specific system.

The Dortania OC guides are great, but don’t make the mistake of thinking the are never wrong or won’t give you incorrect information. They are trying to cover so many system variations it stands to reason that not everything they say applies to every system.
 
I attached the DSDT file

...also added the PCI information from hackingtool
 

Attachments

  • DSDT.aml
    259.4 KB · Views: 38
  • PCI info.png
    PCI info.png
    388.1 KB · Views: 59
Last edited:
This screenshot shows the AWAC device in your DSDT.aml.

Screenshot 2021-02-13 at 17.08.14.png AWAC device in DSDT.aml

I have used your DSDT.aml to generate the custom SSDT's and config.plist patches, using the latest version of Corpnewt's SSDTTime python script. These SSDT's and config.plist patches are in the Results folder attached.

Screenshot 2021-02-13 at 17.10.57.png List of options available in Corpnewt's SSDTTime

I use the script to create these SSDT's:
  • SSDT-AWAC.aml
  • SSDT-EC.aml
  • SSDT-HPET.aml
  • SSDT-PLUG.aml
  • SSDT-PMC.aml
  • SSDT-USB-Reset.aml
Here is a screenshot of the patches_OC.plist, which were generated alongside the SSDT's.

Screenshot 2021-02-13 at 17.19.31.png OpenCore patches generated from your DSDT.aml

You don't have to use them. You can continue with the generic SSDT's and without the patches.
 

Attachments

  • Results.zip
    7.2 KB · Views: 35
Obviously the above SSDT's will have no effect on your Nvidia card.

For that I need to see the IOReg from your system, with the Nvidia Card connected, so I can see the full ACPI address for the card.

Alternatively; You may need to boot in to Windows to obtain the ACPI address, using Device Manager as explained in this OC ACPI guide - https://dortania.github.io/Getting-Started-With-ACPI/Universal/spoof.html - look at the section named 'Finding the ACPI Path of the GPU' for Windows.

Don't worry about the purpose of the guide, just use the steps it shows to obtain the ACPI path/address for the GTX1660 Ti dGPU from Windows.

Post a screen Snip from windows here, so I can see the address as shown in Device Manager.
 
Thanks!
Appreciate the work!
Will try the
Here's the patch from device manager:
1613249600389.png
1613249678307.png
 
Well that ACPI address matches the address in the SSDT-GPU-Disable.aml you posted above. So the SSDT should work and disable the Nvidia card in macOS.

I have added the address above to the SSDT-DDGPU-v2.aml I have attached below.

Try using this SSDT in place of your current one. See if it makes any difference.
 

Attachments

  • SSDT-DDGPU-v2.aml.zip
    815 bytes · Views: 50
I tried first with the SSDT-DDGPU-v2.aml, but it didn´t work. It loads firstly with the dGPU output, then once Apple progress bar reaches 50% it switches over to the iGPU. I then log into MacOS. Seconds after logging in the system reboots. I have attached a crash report.

I then removed SSDT-DDGPU-v2.aml and used the files you made yesterday including the two patches in config.plist. It boots fine. Booted with SSDTs as shown in the screenshot. I´m a little unsure if I still need my old SSDT-USB-Reset & SSDT-EC-USBX?

I have two other patches under ACPI in config-plist from before. I will probably delete these since they have been disabled all the time. Do I need those?
 

Attachments

  • Current SSDTs.png
    Current SSDTs.png
    57.4 KB · Views: 42
  • config plist old patches.png
    config plist old patches.png
    152.8 KB · Views: 34
  • config.plist
    24.4 KB · Views: 43
  • crash_report_disale_GPU_SSDT.pdf
    28.6 KB · Views: 65
Status
Not open for further replies.
Back
Top