Contribute
Register

[Guide] Disabling discrete graphics in dual-GPU laptops

Hi rehabman,
i am already got working high sierra via ssd disable nvidia but as that is not permanent power off discrete nvidia.
i followed this guide but not able to disable card and stuck at Ioscreenlocakstate. please guide me.

My Laptop detail
HP ZHAN 66 PRO G1 i7-8550U,
Intel UHD 620+Nvidia MX150,8GB DDR4,500GB Sata HDD+256gb NVME M.2(INTEL 6000),Audio Conexant ISST Audio ,BCM BCM94352Z Wifi(Replaced)Wireless Adapter

Problem reporting files attached.

"Problem Reporting" files are incomplete (no files in ACPI/origin).
Read FAQ, "Problem Reporting" again. Carefully. Attach all requested files/output.
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/

Also, for AutoMerge=true, you must use latest RehabMan build of Clover.
And "SortedOrder 2" is ignored by Clover.
But you do not need SortedOrder anyway, so remove "SortedOrder 2" from your plist.
 
You need to install latest RehabMan Clover, then re-extract (don't forget to delete existing files in ACPI/origin), re-patch, and name the patched SSDT same as ACPI/origin.

Your patched file will end up called SSDT-9.aml (or SSDT-9-CB-01.aml). The name SSDT-1.aml is wrong. Must be SSDT-9.aml or SSDT-9-CB-01.aml for AutoMerge=true to work.

See guide for the link to my Clover builds: https://www.tonymacx86.com/threads/guide-booting-the-os-x-installer-on-laptops-with-clover.148093/

Also, remove config.plist/ACPI/DSDT/Fixes/FixRegions. It is a mistake.
I followed as you said.Using Latest version of your clover build. Patched the SSDT-9.aml (or SSDT-9-CB-01.aml) as you said. Still having the same issue (IOConsoleUsers: gIOScreenLockState 3, hs 0, bs 0, now 0, sm 0x0).
Unable to boot without "SSDT-Discretespoof.aml"
 

Attachments

  • CLOVER.zip
    2.4 MB · Views: 110
  • SSDT-DiscreteSpoof.aml
    132 bytes · Views: 135
I followed as you said.Using Latest version of your clover build. Patched the SSDT-9.aml (or SSDT-9-CB-01.aml) as you said. Still having the same issue (IOConsoleUsers: gIOScreenLockState 3, hs 0, bs 0, now 0, sm 0x0).
Unable to boot without "SSDT-Discretespoof.aml"

Keep SSDT-DiscreteSpoof.aml in ACPI/patched along with the rest (eg. as you attached).
Then attach full "problem reporting" files (ioreg/patchmatic/etc).
 
Keep SSDT-DiscreteSpoof.aml in ACPI/patched along with the rest (eg. as you attached).
Then attach full "problem reporting" files (ioreg/patchmatic/etc).
Here it is, Sir.
 

Attachments

  • IOReg.ioreg
    3 MB · Views: 152
  • Patchmatic.zip
    110.2 KB · Views: 109
  • CLOVER.zip
    2.4 MB · Views: 97
I won't say for OS X, but when I send \_SB.PCI0.PEG0.PEGP._OFF in Linux, the dGPU is still visible PCI bus.
This is very different from the case when NVMe drive doesn't get back after resume from suspend, when it completely disappears from PCI bus.
Of course, that may be Linux simply preserving device node.
 
Here it is, Sir.

Your patchmatic output demonstrates a bug in Clover that I reported to the developer that wrote the bug. I just haven't had time to verify that the bug does, in fact, exist, and to create a fix.
To work around, set config.plist/ACPI/SSDT/Generate/PluginType=false.
Of course, you also don't need SSDT.aml with your hardware, so you could remove it and use config.plist/ACPI/SSDT/Generate/PluginType=true instead.

Fix that and see if it fixes your problem.

SSDT-9.aml is correctly being merged as expected. Which means _OFF is not working. There are some EC references in there, and you didn't patch it, but they do look protected by checks of ECON. You will need to use ACPIDebug to further debug it, assuming the PluginType=false mentioned above does not fix it.
 

Attachments

  • bdmesg.txt.zip
    10.5 KB · Views: 106
It is inside ioreg provided in post #1625.
Extracted and attached it here for your convenience.

he has hwp enable option in config
15:485 0:000 Xsdt has tables count=32
15:485 0:000 CPUBase=0 and ApicCPUBase=1 ApicCPUNum=8
15:485 0:000 Maximum control=0x1B
15:485 0:000 Turbo control=0x1F
15:485 0:000 P-States: min 0x4, max 0x1F
15:485 0:000 SSDT with plugin-type and HWP without P-States is generated

you added this line in your code
https://sourceforge.net/p/cloverefiboot/code/4275/tree/rEFIt_UEFI/Platform/Settings.c#l5829

then works this line
https://sourceforge.net/p/cloverefi...iPatcher.c?diff=504c3833fd48f873331ebd05:4274

i don't know why you added enable ssdt generate option if user enable hwp option in your code before.

i think better remove this line to avoid confusion
https://sourceforge.net/p/cloverefiboot/code/4275/tree/rEFIt_UEFI/Platform/Settings.c#l5829

now, he has to disable hwp option in his config.
 
Last edited:
he has hwp enable option in config
15:485 0:000 Xsdt has tables count=32
15:485 0:000 CPUBase=0 and ApicCPUBase=1 ApicCPUNum=8
15:485 0:000 Maximum control=0x1B
15:485 0:000 Turbo control=0x1F
15:485 0:000 P-States: min 0x4, max 0x1F
15:485 0:000 SSDT with plugin-type and HWP without P-States is generated

you added this line in your code
https://sourceforge.net/p/cloverefiboot/code/4275/tree/rEFIt_UEFI/Platform/Settings.c#l5829
https://sourceforge.net/p/cloverefi...Settings.c?diff=504c3833fd48f873331ebd05:4274

then works this line
https://sourceforge.net/p/cloverefi...iPatcher.c?diff=504c3833fd48f873331ebd05:4274

i don't know why you added enable ssdt generate option if user enable hwp option in your code before.

i think better remove this line to avoid confusion
https://sourceforge.net/p/cloverefiboot/code/4275/tree/rEFIt_UEFI/Platform/Settings.c#l5829

now, he has to disable hwp option in his config.

Good find.

OK... so maybe no bug here. I missed seeing the HWPEnable option.
The HWP option has always enabled CpuPm/PluginType inject.
In that case, we are seeing the correct behavior. Because Generate/PluginType is unspecified, but HWPEnable is specified, we should expect CpuPm/PluginType SSDT inject.
But if setting Generate/PluginType=false does not avoid the CpuPm/PluginType=1 inject, then we have another bug that should be fixed (because then you'd be able to use HWPEnable and avoid CpuPM table with Generate/PluginType=false).

Personally, I don't use HWPEnable as it is never needed.... HWP is enabled by simply using an HWP enabled SMBIOS. No Clover features needed for that.

Backward compatibility sucks.
 
Back
Top