Contribute
Register

[Guide] Using Clover to "hotpatch" ACPI

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
 
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).
 
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
 
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.
 
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!
 
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.
 
...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.
 
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...
 
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...
 
...
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.
 
Back
Top