After installing macOS the first thing you need to do is patching dsdt because patching dsdt eliminates so many errors. But patching dsdt is not an easy task and the guides available in the internet are so difficult to understand even I was unable to understand after 4-5 times. So I decided to write a noob friendly guide which will help the beginners which are unable to understand the tutorials and confused about what to do. This guide is not for specific problem solving but after reading this you will have a clear idea about dsdt patching and will be able to patch them according to your needs. So let gets started!
1. Extracting the AICP files.
There are 3 methods of extracting AICP files of your pc but here I have only used 1 method because it is very easy and has less chance of corruption
Extracting AICP files through this method is very simple, all you have to do is press F4 while in clover after startup. The AICP files will be available in EFI/clover/ origin/.
After you login to your hackintosh open up the terminal and type ‘diskutil mount diskXsXX’ then head over to the EFI partition you just mounted. (Note: replace all the X in diskXsXX with your EFI disk number, as you can see in the above image mine is disk0s4).
2. Preparing tools.
The AICP files that you have extracted through clover cannot be patched directly so we have to first disassemble it and then patch it. So to patch them you will IASL which can be downloaded from here.
After downloading IASL, copy and paste these command in terminal:-
sudo cp iasl /usr/bin
3. Disassembling the AICP files.
Now the time has come to dissemble the files. We will dissemble the AICP using refs.txt, it can be also done without using refs.txt but it removes some error from the disassembled AICP files. Now open Textedit and copy paste the following:-
External(MDBG, MethodObj, 1)
External(_GPE.MMTB, MethodObj, 0)
External(_SB.PCI0.LPCB.H_EC.ECWT, MethodObj, 2)
External(_SB.PCI0.LPCB.H_EC.ECRD, MethodObj, 1)
External(_SB.PCI0.LPCB.H_EC.ECMD, MethodObj, 1)
External(_SB.PCI0.PEG0.PEGP.SGPO, MethodObj, 2)
External(_SB.PCI0.GFX0.DD02._BCM, MethodObj, 1)
External(_SB.PCI0.SAT0.SDSM, MethodObj, 4)
External(_GPE.VHOV, MethodObj, 3)
External(_SB.PCI0.XHC.RHUB.TPLD, MethodObj, 2)
And save it as refs.txt then move the file to origins folder Or just copy the above code and execute the following code in terminal:-
a refs.txt file will be created in your desktop.
Now run the command in terminal:-
iasl -da -dl -fe refs.txt DSDT.aml SSDT*.aml
The DSDT and all the SSDT files will be disassembled
Head over to the folder containing AICP files and delete those SSDT files in which there is x in the end, example- SSDT-5x.dsl. These are dynamic files and we don’t need them.
4. Error fixing.
After the extracted AICP files has been dissembled the files are not error free. DSDT and some SSDTs contains some error which will cause unstability and even may prevent the OS from loading, So fixing those errors is very important and very easy.
Download patchmatic from here and open downloads folder then launch terminal and type:
cp patchmatic /usr/local/bin/patchmatic
After done download the latest version of maciASL from here and open it then head over to preferences of maciASL and add this :
to sources and name it patches. Then open your DSDT.dsl and press compile, it will give you some error see the line of error and click patch then find the suitable patch for the error. If you are unable to identify the error then comment below here.
5. Appling some common patch.
There are some patch that you should apply to your DSDT, these patches are not compulsory to apply but can be applied for better stability. However if any unusual patches are applied without needing, it may cause problems or kernel panic. The patches are:
“Fix _WAK Arg0 v2”
“HPET Fix” ”SMBUS Fix”
“IRQ Fix” ”RTC Fix”
“OS Check Fix”
“Fix Mutex with non-zero SyncLevel”.
(Note: The above patches will not resolve any specific problem of your hackintosh)
Your basic DSDT patching is now done if you face any problem comment down below.
This guide is just simplified version of this guide for better understanding.