DSDT and kext information for my Hackintosh

As previously mentioned, I’ve built a hackintosh using a Gigabyte GA-X58A-UD5 motherboard (with the F4 bios), an i7 950 processor, and an nvidia GTX 260 graphics card.  The information one might need to get Empire EFI/Chameleon RC4 booting this machine is present in that other post.  However, a few people have asked for my DSDT information, so here are the diffs to the the disassembled dsdt.  As previously mentioned, I simply followed the guidelines here and adapted them to my DSDT.  Note that there is processor-specific information here regarding power states (in this case, for my i7 950).  To use this, you just need your disassembled dsdt file (called dsdt.dsl), which you can get by first getting the compiled version (I used an Ubuntu Live CD) and disassembling it (using iasl — again, I used Ubuntu).  With your disassembled DSDT and this diff, simply do:

patch -p0 < dsdt.dsl.diff

And then recompile doing:

iasl -sa dsdt.dsl

which will create a “dsdt.aml” file suitable for various PC EFI projects (including Chameleon RC4).

Using this, I don’t need a null power kext or any modified power management kext.  Stock Apple power-management kexts just work.  What doesn’t work:  sleep.  Apparently other people have used some sleep enabler kext to get this to work, but I haven’t tried that, since I don’t need it.  What also doesn’t work without a driver:  sound.  Also, as a reminder, I’m using the 32-bit kernel.  And to summarize, (native) SATA (without IDE emulation), USB, firewire, and graphics all just work (using GraphicsEnabler=Y, PciRoot=1) w/ Chameleon RC4.  Without a kext fix, however, the hard disk icons are the orange external ones.  There are several methods to fixing this.  The machine will shut down, but not reboot.  So, I also use a snow-leopard compatible OpenHaltRestart.

So, the drivers (kexts) I use are:

VoodooHDA (for sound)

Fake SMC 2.5 (platform workarounds to make the sucker boot – I had to install this on my System partition rather than in Chameleon’s Extra folder.  It wouldn’t work otherwise, for me)

IOACHIBlockStorageInjector (Just to make the hard-drive icons gray rather than the orange external ones)

OpenHaltRestart for 10.6 — I can’t find the source for this right now, and I’m not hosting kexts on my blog.  The version for 10.5 will not work – I see several different options over at insanelymac.com, so have a look over there if you need this.  As I recall, shutdown would work, but reboot would not.

Before you ask, no, I will not provide the compiled version of my DSDT.  The diffs are more useful for you because you can use them to generate a new DSDT against newer BIOS revisions or against slightly different motherboards.  (People inexplicably mix & match DSDTs that aren’t for their motherboard — if/when this works, it’s purely accidental).  If you’re mucking around with a Hackintosh, you ought to be able to boot an Ubuntu Live CD, follow some simple commands, and apply a patch.

Tags: , , ,

20 Responses to “DSDT and kext information for my Hackintosh”

  1. visor says:

    Wonderful stuff. I agree that a diff is the way to go – it will also help in the learning process – i.e. you can read the diff and understand where changes have been made to the dsdt.dsl.

    Since my last post I’ve managed to get a dsdt together – however, I shall be looking through your diff file for anything additional.

    Thanks again!

  2. Charles says:

    Hello

    I tried your method and failed. After Grey Apple boot, the screen just goes black.
    I was thinking it was the Graphics, but I also noticed you said you had to move the FakeSMC to the System drive? Where on the Drive exactly did you put it? I am guessing the regular spot ? /System/Library/Extensions/ ??? So really to boot that is all I need If I do not care about Drive Colors and Sound? That makes the Extra/Extensions folder empty. Sorry for all the questions! Can you clear these up for me, I was about to return this MB since I cannot get it to work. Thanks !

  3. Charles says:

    Yes, I have the standard Nvidia GeForce 9800 GT (very common, known to work just not for me?) But this Mother Board is not common. Every other model seems to be. I used a third party installer, but at the end of the day it just helps puts Vanilla snow Leopard on using Chameleon RC4/EFI10.5 so I should be able to delete any added kexts , move the FakeSMC and have my newly modified DSDT file just like yours. Oh Yeah I did change the IDE setting, but thanks for the reminder.

  4. cantankerouscoder says:

    So, first of all, I don’t know what video card you’re using, so I can’t be sure your card is supported. But yes, fakesmc seems to need to be in system/library/extensions. Also, you need to make sure its permissions are correct. I would boot in verbose mode to determine where it’s hanging to see what’s going wrong. I’d also boot the 32 bit kernel – chameleon defaults to booting 64bit on this hardware.

  5. cantankerouscoder says:

    And, yes, with PciRoot=1, GraphicsEnabler=y and a proper dsdt, you do not need any kexts other than fakesmc to get this booting. Does empire efi boot and install the installer dvd for you? It takes much longer to boot than chameleon booting off the hard drive (after installation) but it did eventually boot so long as I used the aforementioned boot options (and in the case of empire efi, without my custom dsdt).

  6. cantankerouscoder says:

    Other relevant details: make sure your BIOS is set to use native ahci mode for SATA (not IDE). Also set your hpet to 64bit mode.

  7. cantankerouscoder says:

    Well, the x58a-ud5 is a variant in a family that’s quite common on the hackintosh scene. That’s why I got it. I’d try installing w empire efi just to be sure nothing modified or nonstandard got installed, and if you have a boot log or messages as it hangs, that would be useful. Yeah, that card should work…

  8. DL says:

    So I have an x58a-UD5 board and made a hackintosh. Are you sure you have the x58a and not the EX58. I see lots of places that put them interchangeable. But besides that, I did my own DSDT following the tutorial on InsanelyMac, and compared it to your diffs (I have a 930 processor though). I have two issues though. I used KakeWalk to install the bootloader, and let it install the UD3R variant, and then fixed all the files to be specific to my board. My biggest problem has been the networking, it doesn’t seem to want to work. I have jumped through hoops several times installing kexts for the Realtek, and finally got it to at least connect, but it seems to be unreliable. Trying UBUNTU works perfectly. Any ideas? Also on reboots, seems to lose the overclocked status and defaults to normal.

  9. cantankerouscoder says:

    Hi DL – yes, I’m sure I have the GA-X58A-UD5 (with F4 BIOS). I don’t think they’re interchangeable either… but yes, I am sure that I have the X58A. Regarding networking, I do not use wired networking with this board. I did notice that with empire efi, my realtek LAN ports did seem enabled, but I only used empire efi for installation. (I am using wireless with a D-Link DWA-556 802.11n NIC, which works out-of-the-box as an “Airport” card in MacOS). This board uses the RTL8111D, which according to this post at insanelymac, cannot be supported without an additional kext. The kext mentioned is RealtekR1000SL.kext, and the instructions say to put it in “/System/Library/Extensions/IONetworkingFamily.kext/Contents/PlugIns/” The link to it is quoted as this, with more detailed instructions appearing here. Let me know if that works – I haven’t tried it. There seemed to be some back-and-forth about whether or not this could be installed in /Extra on 10.6, or if it has to be installed on the hard drive. Either way, obviously be sure to make sure your permissions are correct.

  10. DL says:

    Hey thanks for that, I will try it when I get home. I must of missed the whole put it in the IONetworkingFamily.kext. I am on 10.6.3 right now, had hoped that maybe that would fix the problem, having ran the update last night and reinstalling the kext a few times finally got the ports connected.. waited a bit, restarted.. and they were dead again. Installed the kext like 3 or 4 times.. one of them started working. I’ll look through that thread some.

    Thanks again!

  11. DL says:

    Okay, tried the kext from that page after using Onyx and deleting the files, and it works. The other RL1000SL.kexts I tried were flaky, but this one seems to be spot on. Yah I notice that if you google for X58a-UD5 and find some posts that look promising, by the time you get to the end the kexts are for the EX58-UD5…

  12. DL says:

    Side note I used the SnowR1000 installer.

  13. cantankerouscoder says:

    Cool! Thanks for the update. This definitely could come in handy in the future if I want to use wired networking w/ my machine.

  14. Steve says:

    Okay, tried the kext from that page after using Onyx and deleting the files, and it works. The other RL1000SL.kexts I tried were flaky, but this one seems to be spot on. Yah I notice that if you google for X58a-UD5 and find some posts that look promising, by the time you get to the end the kexts are for the EX58-UD5…

  15. DL says:

    Did you ever get sleep to work?

    I haven’t tried the kext for it, d00d claims it works with just DSDT modifications.

    My computer will go to sleep, but will power completely down. When I start it back up, it is just a reboot, and since I’m multibooting, goes to whatever the default OS is.

    Will probably try that sleep enabler kext tonight, hadn’t worried about it too much, but this board does an amazing sleep on win 7, so want it on MAC too.

  16. cantankerouscoder says:

    I never did, no – I have the same symptoms as you (that is, it just reboots). If you find a solution, please let me know. It just wasn’t a high priority for me. I typically just leave my system off except for evenings and weekends.

  17. DL says:

    I think I see what the problem is. I found this from the DSDT guide:

    “9. Modify the `Device (PX40)’ section so that AppleLPC.kext loads.
    This is needed for native power management, and for the `Start up automatically after a power failure’ option to appear in Energy Saver.
    This must be checked or sleep will shut the computer down instead, unless 17 is also done.”

    I am guessing we have a few power DSDT settings to tweak. I am going to try the sleep enabler kext first, just mainly cause I don’t feel like digging through the DSDT fixes atm, even though the DSDT is better. I will let you know if it works.

  18. DL says:

    SleepEnabler.kext from here http://code.google.com/p/xnu-sleep-enabler/ seems to work great. The UD5 powers everything down like its off.. and instant on with the push of a button. It was just easier to install the kext than it was to do the DSDT this time.. once it breaks I will spend the time doing the DSDT modifications (I am on 10.6.3 right now)

  19. shbyeung says:

    Great Instructions and thanks for sharing with us !
    I am also using X58A-UD5, can you provide your dsdt.aml for me to download for reference ? Thanks for your help.

  20. cantankerouscoder says:

    Sorry, I’m not going to provide copyrighted BIOS binaries (or patches thereto). The source patch I’ve provided is sufficient for you to make your own modifications and get the exact same results I’ve gotten.