DSDT, SSDT없는 커스텀맥을 만들기 위한 좋은 참고 링크들
- DArtagnan
- 2484
- 5
DArtagnan님의 기기정보
기본적으로 DSDT 없는 커스텀맥의 구성은 주노님께서 워낙 자세하게 옆동네에서 설명해주셔서 링크로 대신 걸어둡니다.
https://www.osx4pc.com/bbs/board.php?bo_table=tips&wr_id=42
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에 넣어주시면 됩니다. 시스템 영역에 패치안하셔도 됩니다.
FakePCIID_XHCIMux.kext.zip FakePCIID.kext.zip
AddDTGP_0001 bit(0)
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.
FixDarwin_0002 bit(1)
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
FixShutdown_0004 bit(2)
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.
AddMCHC_0008 bit(3)
Added device MCHC to DSDT. For my board H61M this is obligatory, else KP. Old way also included AddIMEI_80000.
FixHPET_0010 bit(4)
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.
FakeLPC_0020 bit(5)
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.
FixIPIC_0040 bit(6)
Removes the interrupt from device IPIC. Helpful for Power button will work.
FixSBUS_0080 bit(7)
Adds an SMBusController to the device tree, which fixes a warning about its absence in the system log. Helps to sleep/wake.
FixDisplay_0100 bit(8)
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.
FixIDE_0200 bit(9)
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.
FixSATA_0400 bit(10)
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.
FixFirewire_0800 bit(11)
Add device Firewire into DSDT if absent and if the device really present. Adds the property fwhub
to the device.
FixUSB_1000 bit(12)
Tries fixing USB the countless USB issues for USB1.0, USB2.0 and USB3.0.
FixLAN_2000 bit(13)
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.
FixAirport_4000 bit(14)
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.
FixHDA_8000 bit(15)
Corrects sound card properties to enable the native AppleHDA driver. The name is changed from AZAL
to HDEF
, layout-id
and PinConfiguration
are injected. Adding HMDI device if absent.
Setting for NewWay patching
NewWay_80000000
Define that all bits will work new way.
FIX_RTC_20000
Exclude IRQ(0) from RTC device.
FIX_TMR_40000
Exclude IRQ(8) from TMR device. This is ancient DOS device and not needed in modern computers. Just wonder it present.
AddIMEI_80000
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.
FIX_INTELGFX_100000
New way IntelGFX device will not be patched without this bit.
FIX_WAK_200000
adding Return(Package(0)) into method _WAK if absent. This patch is for warning elimination. I don't know about working influence.
DeleteUnused_400000
There are not used devices like Floppy drive, LPT port and others that will be good to delete from DSDT.
FIX_ADP1_800000
Rename AC0 device to ADP1 device.
AddPNLF_1000000
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.
FIX_S3D_2000000
Also resolving some Sleep/Wake problems by correcting _S3D methods.
FIX_ACST_4000000
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.
FixRegions_10000000
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
Reference: https://clover-wiki.zetam.org/Fixing-DSDT