The following guide will show how to create a SSDT for Power Management under Mac OS X only. A SSDT is a Secondary System Description Table. The tables allow description of system hardware in a platform-independent manner, and are presented as either fixed-formatted data structures or in AML. The main AML table is the DSDT (differentiated system description table)(Wiki). That said a SSDT can be used for more than just Power Management.

Index:

Accreditation
Section 1A: SSDT Script Legacy Method
Section 1B: SSDT Script Current Method
Section 1C: Clover Bootloader
Section 2: Intel Power Gadget Installation
Section 3: Verification

Accreditation:

Andrew Kern – Publisher
Nick Smith – Editor
RevoGirl’s post found here.
Pike’s post found here.
Intel Power Gadget for Mac found here.

1 2 3 4 5 6

68 Comments on "SSDT Creation"

  1. Hi Andrew,

    I read this guide and you say to put:
    CStates

    PStates

    which are already in your config.plist (Haswell.dmg Step 1)

    I followed blind your flawless guides but I’m very new to this, would you explain a little about C/PStates different settings, checked vs unchecked trying archive same goal?

    Thanks again!

    Sebas

    Reply
  2. Hi Andrew,

    at step 8 your settings are

    CStates

    PStates

    wich are already in your config.plist (Haswell.dmg Step 1)

    In Step 5.1 he recommends to deselect CStates and PStates and in 5.3 he shows a pict with both checkboxes unchecked (false state).

    I don’t understand, noob here, why different setting in both guides trying to achieve the same goal.

    Thanks for your patience and for your help!

    Sebas

    PS: Haswell 4790K now showing 3.99 Ghz at About this Mac (Yosemite Clover), before 4.4 Ghz (Mavericks MultiBeast)

    Reply
  3. Andrew,

    Cannot install Intel Power Gadget because I have 5960x. Is there another way to check my CPU frequency?

    Reply
  4. Just checking. I want native SpeedStep on my Core 2 Duo E8300 (2.83GHz). I have two power states, 2.0GHz and 2.83GHz with DSDT and NullCPUPowerManagement.kext.

    I would like to use ssdtPRGen.sh to create a custom one, but I am unaware of the multiplier and other flags to supply. I believe I get 8.5x for 2.83GHz and 6.0 for 2.00GHz.

    It is a 65 Watt TPM CPU.

    Any help gratefully accepted. Many thanks in advance.

    Reply
  5. Cheers, I discovered I only needed GenerateCStates and GeneratePStates. I am falling short of the top turbo value (2933MHz), but I have had both cores at 2660, which is more than stock, and also throttles back to 1200MHz which is way less (and cooler) than the previous 2000MHz.

    Reply
  6. Sorry, I was referring to my laptop project, which is showing promise.

    http://ark.intel.com/products/47341/Intel-Core-i5-520M-Processor-3M-Cache-2_40-GHz

    Max Turbo Frequency 2.933 GHz

    It gets confusing working on more than 2 projects at once…

    Reply
  7. My Bad!

    I have 3 concurrently running Hackintosh projects (one laptop, two desktops), and it can get a little confusing. Thanks for the great site…

    Reply
  8. I have a Core i7 940XM, Which one should I use? Legacy or current?

    Thank You!

    Reply
  9. Hi Andrew,

    I’m confused. Should my CPU go less than my CPU’s base frequency(i5-4590) with Speedstep?

    Reply
  10. Hi Andrew,

    So what are possible steps to do to make lower states working?

    Specs are:
    Asus H97i-plus
    Intel i5-4590

    Yosemite 10.10.3 installed 100% following your guide.
    If lower states aren’t working then somehow it defeats the purpose of building a mini-itx computer.

    Thanks.

    Reply
  11. Hello. Just finished installing Yosemite. Yay! Thanks for these awesome site. I have the same CPU with Tito, i5-4590. What should I use, Legacy or Current? Thanks.

    Reply
  12. But where should I copy it? To the EFI/Clover/ACPI/patched? Should I ignore the script asking me to copy it to /Extra/?

    Thanks.

    Reply
  13. Two questions:

    a) I am preparing a complete – and first – installation of Clover with your guide. Checking all the files that I need, I’ve founded in the step 3, selecting my motherboard – z87x-ud5h – and a file for AMD card called ssdt.aml

    In this guide for PM I see the same name . I am getting confuse if both files can be used in the same place (SSDT for amd and SSDT for PM).

    b) I want to overclock my haswell 4770k. Should I modified the value in the script, I mean, add the value that I overclocks in my bios – @4300 ?

    Wish me luck 😉

    Reply
    • You do not need a SSDT for PM for your CPU.

      The SSDT on the DMG as nothing to do with Power management. If you read the last line of the introduction on this page you will see that. 🙂

      Reply
  14. I’ve built a hackintosh (Intel dx79sr, i7-3930k, 16gb RAM) running 10.10.4 using Chameleon. I just cannot get speedstep to work. I’ve try making my own SSDT without any luck. All my CPU cores are stuck at 3200MHz. Do I need to use a DSDT also? Any help would be appreciated, thank you.

    Reply
  15. i’m planning to get Xeon X5672 and I wonder if i can generate SSDT with this method

    Reply
  16. Hi,

    do I need ssdt for 4670k? I saw that on up that on i7 it doesn’t needed.

    Thanks!

    Reply
    • Nope. Just the files provided on the Haswell DMG.

      Reply
      • I’m beginer with hackintosh, so just to ask few more questions. I have Z87x-ud3h and GTX760. Igp is disabled. GTX760 works oob with GraphicsEnabler=No. I use Chameleon. I placed DropSSDT and removed generate pstates and cstates I saw in some tutorial. Is it OK?
        I made dsdt with MaciASL to have HDMI with gtx760, it say gtx 680 but it works 🙂
        I thought ssdt is for processor, dsdt for motherboard?! I missed something. I downloaded haswell but for what is ssdt file there, do I need it, for integrated gpu or ?

        Thanks in advance…

        Reply
        • This is what you should do and really need to do.

          Install using the install Method provided here on Rampage Dev.

          Then apply the Haswell DMG for post install.

          Last report any issues if any. Do not edit the DSDT or try to waste your time with another method because it can and will create issues. Save some time by doing it properly. 🙂

          If you have any question let us know.

  17. OK, thanks. I placed ssdt file in Extra folder and for now everything works OK. Even HDMI audio is recognized for which I created DSDT.
    I will try from start this days and let you know if there any issuses. Just to make sure to start fresh installation with Clover or to stay with Chameleon. As I see Clover is very complex…

    Reply
    • Hi Andrew…

      Finally I install Yosemite 10.10.4 using Clover. My board is above Z87X-UD3h. Have a few questions just for post install to make it everything right.

      I use iMac 14.2 smbios.
      In console I searched for XCPM and I have XCPM mode and IOPFF: XCPM.

      As you told I don’t use ssdt for cpu power managment only yours to get hdmi through nvidia card.

      1. In Clover ACPI I deselect C6 because I don’t have Haswell PSU or it is mistake?
      2. I had random restart and I checked AppleRTC, Asus AICPUPM and KernelPM.
      Is it OK or ?

      Is there anything I should know to configure properly OS X. Sleep, shutdown, usb is working.

      Thanks again !!!

      Reply
      • 1. Not a big deal.
        2. You cant have panics with what you listed if you are using SMBIOS 14,2. So you did more then you are telling me… As the kext listed are not used as the PM is in the kernel so please tell me the truth. 😉

        Nothing to do in regards to for the settings asked.

        Reply
        • Andrew,

          I had only restart than. For now os x is very stable and everythings works great thanks to you. I put your SSDT Nvidia in Clover patched and everything recognized great.

          Only settings I made in Clover Configurator is:
          XMP Detection=1
          Inject audio from Toleda script

          I turned on AppleRTC, ASUS Aicpupm, KernelPM.

          Without KernelPM in Intel Power Gadget frequencies are too high, not going below 2.8 or 3ghz.

          That’s all I did it. Nothing more…

          I didn’t try to check OS X without AppleRTC and Asus Aicpupm, but KernelPM must be turned on.

          Is that all OK?

        • We don’t support the first two settings that you did.

          Also only the KernelPM works here. The other 2 are worthless as are never seen or used by the OS. Stop adding unsupported flags.

  18. Adrew, this is from today.

    When I turned on computer to get into OS X i get error below. After that OS X boot normal. I don’t have Windows, only OS X.

    *** Panic Report ***
    panic(cpu 1 caller 0xffffff8000416df2): Kernel trap at 0xffffff800085d2af, type 13=general protection, registers:
    CR0: 0x0000000080010033, CR2: 0xffffff81c3e5d000, CR3: 0x000000000933a000, CR4: 0x00000000001627e0
    RAX: 0x0000000000000014, RBX: 0x0000000000000014, RCX: 0xffffff80245ea300, RDX: 0xffffff80245f9388
    RSP: 0xffffff81edd13c30, RBP: 0xffffff81edd13c70, RSI: 0x0000000000010002, RDI: 0xffffff80245f9200
    R8: 0x0000000000000000, R9: 0x0000000000000010, R10: 0xffffff8000954b30, R11: 0x0000000000000000
    R12: 0xffffff80245f9140, R13: 0xffffff80245f9380, R14: 0x3104c18348c2ff48, R15: 0xffffff8000b12cb0
    RFL: 0x0000000000010206, RIP: 0xffffff800085d2af, CS: 0x0000000000000008, SS: 0x0000000000000000
    Fault CR2: 0xffffff81c3e5d000, Error code: 0x0000000000000000, Fault CPU: 0x1

    Backtrace (CPU 1), Frame : Return Address
    0xffffff81e3e9de10 : 0xffffff800032ad21
    0xffffff81e3e9de90 : 0xffffff8000416df2
    0xffffff81e3e9e050 : 0xffffff8000433ca3
    0xffffff81e3e9e070 : 0xffffff800085d2af
    0xffffff81edd13c70 : 0xffffff7f827cdf37
    0xffffff81edd13cb0 : 0xffffff7f827cfd22
    0xffffff81edd13cd0 : 0xffffff7f827d002b
    0xffffff81edd13d60 : 0xffffff7f827d01f2
    0xffffff81edd13db0 : 0xffffff7f827ee3b3
    0xffffff81edd13e30 : 0xffffff7f827eeafc
    0xffffff81edd13e70 : 0xffffff80008b386d
    0xffffff81edd13eb0 : 0xffffff80008b335f
    0xffffff81edd13f30 : 0xffffff80008ae0f3
    0xffffff81edd13f70 : 0xffffff80008b4003
    0xffffff81edd13fb0 : 0xffffff80004116e7
    Kernel Extensions in backtrace:
    org.netkas.driver.FakeSMC(1372.0)[D68576F1-B949-3130-9A6A-7B460619B92D]@0xffffff7f827cc000->0xffffff7f827e4fff
    dependency: com.apple.iokit.IOACPIFamily(1.4)[70E2B65E-A91A-3522-A1A0-79FD63EABB4C]@0xffffff7f817ff000
    org.hwsensors.driver.ACPISensors(1394.0)[BB85F05A-2AF0-3E80-BB37-B8B129AE8AE7]@0xffffff7f827ed000->0xffffff7f827fafff
    dependency: com.apple.iokit.IOACPIFamily(1.4)[70E2B65E-A91A-3522-A1A0-79FD63EABB4C]@0xffffff7f817ff000
    dependency: org.netkas.driver.FakeSMC(1372)[D68576F1-B949-3130-9A6A-7B460619B92D]@0xffffff7f827cc000

    BSD process name corresponding to current thread: kernel_task
    Boot args: kext-dev-mode=1 slide=0

    Mac OS version:
    Not yet set

    Kernel version:
    Darwin Kernel Version 14.5.0: Wed Jul 29 02:26:53 PDT 2015; root:xnu-2782.40.9~1/RELEASE_X86_64
    Kernel UUID: 58F06365-45C7-3CA7-B80D-173AFD1A03C4
    __HIB text base: 0xffffff8000100000
    System model name: iMac14,2 (Mac-27ADBB7B4CEE8E61)

    System uptime in nanoseconds: 1796582585
    last loaded kext at 849287780: com.apple.BootCache 36 (addr 0xffffff7f81f26000, size 49152)
    loaded kexts:
    org.hwsensors.driver.LPCSensors 1394
    com.insanelymac.driver.AppleIntelE1000e 3.2.4
    org.hwsensors.driver.GPUSensors 1394
    org.hwsensors.driver.ACPISensors 1394
    org.hwsensors.driver.CPUSensors 1394
    org.netkas.driver.FakeSMC 1372
    com.apple.BootCache 36
    com.apple.driver.XsanFilter 404
    com.apple.iokit.IOAHCIBlockStorage 2.7.1
    com.apple.iokit.IOAHCIPassThrough 1.0.3
    com.apple.driver.AirPort.Atheros40 700.74.5
    com.apple.driver.AppleUSBHub 705.4.2
    com.apple.driver.AppleAHCIPort 3.1.2
    com.apple.driver.AppleUSBEHCI 705.4.14
    com.apple.driver.AppleUSBXHCI 710.4.11
    com.apple.driver.AppleRTC 2.0
    com.apple.driver.AppleACPIButtons 3.1
    com.apple.driver.AppleHPET 1.8
    com.apple.driver.AppleSMBIOS 2.1
    com.apple.driver.AppleAPIC 1.7
    com.apple.nke.applicationfirewall 161
    com.apple.security.quarantine 3
    com.apple.security.TMSafetyNet 8
    com.apple.iokit.IOAHCISerialATAPI 2.6.1
    com.apple.iokit.IOSCSIArchitectureModelFamily 3.7.5
    com.apple.iokit.IO80211Family 730.60
    com.apple.driver.AppleEFINVRAM 2.0
    com.apple.iokit.IOAHCIFamily 2.7.5
    com.apple.iokit.IONetworkingFamily 3.2
    com.apple.iokit.IOUSBFamily 720.4.4
    com.apple.driver.AppleEFIRuntime 2.0
    com.apple.iokit.IOHIDFamily 2.0.0
    com.apple.security.sandbox 300.0
    com.apple.kext.AppleMatch 1.0.0d1
    com.apple.driver.AppleKeyStore 2
    com.apple.driver.AppleMobileFileIntegrity 1.0.5
    com.apple.driver.AppleCredentialManager 1.0
    com.apple.driver.DiskImages 398
    com.apple.iokit.IOStorageFamily 2.0
    com.apple.iokit.IOReportFamily 31
    com.apple.driver.AppleFDEKeyStore 28.30
    com.apple.driver.AppleACPIPlatform 3.1
    com.apple.iokit.IOPCIFamily 2.9
    com.apple.iokit.IOACPIFamily 1.4
    com.apple.kec.corecrypto 1.0
    com.apple.kec.Libm 1
    com.apple.kec.pthread 1
    Model: iMac14,2, BootROM IM142.0118.B00, 4 processors, Intel Core i5, 3.40 GHz, 16 GB, SMC 2.15f2
    Graphics: NVIDIA GeForce GTX 760, NVIDIA GeForce GTX 760, PCIe, 2048 MB
    Memory Module: BANK0/DIMM1, 8 GB, DDR3, 1600 MHz, Kingston, KHX1600C9D38GX
    Memory Module: BANK1/DIMM1, 8 GB, DDR3, 1600 MHz, Kingston, KHX1600C9D38GX
    AirPort: spairport_wireless_card_type_airport_extreme (0x168C, 0x3112), Atheros 9380: 4.0.74.0-P2P
    Network Service: Wi-Fi, AirPort, en0
    PCI Card: Intel i217V, Ethernet Controller, Internal
    PCI Card: NVIDIA GeForce GTX 760, Display Controller, Slot-2
    Serial ATA Device: Samsung SSD 840 EVO 250GB, 250.06 GB
    Serial ATA Device: ST2000DM001-1CH164, 2 TB
    Serial ATA Device: TSSTcorp CDDVDW SH-224DB
    USB Device: Hub
    USB Device: Hub
    USB Device: Hub
    USB Device: Hub
    USB Device: USB Storage
    USB Device: Hub
    USB Device: FULL HD 1080P Webcam
    USB Device: USB Receiver
    USB Device: Hub
    Thunderbolt Bus:

    Reply
  19. Gigabyte Z87X-UD3H
    I5 4670k
    16GB Kingston BlackBeast
    Asus GTX 760
    TP Link WDN 4800
    Samsung Evo 840

    Reply
  20. Thx for this tutorial.

    I genereted SSDT with script ssdtPRGen.sh
    for my CPU Intel Core i7-3770 3,4 GHz (3,9 GHz Turbo)
    I use Clover Configurator for config.plist
    Under ACPI I did check “Generate P States” “Generate C States”
    be sure to disable “Drop OEM”
    This settings giving me lots of Speed Steps.
    But not TURBO in my case 3,9 GHZ
    The Solution is check under Boot Arguments “xcpm”
    this brings my CPU up to 3,9 GHz

    Reply
  21. Hi Andrew,

    I genereted SSDT with script ssdtPRGen.sh for my Intel i5-4590 CPU, 3.3 Ghz (3.7 Ghz Turbo).
    I know it’s working because I can see my CPU drop down to 2.0 using Intel Power Gadget.
    My problem is that when running Cinebench and monitoring thru Power Gadget, I can’t get my Turbo speed. I’m stuck at 3.3 Ghz.

    Please help.

    Thanks.

    Reply
  22. Hey man, I have been trying to figure how I can Have duel Video Cards injected in the SSDT that you provide under the Video card Section ? SSD-1 is for power & CPU in the X79 here, so Can I make a SSDT that has both or all PCI X Slots listed in it ? The one you provide looks like it is only for one Card? I have a GTX 560 2gb and a GT 530 1gb. Not the same Brand.

    They Both are working but only if I boot with injecting Nvida under the GTX560 and not the GT530, plus I remove nvda_drv=1. Tied many combos and strange thing happen or no video at all. However, no sleep on all of them, wakes up and dies ( black screen )

    I am on 10.10.2 – X79-UD5 – F12 I have been trouble shooting this for a few months, not a hackintosh newb but don’t know every thing. Hopefully you do – Cheers !

    Reply
  23. hackintosh not sleeping 10.11.4

    i7 4790k
    z87 gryphon
    970 gtx for any more details let me know please help guide me on the right direction thank you

    Reply
  24. Hi, I’m trying to get power management working on my E5-2670. Hackintosh working, but CPU is listed as ‘unknown’ 2.6ghz, and according to powergadget is pinned at 3ghz all the time.

    does this cpu support power states in osx?

    Thanks!

    Reply
  25. I believe the instructions should say that turbo speed should be specified in Mhz, not hz. Correct me if I’m wrong. Thanks for the tutorial.

    Reply
  26. i7 6700K need SSDT?

    Reply
  27. Hi Andrew,

    I have a i5-6600k. Do I need to create a ssdt file? I am far from the 4.3ghz turbo speed when using cinebench r15 (who sees my processor as 2 cores 4 threads). My smbios is 17,1

    Thank you

    Reply
    • Yes, once you make it please send it to us via Email so we can add it to the DMG.

      Reply
      • hi,

        I created it, but I am not sure it is working correctly. I get the same results as when I didn’t make the ssdt.
        Do I really need to go change the things in clover? because on the ssdtPRGen it doesn’t say anything about clover.

        How can I send it to you?

        Reply
        • You need to place it in EFI/Clover/APCI/Patched and needs to be named SSDT-1.aml. Email me the file that was created and I will take a look.

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload the CAPTCHA.