It has been confirmed by comparing original DSDT's from a linux acipdump that a DSDT for this mobo is exactly the same for....
GA-EP43-DS3L (confirmed by thiagomorales)
GA-EP45-UD3L (confirmed by jamonda)
This is now considered an old thread which was originally put together when I was using 10.5 with the idea of creating a DSDT file with Koalala's ACPIPatcher by using your current BIOS file from the manufacturer. Then adding video, ethernet and various patches to it allowing for a stable, working Snow Leopard system.
However, since writing this guide, it has become clear that DSDT goes a lot deeper and is more complex than this guide was intended for so I have done my best to patch this front page with new info, although most of it remains as it first was.
There is a new DSDT fixes for Gigabyte boards thread started by iSoprano which, with the help of MasterChief, mm67 and many others, is aiming to teach a better understanding of DSDT and allow you to end up with a more refined DSDT for Gigabyte motherboards. I have been working through that thread to try and learn more about DSDT and thanks to mm67, and a few tweaks done here, the DSDT now used for this motherboard is posted below.
Note, I now don't include information for our video cards in DSDT as it's not part of the original hardware in BIOS and not having it allows for a more portable DSDT.
For our motherboard, I can now recommend the option of using Cartri's modified GA-EP45-DS3L BIOS. Based on version F11c, it has a few modifications to the DSDT in the BIOS to allow all of the newest fixes without us having the need for a separate DSDT.aml file.
26th January 2010 - 07:53
New iASLme available
Mitch_de has continued with his regular monthly release of iASLme which now includes the latest version of Intel's DSDT compiler/decompiler. You can find it here
10th December 2009 - 15:35
New DSDT for GA-EP45-DS3L
With thanks to mm67, I have tweaked his new DSDT for use with our motherboard and Thiagomorales has added THe KiNG's revised HDEF section for audio. I haven't included video or networking in it, though it does contain vanilla speedstep data for my CPU which you MUST change for your own. See towards the bottom of this post for the download link.
9th Dec: mm67 shares new DSDT in Gigabyte DSDT Fix thread - with fixes for shutdown and Aluminium keyboards. Link.
30th Nov: Updated Guide to v1.4.01 - Removed the previously suggested SATA fix as it was wrong.
20th Nov: Vanilla Intel Speedstep - I have posted a list of steps to aid in your following of FormerlyKnownAs' thread.
13th Nov: New version of iaslMe available - November 2009 - Mitch_de has updated his isalMe thread
5th Nov: EVOSX86 - Have released v1.3.1 of their DSDTSE editor - You can read more about it and find a download it here
26th Oct: Any new DSDT's that I make for our mobo will get posted below in the DSDT section
21st Oct: A new thread for Gigabyte DSDT fixes has been started - See here
2nd Oct: Gigabyte have released GA-EP45-DS3L BIOS F11b - See how to update here
A brief overview
ACPI (Advanced Configuration and Power Interface)
HP, Intel, Microsoft, Phoenix & Toshiba got together and developed the ACPI specification to establish a standard common interface to act between hardware (old & new) and software (BIOS, API's, OS's etc.) for Operating System Power Management (OSPM). The APCI specification (currently ACPIspec40.pdf) is detailed in a 727 page document which you can get from here and to quote the document 'ACPI is not a software specification; it is not a hardware specification, although it addresses both software and hardware and how they must behave. ACPI is, instead, an interface specification comprised of both software and hardware elements'.
DSDT (Differentiated System Description Table) The official definition from the ACPI Specification
A hierarchical tree structure in OS-controlled memory that contains named objects. These objects may be data objects, control method objects, bus/device package objects, and so on. The OS dynamically changes the contents of the namespace at run-time by loading and/or unloading definition blocks from the ACPI Tables that reside in the ACPI BIOS. All the information in the ACPI Namespace comes from the Differentiated System Description Table (DSDT), which contains the Differentiated Definition Block, and one or more other definition blocks."
In short, it's a table which comes supplied in the BIOS of your motherboard by the manufacturer. For Gigabyte motherboards this table has been shown to not be of the best quality and for our purpose of running OS X contains a lot of information that is not needed. Therefore the DSDT can be edited to our advantage to create a custom file for our machines with the aim of getting them to resemble a genuine Macintosh's closely as possible. With the added benefit of adding your hardware to the DSDT table and run without patched kernel extensions or third party drivers for that hardware.
Originally this process involved making a patched BIOS file for reflashing your motherboard with, but now the newer bootloaders have the ability to load an optional DSDT file at boot.
There are hackintosh users with various motherboards who have achieved various degrees of improved compatibility using just DSDT, although Fakesmc will always be required. (Note: Before Fakesmc, AppleDecrpyt.kext or dsmos.kext were used).
Or maybe not? (The following is a quote from here.)
One ongoing thread I would recommend looking at to see the possibilities of DSDT (and it's complexity) is the P5K Pro thread where Master Chief has grabbed DSDT by the balls, ripped it apart and shown what he has done to rebuild his DSDT to achieve one which is technically accurate, up to date & clean. And during this process is managing to tweak, fix and evolve compatability of OS X on his hardware to a new level.
BTW: I no longer use fakesmc.kext nor any other related kext (never mind asking how because I won't get sacked over this – my employer has a good relationship with Apple).
Building a basic DSDT.aml file for GA-EP45-DS3L
There is a wealth of information here on Insanely regarding DSDT from what it is, how to use it, how to make files and a whole host of Q&A's. This thread takes from those guides the information we need to build a basic DSDT for the GA-EP45-DS3L. I have only been reading and learning about DSDT since the end of May so I don't really know anything more than I detail here. From what I have been reading recently, it is a complicated subject and the deeper you go, the more you need to get your hands dirty. Therefore, I am only learning this and if you want to know more and I can't help you then it is up to you to read those other threads.
This guide wouldn't have been possible if it wasn't for firstly, all the great individuals at Insanelymac and the OSX86 scene for sharing their time and knowledge and secondly, to thiagomorales and tmongkol for supplying the final pieces of the jigsaw to enable me to put this guide for the GA-EP45-DS3L together.
What can actually be achieved using DSDT with the GA-EP45-DS3L?
This is something that I had to question because if I could use a DSDT.aml for a fully functioning system without any other kexts etc. then this would be the definitive path. Unfortunately though, with my limited knowledge, it's not the case as I still have to add various kexts to Chameleon's /Extra folder. But the Gigabyte boards have proved to be very compatible with OS X and some of the DSDT patching required is minimal compared to some of the other motherboards out there. But there are extra things you can do with DSDT that can't be done any other way i.e. Changing how OS X sees your EHCI (high speed) USB ports from expansions slots to built-in. This has the benefit of helping with sleep and some USB ports not being ejected improperly when waking from sleep. The USB fix came from a post by ApexDE from Zhell's excellent DSDT thread.
I am sure, in time, a lot more can be achieved with DSDT for this motherboard. But for that to happen, a deeper look in to DSDT for this mobo is required and that will take expertise, patience and time......
Improved Audio (in combination with LegacyHDA kext), giving an option to enable sleep in 10.5.8 by allowing the removal of Disabler.kext if desired, and to fix the CMOS reset bug - needed for 10.6
DSDT audio, with a new LegacyHDA.kext (thanks tmongkol) provides better functionality and doesn't suffer from any problems when awaking from sleep. Previously for this mobo I used VoodooHDA which didn't behave very well when waking from sleep and there were complaints with the microphone inputs not working. DSDT audio gives me these options in the System Preferences Sound.
10.5.8 and 10.6 sleep can work using DSDT by removing any PowerManagement disabler (i.e. SleepEnabler.kext / Disbaler.kext /NullCPUPowerManagement.kext) and letting AppleIntelCPUPowerManagement run. Note: CPU temps are generally noted to run around 10 degrees hotter doing this.
A Combined EFI string for ethernet and video which would normally be placed in the com.apple.Boot.plist can be set in DSDT and therefore removed from com.apple.Boot.plist. But is this really any great gain?
mm67 worked out how to change the DSDT code to allow our machines to shutdown without the use of OpenHaltRestart.kext in /Extra/Extensions. Duvel300 found a way to allow our machines to restart by modifying the bootloader code, so Chameleon RC5 (pre-release) or Asere's modified RC4 bootloader will work.
An issue with Bonjour networking, which I solved in my Vanilla 10.5.8 retail build by adding Psystar's RealtekR1000.kext and it's dependencies to /Extra/Extensions, still exists with DSDT networking and they still need to be added. For 10.6 I use the ifconfig command to set the ethernet adapter in to promiscuous mode rather than a Realtek networking kext.
If I use DSDT to achieve the same functionality as my 10.5.7 Vanilla retail install, I can only remove VoodooHDA.kext, OSvKernDSPLib.kext, IOAudioFamily.kext and Disabler.kext (provided I don't have an 8800GT) from /Extra/Extensions and edit out the EFI strings from the device-properties in com.apple.Boot.plist.
As I am still learning about DSDT I will continue in the hope that I can tweak this further and reduce the need for any more of these kexts in /Extra/Extensions. So I welcome anybody who wants to experiment and help achieve better results.
"Don't be afraid to experiment and don't expect to get it right the first time.
Try different things and see what works better on your hardware."
A quote from Beerkex'd (original statement here).
What is needed to complete this guide?
• A currently running OS X retail install.
• IORegistryExplorer to find where your hardware is and to get the necessary info.
• You'll need a copy of the BIOS file which you are currently using. See Gigabyte.
• Access to any Windows install, it doesn't have to be on the hardware your hack is running on. A VM will work.
• Koalala's ACPIpatcher. I used Patcher02Beta5.
• LegacyHDA.kexts from tmongkol. This also includes tmongkol's gude for patching DSDT by hand, very useful.
• Patience. You might require more than one attempt to achieve a fully working system using DSDT.
And to actually use the DSDT file you will need an OS X retail install which uses a bootloader that supports DSDT override. My Vanilla Retail 10.5.7 or Vanilla Retail 10.6 guides are ideal.
There are a few of ways to generate a DSDT.aml file but here I'm going to show you one way, and that's using Koalala's ACPIpatcher which is a Windows application. An alternative application for OS X is fassl's DSDT patcher.
• When adding video to DSDT, some people have had success ticking PEGP even though PEGP doesn't show in IORegistryExplorer. But I have lately taken my video out of DSDT and been using the new features of the Chameleon bootloader (also Netkas' fork; PC EFI), where I can inject the device properties for my video card in to the system at boot.
If you are using this guide to build a DSDT so you can get your 10.6 system up and running, a good way to verify it works is by using it on your existing 10.5.X system first. This guide includes the CMOS Reset Fix and I recommend having this BEFORE installing 10.6
Files As of 28th September 07:56 - The Building DSDT Guide PDF has been donwloaded 5,716 times
DSDT Guide for GA-EP45-DS3L v1.4.01 (1.69MB) Last updated 29th November 2009 - 10:40
Alternate Download Link FileFactory
What's Changed? - Removed the SATA fix as it was wrong.
Original Gigabyte BIOS F10 (Alternate Download Link)
Original Gigabyte BIOS F11b (Alternate Download Link)
Original Gigabyte BIOS F11c (Alternate Download Link)
Original Gigabyte DSDT extracted from BIOS F11c using acpidump in Linux
DSDT_r1_GBT_GBTUACPI_1000_MSFT_100000C.dsl.zip 12.43KB 215 downloads
LATEST - Credit to mm67 for this DSDT.
GA_EP45_DS3L_DSDT_Generic_v5.zip 2.85KB 1634 downloads Last updated 17th January 2009 - 20:27
This is a new style DSDT based on mm67's work. It's a smaller, cleaner DSDT which fixes a lot of the bugs supplied in the original Gigabyte DSDT and leaves in the bits relevant for OS X. I have tweaked it to work with the GA-EP45-DS3L.
• It doesn't contain any video
• It doesn't contain any information for PS2 device support. So you need USB keyboard & mouse.
Some useful stuff
EVOSX86's DSDTDE - A DSDT Editor which might be useful although I don't really use it.
Superhai's Enhanced Intel SpeedStep
FormerlyKnownAs' Vanilla SpeedStep Thread
Gigabyte DSDT Fix thread
P5K Pro thread - Read Master Chief's Exceptional work with DSDT...
tmongkol's Audio thread
Zhell's DSDT thread
1 from Beerkex'd
iaslMe from 13th October 2009 - A compiler/decompiler for DSDT.aml
This post was last edited by blackosx on 10th March 2010 - 07:32