Contribute
Register

DSDT/SSDT Patching

Status
Not open for further replies.
Joined
Apr 1, 2017
Messages
47
CPU
Intel Core i7-6700
Graphics
NVIDIA GTX 960m
I currently have a Lenovo y700 laptop with a 6th gen i7 processor.

I have been solving different post-installation problems and apparently I'm only left with the ones that require the DSDT/SSDT patching process.

I'll soon post more info and more in-depth questions, but I just want to start with the more general ones.


Based from RehabMan's post: https://www.tonymacx86.com/threads/guide-patching-laptop-dsdt-ssdts.152573

  1. How can I know what specific patches should I apply to what specific files? As an example, how can I know the "OS Check Fix" patch goes only to DSDT instead of SSDT-1 or SSDT-4, or all of them?
  2. I assume the easiest way to patch are the "Common Patches" section from the post. I also assume these patching would only require to select the option in MaciASL from the "Lenovo y700" folder option. Are both assumptions correct?
  3. From the "Problem Specific Patching" section from the post, I can see direct editing most be done in the dsl file. I also see that I would have to add extra lines like "into method label B1B2 remove_entry;" (from battery status thread). My question is, where should I add that? (at beginning or end of the file?).
  4. From the above points, would it be right to say that point 2 is "basic patching" and point 3 "advanced patching" to define a way of differentiation?

Thanks in advance.
 
I currently have a Lenovo y700 laptop with a 6th gen i7 processor.

I have been solving different post-installation problems and apparently I'm only left with the ones that require the DSDT/SSDT patching process.

I'll soon post more info and more in-depth questions, but I just want to start with the more general ones.


Based from RehabMan's post: https://www.tonymacx86.com/threads/guide-patching-laptop-dsdt-ssdts.152573

  1. How can I know what specific patches should I apply to what specific files? As an example, how can I know the "OS Check Fix" patch goes only to DSDT instead of SSDT-1 or SSDT-4, or all of them?
  2. I assume the easiest way to patch are the "Common Patches" section from the post. I also assume these patching would only require to select the option in MaciASL from the "Lenovo y700" folder option. Are both assumptions correct?
  3. From the "Problem Specific Patching" section from the post, I can see direct editing most be done in the dsl file. I also see that I would have to add extra lines like "into method label B1B2 remove_entry;" (from battery status thread). My question is, where should I add that? (at beginning or end of the file?).
  4. From the above points, would it be right to say that point 2 is "basic patching" and point 3 "advanced patching" to define a way of differentiation?

Thanks in advance.

Most patches only to DSDT.
Renames can be done in config.plist as provided in the default "guide" plist files...
Apply "common patches" as deemed necessary.
I don't understand your question #3. Instructions such as "into method label B1B2 remove_entry;" are for MaciASL->Patch.
Question #4 is nonsense too.
 
Most patches only to DSDT.
Renames can be done in config.plist as provided in the default "guide" plist files...
Apply "common patches" as deemed necessary.
I don't understand your question #3. Instructions such as "into method label B1B2 remove_entry;" are for MaciASL->Patch.
Question #4 is nonsense too.

Here is more info from my earlier points:

  1. So, as I see, only the "Problem Specific Patching" section + the GFX0 to IGPU requires SSDT patching. The "Common Patches" section would be only for DSDT. Is that right?
  2. As an example, the attached image is patching the rename of GFX0 to IGPU to DSDT. I would only need to click "Apply" and I would have successfully applied that patch ("common patch").
  3. The line I'm referring is from this post of yours. From what I get is that I have to directly edit the file in MaciASL instead of the simpler patch from the point above (clicking buttons). My question is, does it matter where do I include that line in the file? Is it recommended to put it at the beginning of it or at the end of it?
  4. This is additional, so I want to be certain of the other ones before I explain this one.

RehabMan, thank you for your excellent help.
 

Attachments

  • GFX0_to_IGPU.png
    GFX0_to_IGPU.png
    473.9 KB · Views: 715
Here is more info from my earlier points:
So, as I see, only the "Problem Specific Patching" section + the GFX0 to IGPU requires SSDT patching. The "Common Patches" section would be only for DSDT. Is that right?

No. GFX0->IGPU patch is already in the guide's plist.

The line I'm referring is from this post of yours.

Long post. No idea what you're referring to.
You might find an existing battery patch already in the repo that matches your DSDT (for battery status).
 
Hi RehabMan.

I've been learning more this week and I've got good news. I'll explain as per the four previous points on post #1. Got 2 questions and 2 explanations.

  1. OK, so always only apply patch to DSDT unless stated in a guide (or being sure it is good) to do it to a SSDT, right?
  2. About applying "Common Patches", MaciASL does not give any feedback and selecting the same patch again it tells me the same fixes will be applied. Is this behavior normal?
  3. I finally understood where these kind of lines belong "into method label B1B2 remove_entry;". Initially I believed they were added to DSDT directly in some part of the DSL file. I have learned now they are just independent TXT files that are loaded into MaciASL via local patch (instead than from the web).
  4. Now I can be more clear about my definitions. Based on the way a patch is applied, I made some definitions myself. If the patch was up in a repository, like your github DSDT Laptop project, it only involves clicking buttons within MaciASL, as such I called it "basic patching". If the patch had to be made locally as you suggest in some guides, then it involves copy-pasting (or even writing) instructions in a TXT file and then open MaciASL and apply the patch, that I called "advanced patching". I used that as a way of differentiation between the ways to patch. I find it useful, wonder if you do.

I'll try making the patches now. Meanwhile it would be great if you can answer points 1 and 2, and give me your thoughts about the 4th.

As always, your help is really appreciated.
 
Hi RehabMan.

I've been learning more this week and I've got good news. I'll explain as per the four previous points on post #1. Got 2 questions and 2 explanations.

  1. OK, so always only apply patch to DSDT unless stated in a guide (or being sure it is good) to do it to a SSDT, right?
  2. About applying "Common Patches", MaciASL does not give any feedback and selecting the same patch again it tells me the same fixes will be applied. Is this behavior normal?
  3. I finally understood where these kind of lines belong "into method label B1B2 remove_entry;". Initially I believed they were added to DSDT directly in some part of the DSL file. I have learned now they are just independent TXT files that are loaded into MaciASL via local patch (instead than from the web).
  4. Now I can be more clear about my definitions. Based on the way a patch is applied, I made some definitions myself. If the patch was up in a repository, like your github DSDT Laptop project, it only involves clicking buttons within MaciASL, as such I called it "basic patching". If the patch had to be made locally as you suggest in some guides, then it involves copy-pasting (or even writing) instructions in a TXT file and then open MaciASL and apply the patch, that I called "advanced patching". I used that as a way of differentiation between the ways to patch. I find it useful, wonder if you do.

I'll try making the patches now. Meanwhile it would be great if you can answer points 1 and 2, and give me your thoughts about the 4th.

As always, your help is really appreciated.

1. Depends on content of your ACPI files and the patch/fix you're trying to implement.
2. Many patches are designed to be re-applied (removing old code, applying new)
3. yes
4. yes (keep in mind both are the same... patches that come from the repo just automatically fill in the Patch window.
 
1. Depends on content of your ACPI files and the patch/fix you're trying to implement.
2. Many patches are designed to be re-applied (removing old code, applying new)
3. yes
4. yes (keep in mind both are the same... patches that come from the repo just automatically fill in the Patch window.

Great to know I am on the right track. Those 4 points have been resolved. Thank you RehabMan's.

I have been able to make several patches (basic and advanced) and it seems I almost have my complete working system. That said, I still have a couple of small issues and a big one.

  1. Disabling discrete graphics: Applied the patch, but wonder how can I know for sure it is working. Other patches give me some kind of feedback that they are working. What can I do to know it is working?
  2. Brightness control: Works, most of it. Still have two issues
    1. The brightness level is not kept between restarts. Already installed an updated version of Clover with RC Scripts and EmuVariableUefi-64.efi options selected. EmuVariableUefi-64.efi is in drivers64UEFI.
    2. Used System Settings to make a keyboard shortcut for controlling the brightness. On Windows I use "fn" + up and down arrow keys. On Mac, System Settings, It worked with "ctrl" + up & down, but does not recognize the "fn" key. As side note, it recognized the "shift" key but didn't worked when I tried. I'm mainly interested in the "fn" key.
  3. Sound: AppleHDA patched worked nice. Still have the problem with no sound after sleep. I applied the CodecCommander kext but did not worked. My sound card is ALC233.
  4. The big problem is that when I shutdown the machine, it fails. Screen goes black but fans still work. I have to force-shutdown the laptop. Restart option seems to work nice. I applied the "shutdown fix v2" patch on DSDT, but did not worked.

As always, thank you RehabMan.
 
Great to know I am on the right track. Those 4 points have been resolved. Thank you RehabMan's.

I have been able to make several patches (basic and advanced) and it seems I almost have my complete working system. That said, I still have a couple of small issues and a big one.

  1. Disabling discrete graphics: Applied the patch, but wonder how can I know for sure it is working. Other patches give me some kind of feedback that they are working. What can I do to know it is working?
  2. Brightness control: Works, most of it. Still have two issues
    1. The brightness level is not kept between restarts. Already installed an updated version of Clover with RC Scripts and EmuVariableUefi-64.efi options selected. EmuVariableUefi-64.efi is in drivers64UEFI.
    2. Used System Settings to make a keyboard shortcut for controlling the brightness. On Windows I use "fn" + up and down arrow keys. On Mac, System Settings, It worked with "ctrl" + up & down, but does not recognize the "fn" key. As side note, it recognized the "shift" key but didn't worked when I tried. I'm mainly interested in the "fn" key.
  3. Sound: AppleHDA patched worked nice. Still have the problem with no sound after sleep. I applied the CodecCommander kext but did not worked. My sound card is ALC233.
  4. The big problem is that when I shutdown the machine, it fails. Screen goes black but fans still work. I have to force-shutdown the laptop. Restart option seems to work nice. I applied the "shutdown fix v2" patch on DSDT, but did not worked.

As always, thank you RehabMan.

Read FAQ, "Problem Reporting"
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/
 

Hi RehabMan

Here are the files. Attached is:
  • terminal.txt: kexstat commands and results from terminal
  • ioreg: ioreg file
  • patchmatic: DSDT and SSDT files got from the program
  • DSDT/SSDT patching: orignial and patched DSDT and SSDT files got from Linux extraction (original) and placed in /EFI/Clover/ACPI/patched (patched)
  • Clover: /EFI/Clover folder without "themes" folder.

PS: By the way, I deleted CodecCommander since it did not worked. As its a minor problem, this one can wait.

Thanks again.
 

Attachments

  • problemReporting.zip
    2 MB · Views: 137
Hi RehabMan

Here are the files. Attached is:
  • terminal.txt: kexstat commands and results from terminal
  • ioreg: ioreg file
  • patchmatic: DSDT and SSDT files got from the program
  • DSDT/SSDT patching: orignial and patched DSDT and SSDT files got from Linux extraction (original) and placed in /EFI/Clover/ACPI/patched (patched)
  • Clover: /EFI/Clover folder without "themes" folder.

PS: By the way, I deleted CodecCommander since it did not worked. As its a minor problem, this one can wait.

Thanks again.

The ioreg shows Nvidia not disabled.
See guide: https://www.tonymacx86.com/threads/guide-disabling-discrete-graphics-in-dual-gpu-laptops.163772/

Since you're using EmuVariableUefi-64.efi, don't forget to install RC scripts.
Also, you may need the Fake ALS and newer FakeSMC as per guide:
https://www.tonymacx86.com/threads/...rol-using-applebacklightinjector-kext.218222/

Your ioreg shows CodecCommander is not installed. Confirmed in kextcache output.

You forgot SATA-100-series-unsupported.kext. And USB not implemented correctly (see guide for custom SSDT/UsbInjectAll.kext in FAQ).
 
Status
Not open for further replies.
Back
Top