Jump to content

[Guide] Using DSDT with the Gigabyte GA-EP45-DS3L


  • Please log in to reply
575 replies to this topic

#1
blackosx

blackosx

    InsanelyMacaholic

  • Coders
  • 3,139 posts
  • Gender:Male
  • Location:UK
Using DSDT on the GA-EP45-DS3L


DSDT compatability
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)



Thread Status
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.



News

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.

Previous News

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.)

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).

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.


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. The SATA fix also came from a post by ApexDE from pcb355's thread. (Removed because it was the wrong thing to do for this motherboard).

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......


Main Benefits:
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.

Posted Image
Posted Image


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.


Tips

• 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.


Notes

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
Attached File  DSDT_r1_GBT_GBTUACPI_1000_MSFT_100000C.dsl.zip   12.43KB   205 downloads


DSDT'S

LATEST - Credit to mm67 for this DSDT.
Attached File  GA_EP45_DS3L_DSDT_Generic_v5.zip   2.85KB   1555 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

Attached Files



#2
Cyberdog !

Cyberdog !

    InsanelyMac Sage

  • Donators
  • 280 posts
  • Gender:Male
  • Location:France, Lorraine, Pont-a-Mousson
Holiday for me !!!

Posted Image

When i come back next week.
I try it.

Cyberdog !

#3
blackosx

blackosx

    InsanelyMacaholic

  • Coders
  • 3,139 posts
  • Gender:Male
  • Location:UK
Enjoy your holiday..
And hopefully this guide will be further progressed by the time you return.
:D

#4
blackosx

blackosx

    InsanelyMacaholic

  • Coders
  • 3,139 posts
  • Gender:Male
  • Location:UK
I have brought this conversation from my vanilla retail OSX install thread to here so I can try to keep all the DSDT information in one place.

Now I followed your guide and built a new dsdt.aml put the legacyHDA in /E/E - moved Voodoo + others out of /E/E
Result is the same: Nice "Built in Audio" in SystemProfiler "Unknown" in SystemPrefs

Well done for following the guide and building a new dsdt.aml :D
But I am sorry to hear the audio hasn't worked for you. Maybe your ALC888 is at address 2, meaning you need to select ALC888-2 in the audio section? (just a guess).

What is the "original" version of AppleHDA.kext (in /SL/E) - I am not sure if I have the correct = unpached one...during all my tests... (can I extract it from the original OSX DVD ? or do I have to go thru a new installation ?)

I have attached the original version of AppleHDA from my /S/L/E folder here for you to put in to your /S/L/E folder. Hope that helps you. Do you have another backup install? as with my vanilla retail 10.5.7 install guide we created a backup partition for installing another fresh copy of OS X. I always find that useful for testing or for recovery if needed.

BTW: The data which the IORegistryExplorer gave to me where different to yours (in your guide) --> ethernet (Realtek card) not in PEX - no PEGP for my 8800GTS

This is interesting. I would have thought as we both have the same motherboard, BIOS version and install that the information in IORegistryExplorer would be the same, just maybe in a slightly different order. But, thanks for letting me know that it is different, that's something new I have learned here. As I said in my opening comments, I am new to this too :thumbsdown_anim:

It looks like I am going to have to revise my guide with this new information. It's only by others trying this out, like you g_h, that this guide can accurately mature. So thanks again for attempting this process. :(

Attached Files



#5
thiagomorales

thiagomorales

    Think different...

  • Members
  • PipPipPip
  • 121 posts
  • Gender:Male
  • Location:Brazil - Rio de Janeiro
Edited:
removed.

#6
blackosx

blackosx

    InsanelyMacaholic

  • Coders
  • 3,139 posts
  • Gender:Male
  • Location:UK
Hi mate :)
I see you've been busy again....

Thing is, I don't use LegacyAppleAHCIPort.kext with my vanilla install as, like you said, 10.5.7 supports ICH10 natively.
I have attached pictures of my System Profiler which shows my AHCI recognised as Intel ICH10 AHCI, and a grab of IORegistryExplorer with a search for AppleAHCI.

Can you check my settings an see if I am I missing something here? Do I need to do your suggestion?
Let me know :D

Thanks

Attached Files



#7
thiagomorales

thiagomorales

    Think different...

  • Members
  • PipPipPip
  • 121 posts
  • Gender:Male
  • Location:Brazil - Rio de Janeiro
Yes my friend, youre right...Its so good, its support ICH10 natively. :D
I removed the message above, and i will post in another thread.
Thanks for info! :)

#8
blackosx

blackosx

    InsanelyMacaholic

  • Coders
  • 3,139 posts
  • Gender:Male
  • Location:UK

Yes my friend, you�re right...Its so good, its support ICH10 natively. :)
I removed the message above, and i will post on another thread.
Thanks for info! :)

Okay, but thanks for your hard work and contributions :D

#9
FKA

FKA

    are we there yet?

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,626 posts
  • Gender:Male

Edited:
removed.


sorry blackosx I know this is a bit off your topic but this is rather interesting.

thiagomorales are you sure this wont work with ICH9 ?? it woild be fantasic if it did!

##EDIT## thiagomorales please repost on one of the other DSDT patcher threads


D.

#10
blackosx

blackosx

    InsanelyMacaholic

  • Coders
  • 3,139 posts
  • Gender:Male
  • Location:UK

sorry blackosx I know this is a bit off your topic but this is rather interesting.

No problem at all, it's good to see ideas kicking about :wacko:

#11
macastragalos

macastragalos

    InsanelyMac Protégé

  • Members
  • Pip
  • 48 posts
  • Gender:Male
  • Location:Canary Islands
Thank you everybody here, especially blackosx for such a fantastic and continous work in order to make our common motherboard one of the best supported for MAC OSX.

Congratulations !!! ;)

#12
thiagomorales

thiagomorales

    Think different...

  • Members
  • PipPipPip
  • 121 posts
  • Gender:Male
  • Location:Brazil - Rio de Janeiro

sorry blackosx I know this is a bit off your topic but this is rather interesting.

thiagomorales are you sure this wont work with ICH9 ?? it woild be fantasic if it did!

##EDIT## thiagomorales please repost on one of the other DSDT patcher threads


D.


Thanks friend, i have posted it on DSDT Patcher thread...
http://www.insanelym...p...t&p=1217448

Regards.
Thiago

#13
spinecki

spinecki

    InsanelyMac Protégé

  • Just Joined
  • Pip
  • 3 posts
thanks a lot!

#14
ApexDE

ApexDE

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 217 posts
Your HDEF entry looks very promising. But i have a ALC889A onboard. Does anyone have a HDEF entry for that Soundchip?

#15
blackosx

blackosx

    InsanelyMacaholic

  • Coders
  • 3,139 posts
  • Gender:Male
  • Location:UK

Your HDEF entry looks very promising. But i have a ALC889A onboard. Does anyone have a HDEF entry for that Soundchip?

You need to look here :rolleyes:

#16
ApexDE

ApexDE

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 217 posts
Thanks. I have seen that your DSDT does not contain the CMOS-reset-fix:


Device (RTC)
				{
					Name (_HID, EisaId ("PNP0B00"))
					Name (ATT0, ResourceTemplate ()
					{
						IO (Decode16,
							0x0070,			 // Range Minimum
							0x0070,			 // Range Maximum
							0x00,			   // Alignment
							0x02,			   // Length was 4, CMOS reset-fix
							)
					})
					Name (ATT1, ResourceTemplate ()
					{
						IO (Decode16,
							0x0070,			 // Range Minimum
							0x0070,			 // Range Maximum
							0x00,			   // Alignment
							0x04,			   // Length
							)
					})



My CMOS gets corrupted after a shutdown without that fix. AppleEFIRuntime.kext causes the CMOS corruption, but that kext is needed for proper Firewire I/O too.

#17
blackosx

blackosx

    InsanelyMacaholic

  • Coders
  • 3,139 posts
  • Gender:Male
  • Location:UK

Thanks. I have seen that your DSDT does not contain the CMOS-reset-fix:

My CMOS gets corrupted after a shutdown without that fix. AppleEFIRuntime.kext causes the CMOS corruption, but that kext is needed for proper Firewire I/O too.

Thanks ApexDE, I will have a look in to that.

I am still learning about DSDT so anything like this is all new. I have only learnt from the options that koalala's ACPIPatcher has shown me and although I know I can manually edit my DSDT.dsl, I don't really know what else there is to add and I haven't had time to go hunting.

#18
sk1nhead

sk1nhead

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 111 posts
  • Location:Manila

AppleIntelCPUPowerManagement.kext can be left to function without a disabler.kext although CPU temps are generally noted to run around 10 degrees hotter. But if you use an 8800GT then we still need to block AppleUpstreamUserClient.kext.


is this a bug on temp monitor or it literally runs hotter? if you disable or delete AppleIntelCPUPowerManagement kext, the processor runs cooler but you got no sleep on 10.5.8.. me wants a cooler proc and sleep :) hope someone can fix this.

#19
FKA

FKA

    are we there yet?

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,626 posts
  • Gender:Male

Thanks friend, i have posted it on DSDT Patcher thread...
http://www.insanelym...p...t&p=1217448

Regards.
Thiago


most kind!

Thanks. I have seen that your DSDT does not contain the CMOS-reset-fix:

****----****

My CMOS gets corrupted after a shutdown without that fix. AppleEFIRuntime.kext causes the CMOS corruption, but that kext is needed for proper Firewire I/O too.


PCEFI V10.1 also corrects this problem with Snow Leo'

D.

is this a bug on temp monitor or it literally runs hotter? if you disable or delete AppleIntelCPUPowerManagement kext, the processor runs cooler but you got no sleep on 10.5.8.. me wants a cooler proc and sleep :) hope someone can fix this.


Have a look at this thread - start at post 70 (roisoft) - (my current DSDT.dsl is on the last post)
And all of this thread

I've struggled with this (if the voodoo guys already had a powermanagment kext with c-state I probably wouldn't have bothered.) but it's been an education!

I currently have vanilla speedsteping and no intelCPUpowerman' error messages but haven't cracked c-states yet. CPU temps are normal.
Managed to update to 10.5.8 last night without AppleintelCPUPM disabler with no issues.

D.

#20
blackosx

blackosx

    InsanelyMacaholic

  • Coders
  • 3,139 posts
  • Gender:Male
  • Location:UK
@ sk1nhd33t

Did FormerlyKnownAs's answer help you?


@FormerlyKnownAs

Thanks for answering sk1nhd33t's question because I wouldn't have known where to start with the request for a cooler processor and sleep. As for your answer....Wow, I haven't reached that level of knowledge yet. But thanks for the links and I will have a read when I get a chance.





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy