Jump to content

Asus Rampage IV Extreme X79 - Guide: Extract & Edit your own DSDT


shilohhh
 Share

12 posts in this topic

Recommended Posts

Using a DSDT that was extracted on a different build with different devices installed, may not work on your system even if you have an identical motherboard and BIOS.

If you still would like to try a DSDT edited and extracted by another, rampagedev is the best place to get it.


The DSDT edits in this guide are specifically for the Asus Rampage IV Extreme - Socket 2011 - X79 Motherboard, but some may work on similar systems.

This guide will walk you through extracting and editing a DSDT from your specific RIVE build using DSDTSE v2 beta.

 

Before We Start

A DSDT is a translation of your system's BIOS so:

1) Make sure you are updated to the BIOS you want to extract the DSDT from and set up your BIOS completely and correctly for your system.

2) Make sure you have all your PCI devices installed in the locations you want them before you continue.

3) Remove DSDT.aml from /Extra, if present, or reboot using the "DSDT=No" boot flag.
 

Getting Started

Download and open DSDTSE V2 Beta and my list of patches.

files.osx86.net/downloads.php?do=file&id=3099&act=down&actionhash=guest

http://www.insanelymac.com/forum/index.php?app=core&module=attach&section=attach&attach_id=121230


On the main pane, click "Extract DSDT".

49117-screen-shot-2013-03-11-4-05-20-am.

Your DSDT will be extracted from your active BIOS in a "Decompiled" window.

49116-screen-shot-2013-03-11-4-06-05-am.

Click compile. You will be presented with a "Compile error" window.

49115-screen-shot-2013-03-11-4-06-46-am.

Click "OK". An "Error" window will open showing you all the current errors, warnings, and remarks.

49114-screen-shot-2013-03-11-4-07-07-am.

Note there are lots of errors. Close the window. Click "Fixcompile". The DSDT should compile successfully and another "Code" window will open. In the "Code" window, note that the DSDT's errors have all been fixed except for one warning.

49113-screen-shot-2013-03-11-4-07-41-am.

Close the "Code" window.

Patching

Open my list of DSDT Patches and lets start patching.

1) Add Method DTGP:
Copy "Method DTGP" from the list.

49134-screen-shot-2013-03-11-4-57-06-am.
Click on the right side of the " { " that follows the "DefinitionBlock". Hit the Right Arrow key. The cursor should be at the very start of the next line.

49110-screen-shot-2013-03-11-4-46-15-am.

Hit enter to make a space.

49109-screen-shot-2013-03-11-4-46-44-am.

Use the Up-Arrow key to move the cursor up to that space.

49108-screen-shot-2013-03-11-4-47-01-am.

Paste in "Method DTGP" there.

49112-screen-shot-2013-03-11-4-20-23-am.

You can change "Name (TMAC, "R4E 3404")" to read whatever you'd like it to. Example: Name (TMAC, "BIG BOB'S BIG DSDT"). I've only added this so I can see what version I've opened for future editing. Click "Fix Compile".

2) Cleaning up unnecessary stuff:
Note: This one is not necessary and adds no functionality.

Scroll down to Name (OSVR, Ones).

49107-screen-shot-2013-03-11-4-51-31-am.

Comment out the OS's.

49137-screen-shot-2013-03-11-4-52-04-am.

49136-screen-shot-2013-03-11-4-52-43-am.

Also see example in my list of DSDT patches. Click "Fix Compile".


3) Fix the SIOS Warning:
Copy "SIOS Warning" fix.

49135-screen-shot-2013-03-11-4-56-31-am.

Type "sios" in the search window and click search.

49133-screen-shot-2013-03-11-4-59-19-am.

Scroll to the bottom of the method and add a space right before the last " } " .

49132-screen-shot-2013-03-11-5-05-44-am.

Paste the fix in that space.

49131-screen-shot-2013-03-11-5-06-10-am.

Click "Fixcompile". Note that the last warning is no longer present in the "Code" widow that opens.

49130-screen-shot-2013-03-11-5-09-46-am.


4) Get the LPC controller to load and use native OS X kexts:

Copy the Device (SBRG) fix from the list.

49125-screen-shot-2013-03-11-5-35-33-am.

Search for "sbrg". Move the "Decompiled" window over to the left side of your screen so that the left side of the window is cut off right at the edge of the D in "Device (SBRG)".

49129-screen-shot-2013-03-11-5-23-13-am.

Scroll down until you find the " } " that lines up the the same spot as the D from "Device (SBRG)". This is where SBRG's sub device chain ends.

49128-screen-shot-2013-03-11-5-25-36-am.

Move the window back over so you can see all of the left side again. Select from right side of the " } " that you found, all the to the left edge.

49124-screen-shot-2013-03-11-5-35-58-am.

Paste over it with the Device (SBRG) fix from the list.

49126-screen-shot-2013-03-11-5-31-40-am.

Click "Fixcompile".

5) Remove dedicated IRQs from devices to later give them to the High Precision Event Timer:

Type "IRQNoFlags ()" without the " " into the search box.

49122-screen-shot-2013-03-11-5-38-34-am.

Click "Next". The first match will be in "Device (PIC)". Select from the right edge of "{2}" below it, all the way up to the far left edge of "IRQNoFlags ()".

49121-screen-shot-2013-03-11-5-39-59-am.

Hit Delete.

49120-screen-shot-2013-03-11-5-40-14-am.

Click next again. It should now find "{0}" in "Device (TMR)".

49119-screen-shot-2013-03-11-5-46-11-am.

Delete it.

49118-screen-shot-2013-03-11-5-48-41-am.

Click next. You should now find "{8}" in "Device (RTC0).

49156-screen-shot-2013-03-11-5-50-31-am.

Delete it.

Click next. You should find "{13}" in "Device (COPR)". Leave this one alone.

Click "Next". Continue the same process and delete all the "{1}"s from "Device (PS2K)".

49155-screen-shot-2013-03-11-5-54-18-am.

Delete all the "{12}"s from "Device (PS2M)".

49153-screen-shot-2013-03-11-6-09-41-am.

Note: If you are using a PS2 mouse or keyboard, you may need to find different IRQ values to use instead of {1} and {12}.

6) Give Device (HPET) 4 dedicated IRQ values to use so it doesn't try to steal any from USB:
Search "hpet" and paste in fix

49146-screen-shot-2013-03-11-6-34-28-am.

49145-screen-shot-2013-03-11-6-35-01-am.

49143-screen-shot-2013-03-11-6-35-27-am.

-as in my example on the list.
Click "Fixcompile".


7) Add sub-device "Device (BUS0)" to "Device (SMB)" to load native SMBus kexts:

Search "Device (SMB)"

49142-screen-shot-2013-03-11-6-39-55-am.

and paste in fix over the last " } " before the next device.

49141-screen-shot-2013-03-11-6-41-25-am.

49140-screen-shot-2013-03-11-6-42-33-am.

Also see my example on the list. "Fixcompile".


8) Add Device (HDEF) to the end of Device (PCI0) to enable onboard audio with the "Interim IvyBridge" kext from Toleda:

Search "Device (PCI0)". Find the end of the device chain the same way we did in the "Device (SBRG)" fix.

49139-screen-shot-2013-03-11-6-50-10-am.

It's a LONG ways down.
For me, the PCI0 device chain starts at line 1670 and ends at line 6286. Paste the fix over the last " } " in the device chain.

49138-screen-shot-2013-03-11-6-53-43-am.

49176-screen-shot-2013-03-11-6-54-27-am.

"Fixcompile".


9) Add AAPL,clock-id 2 to PEX1-4 to allow sleep (SleepEnabler.kext is necessary) while USB 3.0 storage is plugged in:

Search "Device (PEX" and hit next until you find "Device (PEX1)".

49175-screen-shot-2013-03-11-7-06-12-am.

Paste patch in between "Name" and "OperationRegion".

49174-screen-shot-2013-03-11-7-06-31-am.

49173-screen-shot-2013-03-11-7-06-41-am.

49171-screen-shot-2013-03-11-7-07-17-am.

Repeat for "Device (PEX2)", "Device (PEX3)", and "Device (PEX4)". Fixcompile.

Note: Any drives plugged into USB 3 ports will be force ejected upon wake. They will then automatically remount. This may be solved in the future with more USB 3.0 support from Apple.


Fixcompile.
 

Finishing Up

Click on the "Compile" tab to get into the compile section.

49161-screen-shot-2013-03-11-7-24-13-am.

Check the "Autofix errors" box and the "Fixes report" box. Click the "Compile" button.

49159-screen-shot-2013-03-11-7-27-25-am.

Click the "Gimme my DSDT" button. A finder window will open containing your edited DSDT. It will be named "DSDT.aml".

49158-screen-shot-2013-03-11-7-29-24-am.

Drag "DSDT.aml" into your "/Extra" folder. Delete or overwrite the old DSDT.aml if one is present. If you haven't installed a boot loader yet, and don't have an "/Extra" folder, place "DSDT.aml" in /Extra after you've installed a boot loader.










Verification

On the "Main Pane", in the second box, under "Registry Info", click "Get".

49117-screen-shot-2013-03-11-4-05-20-am.

This will open IORegistryExplorer and show you all the devices loaded and information about them.

1) In the search box of the newly opened IOReg window, enter "hpet". With HPET selected on the left twirl open the disclosure triangle for "IOInteruptSpecifiers".

49198-screen-shot-2013-03-11-10-53-19-pm

In the "Values" column, the first pair of numbers (they are displayed as Hexadecimals and you will need to convert them to decimal using something like HexDecBin.app)

49199-screen-shot-2013-03-11-10-53-44-pm

-are the IRQs that HPET is using. You should have, 0c (12), 08, 02, and 01.

2) Find "SBRG" and note that AppleLPC shows up as a sub-device and that it has the native OS X driver loaded.

49200-screen-shot-2013-03-11-10-57-51-pm

3) Find "SMB". Note that the device we added, "BUS0", shows up in the device tree and it is using the native OS X driver.

49201-screen-shot-2013-03-11-10-59-03-pm

4) At "EUSB" and "USBE", you should see the"AAPL,clock-id" we added.

49203-screen-shot-2013-03-11-11-02-20-pm

5) At "PEX1", "PEX2", "PEX3", and "PEX4", you should see the"AAPL,clock-id" we added.

49206-screen-shot-2013-03-11-11-19-29-pm

6) Note that "HDEF" should now be present and loaded.


49204-screen-shot-2013-03-11-11-07-02-pm

Shilohhs_R4E_DSDT_Patches 2.rtf.zip

Interim_898_Lion_AppleHDA.zip

  • Like 4
Link to comment
Share on other sites

Hi,

 

I really like this guide, but extracting the DSDT from within OSX, except if everything is functioning properly, is in my opinion the worst method.

 

The guide contains a lot of usefull information, so chapeau! :thumbsup_anim:.

 

 

 

PS: You can leave the current DSDT. DSDT=somefilename.aml does also work :)

Link to comment
Share on other sites

I really like this guide, but extracting the DSDT from within OSX, except if everything is functioning properly, is in my opinion the worst method.

Thanks!

Do you feel extracting from windows is better? and why? I assume using terminal would be the same as using DSDTSE?

 

Can you please outline your preferred method?

Link to comment
Share on other sites

I prefer Windows and Linux to extract the DSDT, because they can access information from the bios, that OS X can not, so you will have a more correct DSDT from those OS'es. (Easier to fix/edit)

 

I'm bad at explaining, hope you get my point.

Link to comment
Share on other sites

I'm bad at explaining, hope you get my point.

 

I do. I had issues switching PCI cards and having to re-extract and edit. I guess that could have been avoided if I would have extracted without OS X loaded.

 

If I extracted in windows, is the DSDT affected by installed PCI card GPUs ect... Would I get the same DSDT no matter how many devices are Installed?

Link to comment
Share on other sites

I do. I had issues switching PCI cards and having to re-extract and edit. I guess that could have been avoided if I would have extracted without OS X loaded.

 

If I extracted in windows, is the DSDT affected by installed PCI card GPUs ect... Would I get the same DSDT no matter how many devices are Installed?

 

Sometime. I extracted the Gigabyte x79 DSDT's from the ROMS and they all work perfectly but the UD3 has to be extracted from the system or it will not work even if it is extracted from Windows.

Link to comment
Share on other sites

I will have to dig up my notes for it as I last did it last year. That was the last time Gigabyte updated there BIOS.

No biggie unless you think this could be a superior way to extract the DSDT.
Link to comment
Share on other sites

  • 3 years later...

Hi @shilohh thanks so much for such a detailed step-by-step walkthrough of editing and patching a DSDT, this guide taught me so much of something so foreign to me as I have never edited a DSDT in all my years messing with OSX86. I have bookmarked this and also clipped it to Evernote just in case it ever happens to disappear.

 

I know this was written in 2013 and a lot has changed since then. Do you have any later patches or suggestions I should apply or modify in my DSDT for Sierra?

 

My board is very close to yours being a Sabertooth X79 and following your guide I have a DSDT.aml I can boot from and I went further from your guide and managed to modify other things like renaming SBRG to LPCB but I think there is some patches here which need to be modified slightly for Sierra.

 

After following your guide I actually had a system with Power Management and Speedstepping EXCEPT it would never clock into it's Turbo States but then I broke it later in the day when I discovered I still had the NullCPUPowermanagement.kext load and after removing that.

 

I have made my own post here with all my files in case you can have a look or give any suggestions. I am so close I know it and I am not one to give up, been going at this new build now for nearly 16 days but still forging ahead.

 

Thanks in advance

 

Kind Regards

Mitchell

Link to comment
Share on other sites

 Share

×
×
  • Create New...