기본적으로 DSDT 없는 커스텀맥의 구성은 주노님께서 워낙 자세하게 옆동네에서 설명해주셔서 링크로 대신 걸어둡니다.
DSDT없는 커스텀맥을 사용하고 있는 입장에서
어느정도 쉽게 설치가 되는 기종이라면 DSDT 없이 config.plist만 제대로 작업해주면 된다는 이점이 있습니다.
대신 DSDT가 없으므로 clover configurator를 이용해 ACPI옵션을 적극적으로 체크해주어야 합니다.
DSDT, SSDT의 강점 중 하나로 꼽히는 것이 바로 스피드스텝 작업과 USB패치인데요.
clover configurator에서 ACPI옵션만 잘 활용하면 DSDT, SSDT에 TDP 값을 계산하거나 USB단 _DSM패치를 할 필요도 없게 됩니다.
아, 물론 엘캐피탄에서 USB패치를 하기 위해서 별도의 kexts가 필요하지만 EFI영역에 그냥 넣어주면 해결되는 문제이므로 머리아플 필요가 없겠습니다.
따라서 clover configurator의 ACPI 옵션에 관한 문서를 첨부하는 바이니 참고해주시길 바랍니다.
* 스피드스텝을 잡고 싶으시다면 Generate P-states, Generate C-states만 체크해주시면 됩니다.
* USB 패치를 할 경우 ACPI옵션에서 FixUSB체크 후 이 글에 올려둔 kexts 2개를 /EFI/EFI/Clover/Kexts/10.11에 넣어주시면 됩니다. 시스템 영역에 패치안하셔도 됩니다.
For injecting device properties you can - apart from DeviceProperties - use a variant involving method
_DSM (Device Specific Method), which is written into the DSDT table. _DSM is widely used since OS X 10.5. It contains properties for a device and makes use of the method
DTGP, which is universal for all devices. This fix simply adds the DTGP method for later use with other fixes. It has no significance on its own.
Provide a set of corrections to DSDT to make your system "Darwin" identified as "Windows 2001" like the most ACPI system. More ACPI devices will work in this mode. Old way this bit also provide fixes: FIX_WAK_200000, DeleteUnused_400000, FIX_ACST_4000000, FIX_S3D_2000000, AddPNLF_1000000, FIX_ADP1_800000
A condition is added to method
_PTS: if the argument is
5 (shutdown), then no other actions shall be performed. Many reports confirmed this option to fix shutdown issues with ASUS boards, maybe even with other vendors. Some DSDT tables already contain such a condition and it is advised to turn the fix off in this case.
Added device MCHC to DSDT. For my board H61M this is obligatory, else KP. Old way also included AddIMEI_80000.
Add IRQ(0, 8, 11) to device HPET. Obligatory for OSX <=10.8. But I see Mavericks can work without it. Old way also included FIX_RTC_20000, FIX_TMR_40000.
Changes the DeviceID of the LPC controller to allow the loading of kext AppleLPC. This fix is necessary when the chipset is not recognised by OS X. However, the list of supported Intel and NForce chipsets is so big that the fix is rarely needed. Verify if AppleLPC is loaded and use this fix, if it is not. Moreover, the kext can unload itself even if the chipset is supported.
Removes the interrupt from device IPIC. Helpful for Power button will work.
Adds an SMBusController to the device tree, which fixes a warning about its absence in the system log. Helps to sleep/wake.
Create device GFX0 if still absent. It is needed for correct Power Management but the device is usually absent in DSDT because it is not a part of the motherboard. Added also device HDAU that is HDMI sound device on the videocard. If we set FakeID in config.plist it will be inserted here. Old way this patch will affect all video cards, included embedded Intel GFX. New way Intel will be patched separately.
10.6.1 introduces a kernel panic related to AppleIntelPIIXATA. There are two options to solve the problem: using a patched kext or patching the DSDT. Probably not needed for recent systems.
Fixes several SATA problems and removes yellow hard drive icons by masking the controller as ICH6. The method is controversial but it can fix the DVD drive and simply replacing the hard drive icons is not enough in this case. An alternative is to patch the kext AppleAHCIPort.kext, see KextsToPatch.
Add device Firewire into DSDT if absent and if the device really present. Adds the property
fwhub to the device.
Tries fixing USB the countless USB issues for USB1.0, USB2.0 and USB3.0.
Injects the property
built-in to the Ethernet card, which is necessary for correct operation. Additionally injects the card's name for a better looking System Profiler. Also made FakeID for some known substitutions.
Same as above for WiFi. Furthermore, the actual device is created and written into DSDT. A DeviceID will automatically written for known cards to enable airport functionality.
Corrects sound card properties to enable the native AppleHDA driver. The name is changed from
PinConfiguration are injected. Adding HMDI device if absent.
Setting for NewWay patching
Define that all bits will work new way.
Exclude IRQ(0) from RTC device.
Exclude IRQ(8) from TMR device. This is ancient DOS device and not needed in modern computers. Just wonder it present.
This device is used for IntelHDxxx graphics. Adding them if very desirable operation. This bit also needed for use FakeID->IMEI. Do nothing for Core 2 systems.
New way IntelGFX device will not be patched without this bit.
adding Return(Package(0)) into method _WAK if absent. This patch is for warning elimination. I don't know about working influence.
There are not used devices like Floppy drive, LPT port and others that will be good to delete from DSDT.
Rename AC0 device to ADP1 device.
Adding device PNLF is very useful: only with it you may have brightness control. This patch is also influence on good Sleep/Wake of the system.
Also resolving some Sleep/Wake problems by correcting _S3D methods.
Name ACST have different use for Apple and for ASUS. For ASUS it is AC adapter state. For Apple it is a replacement for _CST, c-states table. To not conflict it is needed to rename such names to something else.
Address of some regions in DSDT depends on many factors and may change time to time
OperationRegion (GNVS, SystemMemory, 0xDE6A4E18, 0x01CD)
The presence of floating regions make impossible to use custom DSDT because this region may be shifted and will not correspond to current state. This patch is intended to find all such regions in BIOS and correct them in custom DSDT. So now you can produce your custom DSDT with wrong regions and set this patch.
Choosing the right mask
How can you choose the necessary patches and how do you know which ones are harmless or dangerous? The computer will not be harmed either way. All the changes are stored memory only and will be removed after rebooting.
You can try setting different combinations in CloverGUI and save them by pressing
F5 in the Options menu.
To make sure the currently patched DSDT is not creating a conflict, you can change the DSDT name in the menu - DSDT name: NO.aml. This file will not be found, Clover will extract the original OEM DSDT from BIOS and apply fixes set in the DSDT mask section. In case the OS did not load successfully, your previously set (working) values will be used.
0xFFFF enables all fixes and if the OS loads successfully this way, you will know that our efforts were not for nothing. Given the descriptions above you already realised that some fixes are not needed for your system (for example WiFi), they can even make things worse.
Most systems, which are neither too old, nor too new, a mask of
0xA7D7 has been proven to produce a well working OS.
New way you may make patched DSDT once with full mask. Then correct patched DSDT manually. Then use this manually patched DSDT.aml loading but set FixRegions_10000000 The mask will be 0x90000000 = NewWay_80000000 + FixRegions_10000000