5.7 KiB
ACPI Patching:
- Download and install MaciASL if you do not have it already.
- Dump your original ACPI tables. There are a number of ways to do this, using Clover, Hackintool, Linux.
- In Terminal, disassemble the copied ACPI tables with "iasl-stable -dl DSDT.aml". For our purpose, the only file that really matters is DSDT.dsl
- Your DSDT file will be used as a reference table in determining that needs to be patched and what patches need to be added.
- Source SSDT*.dsl patch files are located in
patches
folder. - Refer to my
EFI-OpenCore
folder to see which patches are currently being used by me. - Refer to
PATCHES.md
for hotpatching documentation, most of my compiled hotpatches and can be copied straight to your setup. However, some patches may require certain directories or variables to be changed depending on your hardware (examine your own disasemebled DSDT). For these, edit the .dsl patch files. Also, note that some SSDT patches also require accompanying OpenCore/ Clover ACPI patches to work.
A good way to see if you need to edit and compile your own SSDT patches is to compare your DSDT.dsl with mine of the same BIOS version. You can find my disasemebled DSDT file in ACPI/Disassembled ACPI/BIOS-v*
.
- Once you have the compiled ACPI patches, place them in
EFI/OC/ACPI/
and make sure to create matching entries withinOpenCore.plist
'sACPI/Add/
section.
Hotpatching Notes
- Source ACPI patches are
.dsl
Edit these as needed. - Compiled ACPI patches are
.aml
Once compiled, these belong toEFI/OC/ACPI
. - OpenCore Patches are patches for
config.plist
in their respective level.
Some patches here may be unused. Refer to the current OpenCore-EFI folder to see which one I am currently using. While other patches may be needed case-by-case, such as the WiFi/Bluetooth patches.
Some Thinkpad machines are LPC
and some are LPCB
. Please examine your own DSDT and modify patches as needed.
Non-native WiFi and Bluetooth
OpenCore Patches/ Config-DW1560.plist
for DW1560 model cards.
OpenCore Patches/ Config-DW1820A.plist
for WD1820A model cards.
*Notice that these patches require additional kexts to be installed. See them in Kernel/Add/
SSDT-OCBAT0-TP_tx80_x1c6th - Enabling Battery Status in macOS
Need OpenCore Patches/ TP Battery Basic Rename.plist
Need OpenCore Patches/ TP battery Mutex is set to 0 and renamed.plist
- Single battery system: only
BAT0
in ACPI, noBAT1
.
SSDT-PLUG-_PR.PR00 - Enablaing Native Intel Power Managements
Why?: Processor
search in DSDT, rename PR
to other variables as needed.
Scope (\_PR)
{
Processor (PR00, 0x01, 0x00001810, 0x06){}
Processor (PR01, 0x02, 0x00001810, 0x06){}
Processor (PR02, 0x03, 0x00001810, 0x06){}
Processor (PR03, 0x04, 0x00001810, 0x06){}
Processor (PR04, 0x05, 0x00001810, 0x06){}
Processor (PR05, 0x06, 0x00001810, 0x06){}
Processor (PR06, 0x07, 0x00001810, 0x06){}
Processor (PR07, 0x08, 0x00001810, 0x06){}
Processor (PR08, 0x09, 0x00001810, 0x06){}
Processor (PR09, 0x0A, 0x00001810, 0x06){}
Processor (PR10, 0x0B, 0x00001810, 0x06){}
Processor (PR11, 0x0C, 0x00001810, 0x06){}
Processor (PR12, 0x0D, 0x00001810, 0x06){}
Processor (PR13, 0x0E, 0x00001810, 0x06){}
Processor (PR14, 0x0F, 0x00001810, 0x06){}
Processor (PR15, 0x10, 0x00001810, 0x06){}
}
SSDT-PNLF-SKL_KBL - Enabling Brightness Mangement in macOS
Why?: Skylake/ KabyLake/ KabyLake-R
CPU.
Used in conjuction with WhateverGreen.kext
SSDT-HPET_RTC_TIMR-fix
- This patch cannot be used with the following patches:
- SSDT-RTC_Y-AWAC_N of the "Preset Variable Method"
- OC official SSDT-AWAC
- "Counterfeit Device" or OC official SSDT-RTC0
- SSDT-RTC0-NoFlags for CMOS Reset Patch
SSDT-Keyboard - Remapping Fn and PrtSc Keys
Keyboard path is \ _SB.PCI0.LPCB.KBD
.
- Remap 1:
- Remap 2:
- Remap 3:
- Remap 4: F8 (Network) to F18
- Remap 5: F9 (Settings) to F19
- Remap 6: F10 (Bluetooth) to F20
- Remap 7: F11 (Keyboard) to F17
- Remap 8:
- Remap 9:
- Remap 10: PrtSc to F13
SSDT-PTSWAK
SSDT-EXT3-LedReset-TP
SSDT-EXT4-WakeScreen
Need OpenCore Patches/ Comprehensive Patch Changed Its Name To.plist
Look up _PTS
and _WAK
and only apply the corresponding patches:
_PTS
is NotSerialized
in my DSDT
_WAK
is Serialized
in my DSDT
-
SSDT-PTSWAK —— Comprehensive Patch。
-
SSDT-EXT3-LedReset-TP —
EXT3
extension patch. Solve the problem that the breathing light does not return to normal after the TP machine wakes up。 -
SSDT-EXT4-WakeScreen —
EXT4
extension patch. Solve the problem that some machines need to press any key to light up the screen after waking up. When using, you should inquire whether thePNP0C0D
device name and path already exist in the patch file, such as_SB.PCI0.LPCB.LID0
. If not, add it yourself.
SSDT-SBUS
Why?: 0x001F0004
under Device (SBUS).
SSDT-DMAC
Why?: PNP0200
is missing in DSDT.
SSDT-MCHC
Why?: MCHC
is missing in DSDT.
SSDT-PMCR
Why?: PMCR
, APP9876
missing in DSDT.
SSDT-PWRB
Why?: PNP0C0C
missing in DSDT.
SSDT-ALS0
Why?: ACPI0008
missing in DSDT.
SSDT-GPRW
Why?: Fix instant wake by hooking GPRW (0D/6D Patch)
Special thanks to [daliansky](https://github.com/daliansky) and [jsassu20](https://github.com/jsassu20) for their work.