Contribute
Register

HDMI Audio - a vid or aud topic?

Status
Not open for further replies.
Joined
Jul 19, 2010
Messages
342
Motherboard
GA-Z68-UD3H-B3
CPU
Core i7 2600k
Graphics
EVGA GTX670
Mac
  1. MacBook
  2. Mac mini
Classic Mac
  1. 0
Mobile Phone
  1. iOS
Is HDMI audio a video or audio topic.
Obviously it is audio related, but comes from the vid card.

I asked this question before but got no response.

I want to know so that I can determine whether to look at the 889a kext or the 5xxx kext's to fix my audio over HDMI.


Thank you much!
 
Does Anyone understand this post by Tmongol?

In one post he says it is not for ATI users, but in another he mentions ATI HDMI audio and gives a long explanation of which I cannot really understand on how to enable HDMI audio, I think, but I'm not sure.

Does anyone understand this?

http://www.insanelymac.com/forum/index. ... try1448833

Edited on June 20, 2010

***AppleHDA.kext v1.7.9a4 (10.6.2) was tested on Gigabyte GT220 and Galaxy GT240, OS X 10.6.3, and HDMI audio's working and having Encoded Digital Audio (see Audio Miidi Setup). AppleHDA.kext v1.8.4fc3 doesn't have Encoded Digital Audio for HDMI audio. (11 May 2010)

This is how I made HDMI audio working for my Nvidia GT240. After I tried to find out how I can get HDMI audio for my Galaxy GT240, finally I just did two things, editing my DSDT and patching AppleHDA bin. I can say that if you have a graphic card such as GT220 or GT240 and AppleHDA.kext could not work on your sound on board, you should be able to get HDMI audio working. However, you might got some sound assertions. It's not bad, isn't it. It could be good if you can use AppleHDA.kext for your sound card on board and HDMI audio. You can see some of my testing logs, it's in zip file.

Requirements:
HexEdit for patching bin and iASLMe (DSDT tool, compile & decompile)

AppleHDA.kext version 1.8.4fc3 or higher ***tested AppleHDA.kext v1.7.9a4 (10.6.2) on OS X 10.6.3, got HDMI audio working.

I will not explain how to patch AppleHDA binary or edit info.plists for your sound card on board but I will tell you how to edit AppleHDA binary for HDMI audio. GT220 is based on GPU GT216 the same as GT330M used by Apple. If you have nVidia GT220 PCI-E card and ALC889a/885 on your motherboard, you don't have to patch binary.

DSDT.aml
You need to use DSDT.aml for your system in order to enabler HDMI audio. You need to know how to edit DSDT.dsl and how to compile it.

A graphic card that has a built-in audio chip.
You have known that recent ATI graphic cards have a built-in audio chip. Late 2009, Nvidia has marketed new GPUs that have a built-in audio chip; for example, GT220, GT240, GT330, GTX470, GTX480, etc. Visit www.nvidia.com for more information.

OS X 10.6.3
You may need to update your system to 10.6.3 since AppleHDA.kext is related to many kexts.
============================================================
How to edit your DSDT:

First:

Adding the following code into a graphic section if you are using boot loader for your graphic card.
Note: You must know what your graphic address is.

CODE

Device (GFX0)
{
Name (_ADR, Zero)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"hda-gfx",
Buffer (0x0A)
{
"onboard-1"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}

Device (HDAU)
{
Name (_ADR, One)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"hda-gfx",
Buffer (0x0A)
{
"onboard-1"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}



Then, it should be looking like the followings.
CODE

Device (PEGP) //adding this device
{
Name (_ADR, 0x00010000) //using lspci tool for your graphic address
Name (_PRW, Package (0x02) //based on Gigabyte DSDT
{
0x09,
0x05
})
Device (GFX0)
{
Name (_ADR, Zero)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"hda-gfx",
Buffer (0x0A)
{
"onboard-1"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}

Device (HDAU)
{
Name (_ADR, One)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"hda-gfx",
Buffer (0x0A)
{
"onboard-1"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
}



If your boot loader does not contain your graphic device-id, you may use the followings.
CODE

Device (PEGP)
{
Name (_ADR, 0x00010000)
Name (_PRW, Package (0x02)
{
0x09,
0x05
})
Device (GFX0)
{
Name (_ADR, Zero)
Method (_DSM, 4, NotSerialized)
{
Store (Package ()
{
"AAPL,slot-name",
"PCI x16",

"@0,compatible",
Buffer (0x0B)
{
"NVDA,NVMac"
},

"@0,device_type",
Buffer (0x08)
{
"display"
},

"@0,name",
Buffer (0x0F)
{
"NVDA,Display-A"
},

"@1,compatible",
Buffer (0x0B)
{
"NVDA,NVMac"
},

"@1,device_type",
Buffer (0x08)
{
"display"
},

"@1,name",
Buffer (0x0F)
{
"NVDA,Display-B"
},

"NVCAP",
Buffer (0x18)
{
/* 0000 */ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00,
/* 0008 */ 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
/* 0010 */ 0x00, 0x00, 0x00, 0x00
},

"VRAM,totalsize",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x20 //change it for your graphic card
},

"device_type",
Buffer (0x0C)
{
"NVDA,Parent"
},

"model",
Buffer (0x15)
{
"nVidia GeForce GT240" //change it for your graphic card
},

"rom-revision",
Buffer ()
{
"3172a" //change it for your graphic card. I am not sure about this. Some recommended use this "3172a."
},

"hda-gfx",
Buffer (0x0A)
{
"onboard-1"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}

Device (HDAU)
{
Name (_ADR, One)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"hda-gfx",
Buffer (0x0A)
{
"onboard-1"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
}



Second:

see HDMI device-id whether you need to patch Apple binary or not?
For example, I used Windows for getting information. You can see the following pictures.



My Galaxy GT240 has HDMI audio device-id as 0x10DE000D while vanilla AppleHDA binary has 0x10DE000A. So, I must patch AppleHDA binary by using HexEdit to change all of them (four positions) from 0A 00 DE 10 to 0D 00 DE 10.

G210 : 0x10DE000B working or not working, I don't know about this G210.
GT220 : 0x10DE000A (Good choice)
GT240 : 0x10DE000D (need to patch Apple binary)

Finally, you should get like these.



Note:

You have to connect HDMI cable between a graphic card and LCD TV (or Monitor w/ built-in speakers) for getting HDMI Output option.

I tested Sleep mode since I connected between GT240 and LCD TV and then it was OK and able to wake up. (19-04-2010)


If you encounter some problems, you may need to delete some preferences by booting into safe mode ("-s"). You will see two lines of /sbin/??, just type them.
I got these from http://www.insanelymac.com/forum/lofive ... 08186.html for removing old display preferences.

CODE

rm -f /Library/Preferences/com.apple.window*
rm -f /Users/"USER NAME"/Library/Preferences/ByHost/com.apple.window*
rm -r /Users/"USER NAME"/Library/Preferences/ByHost/com.apple.pref*

rm -f /Library/Preferences/Audio/com.apple.audi*


This is my testing logs.
Attached File my_some_testing_logs.zip ( 1.59K ) Number of downloads: 64


Enjoy.
 
The answer is yes. By using the the Tmongol method described, I have HDMI audio working on my P55M-UD4/GT240 for 10.6.3 and 10.6.4. When my hacHT is connected to my receiver (and connected to my HDTV with HDMI cables), Audio/MIDI shows my receiver and eight audio channels after boot. Dolby Digital Surround (5.1) and DTS (5.1) play perfectly. Regarding the method, the solution described works for Nvidia GT200 cards. I can't comment on the applicability of the method to Nvidia 9 Series or 400 series or any ATI cards. The AppleHDA kext supports HDMI audio out of the box with an ALC885/889a codec and the GT220 on 10.6.3 and .4. I edited my DSDT (copy/paste does not work well because of hidden characters) and patched AppleHDA for the GT240 device ID as described in the method and I use the Legacy889a kext in my Extras folder. For motherboards with a different chip, digital audio output (SPDIF) has to be working before HDMI audio works. An interesting final note; in the audio output preference panel, HDMI audio is the fifth entry and does not appear unless you move the slider. I didn't realize HDMI audio was working until I made a mistake and Snow Leopard growled at me through my surround sound system. The only other mother board I've gotten HDMI audio to work on is the DFI P55-T36.
 
Thank you for the reply.
I have the P55M-UD4, but my grfx card is an XFX 5850. It sounds like tmongol's solution only works for Nvidia?

I'm having a difficult time understanding if his method works for ATI, but it appears as though if I were to get my device ID from windows then I might be able to get HDMI working as well.

Do you think that once Apple finally releases the new Macs with the ATI5xxx series that HDMI audio will be a part of multibeast?

toleda said:
The answer is yes. By using the the Tmongol method described, I have HDMI audio working on my P55M-UD4/GT240 for 10.6.3 and 10.6.4. When my hacHT is connected to my receiver (and connected to my HDTV with HDMI cables), Audio/MIDI shows my receiver and eight audio channels after boot. Dolby Digital Surround (5.1) and DTS (5.1) play perfectly. Regarding the method, the solution described works for Nvidia GT200 cards. I can't comment on the applicability of the method to Nvidia 9 Series or 400 series or any ATI cards. The AppleHDA kext supports HDMI audio out of the box with an ALC885/889a codec and the GT220 on 10.6.3 and .4. I edited my DSDT (copy/paste does not work well because of hidden characters) and patched AppleHDA for the GT240 device ID as described in the method and I use the Legacy889a kext in my Extras folder. For motherboards with a different chip, digital audio output (SPDIF) has to be working before HDMI audio works. An interesting final note; in the audio output preference panel, HDMI audio is the fifth entry and does not appear unless you move the slider. I didn't realize HDMI audio was working until I made a mistake and Snow Leopard growled at me through my surround sound system. The only other mother board I've gotten HDMI audio to work on is the DFI P55-T36.
 
Perhaps you should ask tmongol if his method works for ATI cards. by the way, I just received my new iMac with the ATI 5750. I haven't been able to pull the DSDT yet but I did look at IORegistryExplorer. I see the exact same structure for HDMI audio for Nvidia and ATI graphic cards (GFX0, HDAU, hda-gfx and "onboard-1") to enable audio processing on the graphics card in Snow Leopard. Good luck.
 
toleda said:
Perhaps you should ask tmongol if his method works for ATI cards. by the way, I just received my new iMac with the ATI 5750. I haven't been able to pull the DSDT yet but I did look at IORegistryExplorer. I see the exact same structure for HDMI audio for Nvidia and ATI graphic cards (GFX0, HDAU, hda-gfx and "onboard-1") to enable audio processing on the graphics card in Snow Leopard. Good luck.

You may go to http://www.projectosx.com/forum/index.php?showtopic=359 for getting DSDT and others. Your contribution will be useful to others.

Are you able to get HDMI audio from new iMac?

Thanks.
 
Thanks for the link. HDMI audio on my iMac works perfectly. I suspect if you do the DSDT modifications specified by tmongol (if you try copy/paste, it won't compile because of hidden characters), patch AppleHDA with your 5750 device id (0x68a1 in my iMac), plug in a HDMI cable from your HDTV, you might see HDMI in your Sound Output System Pref.
 
toleda said:
Thanks for the link. HDMI audio on my iMac works perfectly. I suspect if you do the DSDT modifications specified by tmongol (if you try copy/paste, it won't compile because of hidden characters), patch AppleHDA with your 5750 device id (0x68a1 in my iMac), plug in a HDMI cable from your HDTV, you might see HDMI in your Sound Output System Pref.

What brand is your LCD TV? I have Samsung but I could not get HDMI working on ATI graphic card. Could you send me a link of your new iMac's DSDT?

Thank you very much.
 
Awesome to see some traction on this.

Thank you for the information.

I have contacted Tmongol over on teh insanelymac forums but haven't heard a response yet.

I'm not sure if I can interpret his instructions as is.

I can do DSDT edits with detailed directions, but I understand you said not to copy paste.

Do you know if certain kexts will need to be deleted?
For instance, LegacyHDA889a ?


Thanks much!
 
Status
Not open for further replies.
Back
Top