Contribute
Register

Mountain Lion HDMI Audio

Status
Not open for further replies.

toleda

Moderator
Joined
May 19, 2010
Messages
22,845
Motherboard
Asus Maximus VII Impact
CPU
Core i7-4770K
Graphics
RX 560 + HD4600
Mac
  1. iMac
  2. MacBook Pro
  3. Mac mini
Classic Mac
  1. 512K
  2. LC
  3. Power Mac
Mobile Phone
  1. iOS
2787035531_066ba1ee85.jpeg

Mountain Lion HDMI Audio



Update 9/28/13 - New 10.8.5 support
1. Haswell/HD4600/AMD/Nvidia HDMI audio
2. x79

New guide, see Haswell HDMI Audio
Haswell HDMI Audio dsdt edits - Desktop
toleda/audio_hdmi_8series
Configure MaciASL/Preferences/Sources/+ with URL:
Code:
https://raw.github.com/toleda/audio_hdmi_8series/master
Update 6/6/13 - New guide, see Easy Guide] ML: UEFI HDMI Audio
toleda/audio_hdmi_uefi · GitHub
Configure MaciASL/Preferences/Sources/+ with URL:
Code:
https://raw.github.com/toleda/audio_hdmi_uefi/master

Update 3/22/13 - ML: HDMI Audio - New Guides
HD4000/7 Series MB dsdt edits
- Desktop/Laptop/Intel NUC
toleda/audio_hdmi_hd4000 · GitHub
Configure MaciASL/Preferences/Sources/+ with URL:
Code:
https://raw.github.com/toleda/audio_hdmi_hd4000/master
HD3000/6 Series MB dsdt edits - Desktop
toleda/audio_hdmi_hd3000 · GitHub
Configure MaciASL/Preferences/Sources/+ with URL:
Code:
https://raw.github.com/toleda/audio_hdmi_hd3000/master
5 Series MB dsdt edits - Desktop
toleda/audio_hdmi_5series · GitHub
Configure MaciASL/Preferences/Sources/+ with URL:
Code:
https://raw.github.com/toleda/audio_hdmi_5series/master

Enabling HDMI audio in OS X Mountain Lion is very similar to Lion. Editing your dsdt has been a significant obstacle to success. Introducing a new simple and easy HDMI Audio dsdt editing tool for OS X HDMI audio. Based on the DSDT Editor built by MaLd0n, pushing the Apply button automatically adds the HDMI audio dsdt edits to your dsdt.


The techniques to enable Mountain Lion HDMI audio are the same as Lion (except HD4000 HDMI audio). The Lion HDMI Audio - Part 1: Requirements guides are current for Mountain Lion. In some circumstances, especially PC and laptop, the Lion guides are appropriate. The Mountain Lion HDMI audio guides are focused on motherboards with AMI or Award (Gigabyte) dsdts. For that reason, there in not an updated Nvidia HDMI guide for Mountain Lion. Instead, guides for AMI and Award Mountain Lion HDMI audio dsdt edits are now available. A minimum set of edits enable AMD and Nvidia and HD3000 or HD4000 HDMI audio in Mountain Lion and Lion. The HDMI audio edits enable HDMI audio automatically for the user's installed and enabled graphics solution

A reality check; even with the correct edits, HDMI audio may not work on your system. This is a do it yourself project, it is rare that someone will offer to edit your dsdt. Occasionally, a user will post their dsdt with working HDMI audio. If your motherboard and BIOS versions are the same as the dsdt posted, you can test that dsdt on your system. Working dsdts also provide validated HDMI audio edit examples that can be applied to your dsdt. If your result is working HDMI audio, you will likely find the process is worth the effort.

Benefits
1. Automated HDMI audio dsdt editing
2. Installs HD3000 or HD4000 integrated graphics HDMI audio dsdt edits
3. Installs AMD/Nvidia discrete graphics card HDMI audio dsdt edits

Before You Start
1. OS X does not provide HDMI audio controls (No volume, no mute, no balance, etc.)
2. The connected HDMI device (TV, receiver, etc.) provides any and all audio controls

Requirements
1. Intel (Note 1)
1a. Ivy Bridge motherboard (7 Series)
1b. Sandy Bridge motherboard (6 series)
1c. Core i3, i5, i7/Nehalem motherboard (5 Series)
2. OS X
2a. Mountain Lion - 10.8 and newer
2b. Lion - 10.7.4 and newer
3. dsdt - no compile errors
4. Motherboard onboard audio codec
4a. Realtek supported audio codecs (8xy): 885, 887, 888, 889, 892, 898
4b. Unsupported audio codecs: ML HDMI audio works with any unsupported codec, no onboard audio
5. AppleHDA.kext (one of the following)
5a. ML: Native AppleHDA.kext (unsupported audio codecs)
5b. ML: MultiBeast 5.1.3 or newer/Audio/Realtek ALC8xx/With DSDT/ALC...
5c. Lion: MultiBeast 4.6.1 Drivers & Bootloaders/Kexts & Enablers/Audio/Realtek ALC8xx/Patched AppleHDA/ALC...
6. OS X recognized and enabled graphics with HDMI audio codec
7. Chimera - 1.11 or newer

Special HDMI Audio Considerations
1. AMD/Nvidia/Intel
1a. HDMI audio works with or without onboard audio working
1b. For unknown reasons, some systems do not successfully enable HDMI audio
2. AMD
2a. AMD and Nvidia dsdt edits are the same
2b. HDMI Device_ID and/or Framebuffer edits may be required.
2c. DVI ports do not support HDMI audio
2d. Surround sound (Encoded Digital Audio) does not work with GE=No
3. Nvidia
3a. AMD and Nvidia dsdt edits are the same
3b. All Nvidia HDMI device-ids native to ML AppleHDA
4c. HDMI audio available on all ports (DVI2HDMI adapter)
4. Intel
4a. dsdt edits are different for HD3000 and HD4000
4b. Framebuffer edits may be required for 1 or 2 HDMI outputs
4c. 2x HDMI audio available by deleting one audio output device (Line Out or Optical)
5 HDMI audio support not available with
5a. Multiple discrete graphics cards
5b. Discrete graphics cards installed in a slot other than the primary slot (X16)

Tools
1. MaciASL (dsdt editor) MaciASL - Browse Files at SourceForge.net
2. IORegistryExplorer see [Guide] How to Make a Copy of IOReg
3. Applications/Utilities/Console
4. Applications/TextEdit
5. Carbon Copy Cloner or SuperDuper

Mountain Lion Audio ID (10.8 AppleHDA.kext_v2.3.0 or newer, available in MultiBeast 5.1.3 or newer)
1. AMD/Nvidia HDMI audio
1a. Audio ID: 1 for 5/6 port on board audio
1b. Audio ID: 2 for 3 port on board audio
2. HD3000/HD4000 HDMI audio
2a. Audio ID: 3 for 3/5/6 port onboard audio

Lion Audio ID (10.7.4 AppleHDA.kext_v2.2.0 only, available in MultiBeast 4.6.1)
1. See Note 2 below

Mountain Lion HDMI Audio Edits - Three Steps
1. Preparation
2. dsdt edits
3. Kext edits

Mountain Lion HDMI Audio - Preparation
1. Backup dsdt.aml
2. Make bootable backup of system (Carbon Copy Cloner or SuperDuper)
3. Make a copy of IOReg
4. Determine BIOS supplier, either:
4a. Award - Gigabyte 5 series, 6 series (except UEFI)
4a. Ex. - DefinitionBlock ("./dsdt.aml", "DSDT", 1, "GBT ", "GBTUACPI", 0x00001000)
4b. AMI - All other (except Gigabyte Award BIOS)
4b. Ex. - DefinitionBlock ("./dsdt.aml", "DSDT", 2, "ALASKA", "A M I", 0x00000015)

Mountain Lion HDMI Audio - dsdt Edits

Mountain Lion HDMI Audio - dsdt Edit Links
1. Mountain Lion HDMI Audio - Award DSDT
1a. HD4000_Award_hdmi_audio_dsdt_editing_kit
1b. HD3000_Award_hdmi_audio_dsdt_editing_kit
1c. 5-Series_Award_hdmi_audio_dsdt_editing_kit
2. Mountain Lion HDMI Audio - AMI DSDT
2a. HD4000_AMI_EFI_hdmi_audio_dsdt_editing_kit
2b. HD3000_AMI_EFI_hdmi_audio_dsdt_editing_kit
2c. HD3000_AMI_BIOS_hdmi_audio_dsdt_editing_kit
2d. 5-Series_AMI_BIOS_hdmi_audio_dsdt_editing_kit

Mountain Lion HDMI Audio - dsdt Edits
1. Edit layout-id - TextEdit (Note 3)
2. Apply Edits - MaciASL
3. Verify Edits - MaciASL
4. Save dsdt - MaciASL
5. Install dsdt.aml - MaciASL

Mountain Lion HDMI Audio - Kext Edits

Mountain Lion HDMI Audio - Kext Edits
1. No kext edits required (AppleHDA.kext, AppleIntelFramebufferCapri.kext, AppleIntelSNBGraphicsFB.kext)
2. Exception; some supported AMD graphics may required framebuffer edits, see Lion HDMI Audio - Part 3a: Kext Edits - AMD (Mountain Lion procedure same as Lion)

Lion HDMI Audio - Kext Edits
1. Lion HDMI Audio - Part 3a: Kext Edits - AMD
2. Lion HDMI Audio - Part 3b: Kext Edits - Nvidia
3. Lion HDMI Audio - Part 3c: Kext Edits - Intel HD3000 Revised

Mountain Lion HDMI audio - Verify S/L/E and org.chameleon.Boot.plist
1. Delete any and all audio enablers (HDAEnabler1, ..8??), helpers (ALC8??), etc.; AppleHDA.kext only.
2. Delete any and all graphics enablers and property injectors. DSDT injection only.

Mountain Lion HDMI audio - Restart

Mountain Lion HDMI audio - Verify HDMI Audio
1. System Preferences/Sound/Outputs
Z77-I Deluxe/3770K/HD400/HD6870 - DP audio, 2XHDMI audio and Airplay Mirroring
z77i-hd4000-HD6870-audio.png

2. System Information/Graphics/Displays
Z77-I Deluxe/3770K/HD400/HD6870
z77i-deluxe-hd4000-HD6870.png


Troubleshooting

1. Verify HDMI device connected
1a. System Information/Graphics/Display/HDMI device name/Television/Yes
2. Verify Extra/dsdt.aml is
2a. a .aml file
2b. edited
3. Run IOReg
3a. Verify Devices (see Verify Edits - MaciASL above)
4. Problem Reporting
4a. Motherboard/processor/OS and version/graphics
4b. Procedure/Guide Used
4c. dsdt
4d. copy of IOReg

Notes
1. Intel Product Series Models
1a. 7-Series - Z77, H77, B75
1b. 6-Series - Z68, P67, H67, H61
1c. 5-Series - P55, H55
2. For Lion Audio IDs w/AppleHDA.kext (10.7.4, v2.2.0) see Optimized Realtek Lion 10.7.4 AppleHDA

Mountain Lion HDMI audio - dsdt edit code
View attachment ML_DSDT-HDMI_Audio_Edits_v4.1.zip

Credits:
VCH888; http://www.insanelymac.com/forum/index.php?showtopic=140941&view=findpost&p=1448833
proteinshake: http://www.insanelymac.com/forum/index.php?showtopic=280372
 
Last edited by a moderator:
Hi,

I've been reading this post for the past couple of hours trying to figure out what it means, and while I keep getting a little further, I'm still really confused. I have a Q77M-D2H and there's no DSDT available (that I could find at least). I tried extracting my own DSDT and compiling it so I could save it, but there were errors and so it wouldn't ket me...not sure if this is even the right approach.

This may be a dumb question, but will getting HDMI audio working ever be something that can just be applied through MultiBeast, or will it always require this tweaking? I'm sure with a few more days work (!) I'll be able to get this done, but much of this is so over my head that I find myself wondering if I'm in too deep :)

By the way, thanks for all this information -- not trying to complain, just want to figure it out!

f.
 
Hi,

I've been reading this post for the past couple of hours trying to figure out what it means, and while I keep getting a little further, I'm still really confused. I have a Q77M-D2H and there's no DSDT available (that I could find at least). I tried extracting my own DSDT and compiling it so I could save it, but there were errors and so it wouldn't ket me...not sure if this is even the right approach.

This may be a dumb question, but will getting HDMI audio working ever be something that can just be applied through MultiBeast, or will it always require this tweaking? I'm sure with a few more days work (!) I'll be able to get this done, but much of this is so over my head that I find myself wondering if I'm in too deep :)
See [GUIDE] Creating your own DSDT for most boards
Unlikely there will be a MultiBeast selection for HDMI audio.
 
Thanks for pointing me in the right direction toleda -- because it looks like my motherboard isn't on the supported list for the DSDT tool, is it safe to assume I should go the EasyBeast route to generate a DSDT (I get a ton of compile errors in the tool)? I'm guessing that if it messes anything up, I could just delete the DSDT and start fresh? Is is possible that the DSDT generated by EasyBeast would cause issues that I wouldn't notice right away?

Thanks,

F.
 
Thanks for pointing me in the right direction toleda -- because it looks like my motherboard isn't on the supported list for the DSDT tool, is it safe to assume I should go the EasyBeast route to generate a DSDT (I get a ton of compile errors in the tool)? I'm guessing that if it messes anything up, I could just delete the DSDT and start fresh? Is is possible that the DSDT generated by EasyBeast would cause issues that I wouldn't notice right away?
EasyBeast does not make a dsdt. Did you use the Fix Errors button in Compile Report of DSDT Editor? If yes, make a screenshot of the errors remaining.
 
Hi Toleda,

Thanks for the quick response. I did hit the fix errors button -- below is the errors that were remaining, along with the corresponding code:
10484 Error _HID suffix must be all hex digits (GH)
Name (_HID, "ABCDEFGH")


9937 Warning Reserved method must return a value (Integer/String required for _HID)
Method (_HID, 0, NotSerialized)

9937 Warning Not all control paths return a value (_HID)
Method (_HID, 0, NotSerialized)


3135 Warning Result is not used, possible operator timeout will be missed
Acquire (MUT0, 0x0FFF)

2052 Warning ResourceTag larger than Field (Tag: 64 bits, Field: 32 bits)
CreateDWordField (BUF0, \_SB.PCI0._Y0F._LEN, MSLN)

There were also 12 Remark lines, all the same as below (in some cases _T_0 instead of _T_1)

10347 Remark Use of compiler reserved name (_T_1)
Name (_T_1, Zero)



Let me know if that makes sense, and thanks again for your help.

F.
 
Thanks for the quick response. I did hit the fix errors button -- below is the errors that were remaining, along with the corresponding code:
Nothing serious. Go onto the next step, the AMI dsdt editing thread. Download the 7-Series_AMI_EFI_hdmi_audio_dsdt_editing_kit and included is an ami_clean_compile.txt patch file to fix your remaining errors and warnings. Apply the patch and proceed with each step in the guide.
 
Ok, I patched with the clean compile as you said and got it to compile...one step closer!

Now I'm at the section with the text:
"Edit Open ML_...Series...hdmi_audio_.txt- TextEdit"

I have onboard sound with 6 1/8" jacks, so I'm assuming that falls under 5/6 port on board, and I wouldn't have to change that value because it's already 0x01 -- or is that wrong?

I'm also wondering about the other edits, where it says to find PEG0 and replace with the value from the table. I have a 7 series board, so that means PEGP, right? My question is do I open the file "hdmi_audio_ami_7_series_efi_ivy_bridge" and literally find/replace every instance of PEG0 with PEGP in that text file? When I look at that code, it seems like step 3 is telling me that this code will do that, but maybe I'm missing something.

Also, if I don't care about using the onboard HDMI audio, can I just ignore the GFX0 stuff?

Thanks,

F.
 
Ok, I patched with the clean compile as you said and got it to compile...one step closer!

Now I'm at the section with the text:
"Edit Open ML_...Series...hdmi_audio_.txt- TextEdit"

I have onboard sound with 6 1/8" jacks, so I'm assuming that falls under 5/6 port on board, and I wouldn't have to change that value because it's already 0x01 -- or is that wrong?

I'm also wondering about the other edits, where it says to find PEG0 and replace with the value from the table. I have a 7 series board, so that means PEGP, right? My question is do I open the file "hdmi_audio_ami_7_series_efi_ivy_bridge" and literally find/replace every instance of PEG0 with PEGP in that text file? When I look at that code, it seems like step 3 is telling me that this code will do that, but maybe I'm missing something.

Also, if I don't care about using the onboard HDMI audio, can I just ignore the GFX0 stuff?

Thanks,

F.
Layout-id 1 is correct. Verify PEG0@1 in IOReg. No changes required for PEG0@1. If IOReg said P0P1@1, then an edit to the patch file are required (find: PEG0 replace: P0P1, PEGP is never edited). Let the patch file do everything. The advantage for leaving the onboard edits is HDMI video is supported (i.e., 3rd monitor) and sound assertions are eliminated.
 
I'm a little lost here. I see PEG0@1 -> IOPCI2PCI2PCIBridge -> PEGP@0 (see attached screenshot)

I'm not sure what I need to edit in the patch, file, if anything. Just for the hell of it I tried running the patch file without edits, but HDMI didn't appear in sound preferences, so I figured that wasn't the right solution, and I removed the dsdt file and I'm trying again.

Are you able to tell anything from that screen shot?

Thanks again,

F.
 

Attachments

  • Screen Shot 2012-09-11 at 8.27.16 AM.jpg
    Screen Shot 2012-09-11 at 8.27.16 AM.jpg
    190.6 KB · Views: 1,361
Status
Not open for further replies.
Back
Top