Contribute
Register

[Guide] Using Clover to "hotpatch" ACPI

Joined
Jul 21, 2013
Messages
13
Can you update your SSDT-Disable_DGPU and SSDT-PTSWAK to make it work with more laptops with other methods such as:
+ RP01.PXSX ( found on some Acer Skylake laptops )
+ RP05.PEGP ( found on most Haswell laptops )
+ PEG1.PEGP ( found on some Sony Vaios )
I have created custom SSDTs with those methods in and it works, and I figured maybe other people needs help with it
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,088
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Can you update your SSDT-Disable_DGPU and SSDT-PTSWAK to make it work with more laptops with other methods such as:
+ RP01.PXSX ( found on some Acer Skylake laptops )
+ RP05.PEGP ( found on most Haswell laptops )
+ PEG1.PEGP ( found on some Sony Vaios )
I have created custom SSDTs with those methods in and it works, and I figured maybe other people needs help with it
The file is designed to have a few of the common ones, but otherwise should be customized.

RP01.PXSX would be a very bad idea, as there may be some other device there (the name is not specific enough).
 
Joined
Jul 21, 2013
Messages
13
Agree that RP01.PXSX is dangerous as older machine may use that device, you can always "comment" the patch so that if other people see fit, they will use it. Another thing, ACPI patching, I see that rename VID ( as VID_ ) to IGPU works pretty well with Lenovo laptops. How about adding it ? You can always disable it by default
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,088
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Agree that RP01.PXSX is dangerous as older machine may use that device, you can always "comment" the patch so that if other people see fit, they will use it.
As I mentioned before, the files are to serve as an example as to what you might want to do...
Customization almost always necessary.

Another thing, ACPI patching, I see that rename VID ( as VID_ ) to IGPU works pretty well with Lenovo laptops. How about adding it ? You can always disable it by default
Most Lenovo laptops do not use VID. But it is very common with Lenovo Thinkpad. And hotpatching will be a bit tricky because these laptops also use VID for the discrete graphics device. And renaming the discrete graphics to IGPU would be a mistake.
 
Joined
Apr 21, 2012
Messages
126
Motherboard
Lenevo Y510p IdeaPad
CPU
i7-4700MQ, HM86 (Haswell)
Graphics
Nvidia GT755M, Intel HD4600, 1920x1080
Mobile Phone
Android
Terrific guide RehabMan!

I adjusted my setup to use this new method here. It works as expected.

I see in some of your projects you used the Devices/Arbitary section in config.plist to inject IGPU, HDAU, etc properties. Is it due to "layout-id" (so that could one could change layout-id easily in config.plist instead of decompiling and re-compiling SSDT)? Or is there any other reason to not use SSDT to inject those properties? That way all the hacks could be placed into only 1 SSDT.

Also, one thing i did not attempt yet is this IAOE patch specific to my laptop. I'll try to implement it but if it didn't work i'll ask here.

Thanks for this new method! You're awesome!
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,088
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Terrific guide RehabMan!

I adjusted my setup to use this new method here. It works as expected.

I see in some of your projects you used the Devices/Arbitary section in config.plist to inject IGPU, HDAU, etc properties. Is it due to "layout-id" (so that could one could change layout-id easily in config.plist instead of decompiling and re-compiling SSDT)? Or is there any other reason to not use SSDT to inject those properties? That way all the hacks could be placed into only 1 SSDT.
You can use Devices/Arbitrary to inject properties or _DSM methods in add-on SSDTs. The result is the same. Using SSDTs leads to more flexibility as you can make the code conditional on what hardware is present (as for example, SSDT-IGPU, SSDT-SATA, SSDT-LPC, etc).

For my new projects, I keep the files separate as it is cleaner and easier to understand/modify. But, of course, once the SSDT content is determined, you can place it all in one, like with my SSDT-HACK in my u430 repo.

Also, one thing i did not attempt yet is this IAOE patch specific to my laptop. I'll try to implement it but if it didn't work i'll ask here.
I find with a correctly patched ACPI, IAOE is not an issue... IAOE problems usually result from incorrect patches that cause problems downstream.
 
Joined
Apr 21, 2012
Messages
126
Motherboard
Lenevo Y510p IdeaPad
CPU
i7-4700MQ, HM86 (Haswell)
Graphics
Nvidia GT755M, Intel HD4600, 1920x1080
Mobile Phone
Android
...For my new projects, I keep the files separate as it is cleaner and easier to understand/modify. But, of course, once the SSDT content is determined, you can place it all in one, like with my SSDT-HACK in my u430 repo....
That's exactly how I started doing it and now ended up with one all-in-one SSDT (except CPU one of course).

I find with a correctly patched ACPI, IAOE is not an issue... IAOE problems usually result from incorrect patches that cause problems downstream.
Oh. AFAIR, IAOE patch was necessary for something related to sleep. I'll do some testing to find out if that patch is still needed with this new method.
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,088
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
That's exactly how I started doing it and now ended up with one all-in-one SSDT (except CPU one of course).
Just to clarify, for future projects I intend to keep the SSDTs separate. When I authored SSDT-HACK.dsl for the u430, it was my first real laptop hotpatch. After doing a few of them, I decided to break down the components into separate SSDTs to make the code more re-usable.

Oh. AFAIR, IAOE patch was necessary for something related to sleep. I'll do some testing to find out if that patch is still needed with this new method.
Typically, you need the IAOE patch only when you've dropped too many OEM SSDTs...
 

the-braveknight

Moderator
Joined
Nov 24, 2015
Messages
1,244
Motherboard
Lenovo Legion Y520 (Clover)
CPU
i7-7700HQ
Graphics
HD 630 (1920x1080) + Nvidia GTX 1060
Mac
MacBook Air
Mobile Phone
iOS
Just to clarify, for future projects I intend to keep the SSDTs separate. When I authored SSDT-HACK.dsl for the u430, it was my first real laptop hotpatch. After doing a few of them, I decided to break down the components into separate SSDTs to make the code more re-usable.
I think I'll do that too... I'll also inject device properties with _DSM methods instead of config.plist/Devices/Arbitrary, I feel it's more 'flexible' this way as I don't want the config.plist to contain important data like device properties; users can easily damage it with Clover Configurator...
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,088
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
...
as I don't want the config.plist to contain important data like device properties; users can easily damage it with Clover Configurator...
That was my other motivation. Clover Configurator used to just remove these entries. And no matter how many times you state it (bold face, etc), people will still use Clover Configurator when you told them not to.
 
Top