Today I got a dp to HDMI adapter and confirmed I now have audio over HDMI on both HDMI ports as well as on the display port. My edit a couple of posts ago was slightly wrong and in fact the changes I hade to make to the AppleIntelSNBFB kekt were to change the following:
Code:
Find: 00 02 03 00 00 00 00 00 ff ff ff ff 02 05 00 00 00 04 00 00 07 00 00 00 03 04 00 00 00 04 00 00 09 00 00 00 04 06 00 00 00 08 00 00 06 00 00 00
Replace: 00 02 03 00 00 00 00 00 ff ff ff ff 02 05 00 00 00 08 00 00 06 00 00 00 03 04 00 00 00 08 00 00 06 00 00 00 04 06 00 00 00 04 00 00 07 01 00 00
Use Hexedit to find/replace the values above in AppleIntelSNBGraphics.kext/Contents/MacOS/AppleIntelSNBGraphicsFB.
This enables HDMI audio on both ports 5 and 6 and display port audio on port 7
To do the same for HD 4000 I believe it is necessary to do the following:
Code:
This is the native framebuffer:
0A 00 66 01 00 02 03 02 00 00 00 02
00 00 00 01 00 00 00 20 10 07 00 00
10 07 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
02 05 00 00 00 04 00 00 07 01 00 00 < DP/port 05
03 04 00 00 00 04 00 00 07 01 00 00 < DP/port 06
04 06 00 00 00 08 00 00 06 00 00 00 < HDMI/port 07
Need to change last three lines to:
02 05 00 00 00 08 00 00 06 00 00 00 <HDMI/port 05
03 04 00 00 00 08 00 00 06 00 00 00 < HDMI/port 06
04 06 00 00 00 04 00 00 07 01 00 00 < DP/port 07
These changes are made with Hex Edit to the file in /System/Library/Extensions/AppleIntelFramebufferCapri.kext/Contents/MacOS/AppleIntelFramebufferCapri
If you are using the Mountain Lion preview AppleHDA.kext, the DSDT edit for HDEF with layout 3 and the system definition of MacMini then these edits should give you working HDMI audio on all three ports for an Ivy Bridge processor. Please try and let me know if it works (I believe it should).
For these edits remember to drag the kext (copy) t desktop and then do them and then install the modified kext back in with kext wizard (or whatever).
If you don't like using hex editors, I have made a small perl script that should work. Just copy and paste the following into Terminal:
sudo perl -pi -e 's|\x02\x05\x00\x00\x00\x04\x00\x00\x07\x01\x00\x00\x03\x04\x00\x00\x00\x04\x00\x00\x07\x01\x00\x00\x04\x06\x00\x00\x00\x08\x00\x00\x06\x00\x00\x00|\x02\x05\x00\x00\x00\x08\x00\x00\x06\x00\x00\x00\x03\x04\x00\x00\x00\x08\x00\x00\x06\x00\x00\x00\x04\x06\x00\x00\x00\x04\x00\x00\x07\x01\x00\x00|g' /System/Library/Extensions/AppleIntelFramebufferCapri.kext/Contents/MacOS/AppleIntelFramebufferCapri
If I have not made a typo this will change any of the framebuffers in the Capri kext that at the moment are:: DP/DP/HDMI into HDMI/HDMI/DP. It is a lot less typing than just targetting the MacMini framebuffer, but should work just as well and not cause any issues (I think!). As with everything though hacking is at your own risk so make a back up of anything you are going to change.