GUIDE: HDMI Audio

h9826790

macrumors G5
Apr 3, 2014
14,107
6,731
Hong Kong
I'm interested in seeing the AppleALC approach work.

@h9826790 perhaps you could try the version of IORegistryExplorer provided at https://github.com/toleda/audio_ALCInjection and zip the exported file. In my case, the file was less than 1 MB.
Compress the file, attach .zip
Thanks both!

I didn't realise there is an IORegistryExplorer 2.1 on github, which export a much smaller file then the current IORegistryExplorer 3.0.2.

Anyway, here is the ioreg. Million thanks in advance!
 

Attachments

toleda

macrumors newbie
Jan 20, 2010
24
6
here is the ioreg.
The process that enabled all Nvidia HDMI audio codecs has been disabled in 10.13.4 AppleHDAController.kext.
IOReg show the Nvidia HDMI codec is not recognized, no AppleHDAController.
Screen Shot 2018-04-16 at 5.24.40 PM.png
1080 Ti/HDMI audio codec id is 10ef.
The simplest fix to patch the binary (hex editor):

Binary: AppleHDAController
Find: de 10 1a 0e
Replace: de 10 ef 10 (1x)

AppleALC.kext_v1.2.6 does not support 10ef, the next release will.
Attached is a preview of the next version supporting 10ef

Install either method and reply with new IOReg.
 

h9826790

macrumors G5
Apr 3, 2014
14,107
6,731
Hong Kong
Thanks for the support.

This is the IOReg with both AppleALC.kext preview installed and AppleHDAController.kext patched.

I tried with just the AppleALC.kex preview installed. Also doesn't work.
 

Attachments

Last edited:

toleda

macrumors newbie
Jan 20, 2010
24
6
This is the IOReg with both AppleALC.kext preview installed and AppleHDAController.kext patched.
To clarify, 2 methods; one or the other, remove 1st before installing 2nd
Both IORegs look the same, neither method worked
Binary patch: specify hex editor? in place? not in place, kext installer? kext cache rebuild?
AppleALC: native AppleHDA.kext? location? kext installer? kext cache rebuild?
Attach kext cache rebuild output, if available
[doublepost=1523994350][/doublepost]
Will the next release support GTX 980 HDMI audio codec id as well?
IOReg/HDAU/device-id?
 

h9826790

macrumors G5
Apr 3, 2014
14,107
6,731
Hong Kong
To clarify, 2 methods; one or the other, remove 1st before installing 2nd
Both IORegs look the same, neither method worked
Binary patch: specify hex editor? in place? not in place, kext installer? kext cache rebuild?
AppleALC: native AppleHDA.kext? location? kext installer? kext cache rebuild?
Attach kext cache rebuild output, if available
[doublepost=1523994350][/doublepost]
IOReg/HDAU/device-id?
I know, I tried that preview AppleALC.kext with the original AppleHDAController.kext first.

May I know with the self patched AppleHDAController.kext. Should I use the normal AppleALC 1.2.6? Or the one that manually edited? My last attempt was with the self edited + builded version.

https://forums.macrumors.com/threads/guide-hdmi-audio.1499797/page-27#post-25971642

Either doesn't work. Then I tried both. Anyway, will try patched AppleHDAcontroller.kext + native AppleALC.1.2.6 now.

For info:

Binary patch,

Hex Editor is HexMiner (I used it for few years already, never give me any issue)
Screen Shot 2018-04-18 at 04.08.49.png


I copied the original AppleHDAController binary to desktop. Edited it. Then put it back to the original place, then manually fix the permission.
Screen Shot 2018-04-18 at 04.07.07.png


Then open Kext Utility, let it install the self edited+builded AppleALC 1.2.6 (not your preview version), and let it rebuild cache.

AppleALC,

YES, with native AppleHDA.kext.

Installed to S/L/E by Kext Utility. And I did let it rebuild cache.
Screen Shot 2018-04-18 at 04.17.58.png


May I know how to get the kext cache rebuild output?
[doublepost=1523996769][/doublepost]This is the IOReg for patched AppleHDAController with the AppleALC 1.2.6 release directly downloaded from here.

https://github.com/vit9696/AppleALC/releases

W
ith this combination. The 1080Ti's audio controller shows driver installed
Screen Shot 2018-04-18 at 04.26.52.png


But still not available in Sound preferences yet.
Screen Shot 2018-04-18 at 04.28.19.png
 

Attachments

Last edited:

toleda

macrumors newbie
Jan 20, 2010
24
6
May I know with the self patched AppleHDAController.kext. Should I use the normal AppleALC 1.2.6? Or the one that manually edited? My last attempt was with the self edited + builded version.

Either doesn't work. Then I tried both. Anyway, will try patched AppleHDAcontroller.kext + native AppleALC.1.2.6 now.

Then open Kext Utility, let it install the self edited+builded AppleALC 1.2.6 (not your preview version), and let it rebuild cache.

May I know how to get the kext cache rebuild output?
This is the IOReg for patched AppleHDAController with the AppleALC 1.2.6 release directly downloaded from here.
With this combination. The 1080Ti's audio controller shows driver installed
But still not available in Sound preferences yet.
Kext patch procedure is correct.
Native AppleALC.kext v1.2.6 does not include the AppleHDAController patch for your graphics card, useless.
Do not combine the binary patch with AppleALC.kext, KP possible.
For the 1080Ti's audio controller, you selected the video device, not the audio controller: pcie10de,10ef

The attached IOReg ("patched AppleHDAController with the AppleALC 1.2.6 release") shows AppleHDAController loading, working. Reason, patched binary.
Screen Shot 2018-04-18 at 9.17.41 AM.png

Remove AppleALC.kext. Rebuild kextcache: Terminal:
Code:
sudo touch /System/Library/Extensions && sudo kextcache -u /
Save Terminal Output

The reason for no HDMI audio, with the working AppleHDAController, is the Nvidia Web driver.

Restart, Reply with new IOReg and Terminal Output.
 

h9826790

macrumors G5
Apr 3, 2014
14,107
6,731
Hong Kong
Kext patch procedure is correct.
Native AppleALC.kext v1.2.6 does not include the AppleHDAController patch for your graphics card, useless.
Do not combine the binary patch with AppleALC.kext, KP possible.
For the 1080Ti's audio controller, you selected the video device, not the audio controller: pcie10de,10ef

The attached IOReg ("patched AppleHDAController with the AppleALC 1.2.6 release") shows AppleHDAController loading, working. Reason, patched binary.
View attachment 758784

Remove AppleALC.kext. Rebuild kextcache: Terminal:
Code:
sudo touch /System/Library/Extensions && sudo kextcache -u /
Save Terminal Output

The reason for no HDMI audio, with the working AppleHDAController, is the Nvidia Web driver.

Restart, Reply with new IOReg and Terminal Output.
Thanks for providing the procedures. Will do that once I back to home.

Question:

Should I remove the Lilu.kext and the NvidiaGraphicsFixup.kext as well?

P.S. I realised that I was selecting the video device on the PCIe page, because what I wanted to show is just the "driver installed" is yes. Anyway, here is the audio device details.
Screen Shot 2018-04-19 at 04.01.31.png
 
Last edited:

h9826790

macrumors G5
Apr 3, 2014
14,107
6,731
Hong Kong
I just removed all AppleALC, Lilu, and NvidiaGraphicsFix kext.

kextcache rebuilded
Screen Shot 2018-04-19 at 04.13.12.png


The binary still patched

HDMI Audio installed

PCI info same as above (shows Audio Controller driver installed), but not working yet

And the attachment is the IOReg.
 

Attachments

cdf

macrumors 6502a
Jul 27, 2012
772
623
Audio now works on my GTX 750 Ti with AppleALC and NvidiaGraphicsFixup. For posterity, I've described the procedure below.

1) Install NvidiaGraphicsFixup.kext and Lilu.kext.

2) Obtain the path to HDAU in IORegistryExplorer:

1.png


In my case, the path was AppleACPIPCI/IOU0/IOPP/HDAU.

3) Add the path to CodecLookup.plist in the source of AppleALC (unless the information is already included):

2.png


4) Form the codec ID by appending de10 (the Nvidia vendor ID) to the device ID that appears under HDAU in IORegistryExplorer:

3.png


In my case, the complete ID is de10bc0f.

5) Form the decimal name of the codec. In my case, the name is 4028 (decimal for 0x0fbc).

6) For completeness, find the chip number of the GPU. In my case, the number is GM107 (according to the Wikipedia article on the Maxwell architecture).

7) Include the complete ID, decimal name, and chip number to Controllers.plist in the source of AppleALC (unless the information is already included):

4.png


(The only case-specific entries are "Device," "Name," and "Replace.")

8) Rebuild AppleALC (making sure to include the debug version of Lilu.kext in the top-level folder of the source).

9) Install AppleALC.kext.

See also the AppleALC guide.
 

toleda

macrumors newbie
Jan 20, 2010
24
6
kextcache rebuilded
PCI info same as above (shows Audio Controller driver installed), but not working yet
And the attachment is the IOReg.
Expected
10.13.4 AppleHDAController is working
IOReg shows the issue with Nvidia Web driver and Pascal:
If using DP, try other DP ports.
If HDMI, acquire DP2HDMI adapter (for 4K display, an adapter required)
Reply with new IOReg
 

tu2thepoo

macrumors member
Nov 14, 2017
75
58
For anyone not wanting to edit kexts or do IOreg dumps*, I got HDMI audio working again with these downloads:

I did the following:
  1. Download jch's copy of the 10.13.3 AppleHDA
  2. Moved my current system/library/extensions AppleHDA kext (that is, the 10.13.4 version) to the trash**
  3. Copied the 10.13.3 appleHDA file and kextbeast to my desktop
  4. Ran kextbeast and installed the 10.13.3 appleHDA file to S/L/E
  5. Re-ran HDMIaudio 1.1 install.sh
  6. Reboot

Everything is peachy on my Geforce 1060's HDMI output:
Screen Shot 2018-04-20 at 12.23.47 PM.png

Screen Shot 2018-04-20 at 12.23.34 PM.png

Screen Shot 2018-04-20 at 12.22.58 PM.png

You could supply your own copy of AppleHDA.kext by doing a backup of 10.13.3 before updating, but I didn't know that this was an issue until after the fact :D

* But for real, big props to h9826790 for diving into all of that and toleda for dropping all the knowledge. I'm just not good at any of that stuff.

** Kextbeast doesn't seem to overwrite any existing files with the same name, which sounds like a good safety feature to me. Just didn't realize that until I tried it a few times.
 
  • Like
Reactions: Susurs

h9826790

macrumors G5
Apr 3, 2014
14,107
6,731
Hong Kong
Expected
10.13.4 AppleHDAController is working
IOReg shows the issue with Nvidia Web driver and Pascal:
If using DP, try other DP ports.
If HDMI, acquire DP2HDMI adapter (for 4K display, an adapter required)
Reply with new IOReg
Thanks for the suggestion. I just back home and try different DP. YOU ARE SPOT ON!

There are 3 DP on my reference 1080Ti. The left most port's audio works with simple binary patch.
Screen Shot 2018-04-21 at 17.14.20.png


Screen Shot 2018-04-21 at 17.17.44.png
 

Attachments

Susurs

macrumors 65816
Jun 18, 2010
1,229
6,505
For anyone not wanting to edit kexts or do IOreg dumps*, I got HDMI audio working again with these downloads:

I did the following:
  1. Download jch's copy of the 10.13.3 AppleHDA
  2. Moved my current system/library/extensions AppleHDA kext (that is, the 10.13.4 version) to the trash**
  3. Copied the 10.13.3 appleHDA file and kextbeast to my desktop
  4. Ran kextbeast and installed the 10.13.3 appleHDA file to S/L/E
  5. Re-ran HDMIaudio 1.1 install.sh
  6. Reboot

Everything is peachy on my Geforce 1060's HDMI output:
View attachment 759099

View attachment 759097

View attachment 759096

You could supply your own copy of AppleHDA.kext by doing a backup of 10.13.3 before updating, but I didn't know that this was an issue until after the fact :D

* But for real, big props to h9826790 for diving into all of that and toleda for dropping all the knowledge. I'm just not good at any of that stuff.

** Kextbeast doesn't seem to overwrite any existing files with the same name, which sounds like a good safety feature to me. Just didn't realize that until I tried it a few times.
Thank’s a lot! Finally I got it working on GTX 980.
Sound is ok when I use DP to HDMI adapter. No sound straight from HDMI out but anyway... :)
 

toleda

macrumors newbie
Jan 20, 2010
24
6
Thanks for the suggestion.
One more suggestion, IOReg shows AppleGraphicsPowerManagement.kext is not loading. Make an injector kext to support Pascal graphics with the MacPro5,1 sysdef, search: macOS Native Discrete GPU Power Management.
[doublepost=1524414663][/doublepost]
Thank’s a lot! Finally I got it working on GTX 980.
Sound is ok when I use DP to HDMI adapter. No sound straight from HDMI out but anyway
Nvidia web driver supports sound on all connectors for Fermi/Kepler/Maxwell graphic's cards (except 450,550,560). For Pascal graphics cards, only one DP supports sound and not always.

Your requirement for for a 980 DP2HDMI adapter is not a Nvidia Web driver problem, likely, a HDMIAudio.kext problem.
 

h9826790

macrumors G5
Apr 3, 2014
14,107
6,731
Hong Kong
One more suggestion, IOReg shows AppleGraphicsPowerManagement.kext is not loading. Make an injector kext to support Pascal graphics with the MacPro5,1 sysdef, search: macOS Native Discrete GPU Power Management.
[doublepost=1524414663][/doublepost]
Nvidia web driver supports sound on all connectors for Fermi/Kepler/Maxwell graphic's cards (except 450,550,560). For Pascal graphics cards, only one DP supports sound and not always.

Your requirement for for a 980 DP2HDMI adapter is not a Nvidia Web driver problem, likely, a HDMIAudio.kext problem.
Thanks for the suggestion, that's beyond my knowledge at this moment. I can learn how to do that, no problem.

However, may I know what can I expect if I successfully load the AppleGraphicsPowerManagement.kext? My GPU's power management seems OK with the Nvidia web driver.
 

leendertstruik

macrumors newbie
Jul 29, 2011
22
2
For anyone not wanting to edit kexts or do IOreg dumps*, I got HDMI audio working again with these downloads:

I did the following:
  1. Download jch's copy of the 10.13.3 AppleHDA
  2. Moved my current system/library/extensions AppleHDA kext (that is, the 10.13.4 version) to the trash**
  3. Copied the 10.13.3 appleHDA file and kextbeast to my desktop
  4. Ran kextbeast and installed the 10.13.3 appleHDA file to S/L/E
  5. Re-ran HDMIaudio 1.1 install.sh
  6. Reboot

Everything is peachy on my Geforce 1060's HDMI output:
View attachment 759099

View attachment 759097

View attachment 759096

You could supply your own copy of AppleHDA.kext by doing a backup of 10.13.3 before updating, but I didn't know that this was an issue until after the fact :D

* But for real, big props to h9826790 for diving into all of that and toleda for dropping all the knowledge. I'm just not good at any of that stuff.

** Kextbeast doesn't seem to overwrite any existing files with the same name, which sounds like a good safety feature to me. Just didn't realize that until I tried it a few times.
[doublepost=1524475655][/doublepost]Awesome, that worked for me! I was following this tread for a while now and this is the only thing that works for me :) Working with HDMI directly.
Schermafbeelding 2018-04-23 om 11.21.14.png
Schermafbeelding 2018-04-23 om 11.24.47.png
 
  • Like
Reactions: tu2thepoo

toleda

macrumors newbie
Jan 20, 2010
24
6
However, may I know what can I expect if I successfully load the AppleGraphicsPowerManagement.kext? My GPU's power management seems OK with the Nvidia web driver.
VBIOS manages thermal limit by increasing fan speed or reducing frequency. The Nvidia web deriver has no PM. Fermi and previous use thresholds; Kepler, Maxwell and Pascal use P states. Setting AGPM.kext/Sysdef/Heuristic-ID: 4 sets macOS/Nvidia p state PM.
 

h9826790

macrumors G5
Apr 3, 2014
14,107
6,731
Hong Kong
VBIOS manages thermal limit by increasing fan speed or reducing frequency. The Nvidia web deriver has no PM. Fermi and previous use thresholds; Kepler, Maxwell and Pascal use P states. Setting AGPM.kext/Sysdef/Heuristic-ID: 4 sets macOS/Nvidia p state PM.
I see.

So, even system info shows AGPM.kext is loaded, but it isn't working properly at this moment. Is that correct?
Screen Shot 2018-04-25 at 03.12.49.png
 

cdf

macrumors 6502a
Jul 27, 2012
772
623
I wonder if proper PM would address the notorious PS and PCI fan bug. It had been hypothesized that the bug was related to GPU power states.
 

Susurs

macrumors 65816
Jun 18, 2010
1,229
6,505
For anyone not wanting to edit kexts or do IOreg dumps*, I got HDMI audio working again with these downloads:

I did the following:
  1. Download jch's copy of the 10.13.3 AppleHDA
  2. Moved my current system/library/extensions AppleHDA kext (that is, the 10.13.4 version) to the trash**
  3. Copied the 10.13.3 appleHDA file and kextbeast to my desktop
  4. Ran kextbeast and installed the 10.13.3 appleHDA file to S/L/E
  5. Re-ran HDMIaudio 1.1 install.sh
  6. Reboot

Everything is peachy on my Geforce 1060's HDMI output:
View attachment 759099

View attachment 759097

View attachment 759096

You could supply your own copy of AppleHDA.kext by doing a backup of 10.13.3 before updating, but I didn't know that this was an issue until after the fact :D

* But for real, big props to h9826790 for diving into all of that and toleda for dropping all the knowledge. I'm just not good at any of that stuff.

** Kextbeast doesn't seem to overwrite any existing files with the same name, which sounds like a good safety feature to me. Just didn't realize that until I tried it a few times.
Does it still work with the security update?
 

Susurs

macrumors 65816
Jun 18, 2010
1,229
6,505
I did SMC reset and CMD+OPTION+P+R due to some other issues, and the sound was lost for some reason on 10.13.4... It shows no input/output devices at all. Putting back default HDA - gives me standart sound (HDMI/DP does not work) but installing new 10.13.3. kext again (which was working previously) removes any sound input/output devices.... :(

Removing/enabling HDMIaudio does not change anything.
[doublepost=1524636466][/doublepost]P.S. On 10.12.6 HDMIaudio works but booting into another installation and then back to 10.12.6 disables HDMI sound for some reason. Reinstalling solves this until reboot to other partition again.
 
Last edited:

h9826790

macrumors G5
Apr 3, 2014
14,107
6,731
Hong Kong
I did SMC reset and CMD+OPTION+P+R due to some other issues, and the sound was lost for some reason on 10.13.4... It shows no input/output devices at all. Putting back default HDA - gives me standart sound (HDMI/DP does not work) but installing new 10.13.3. kext again (which was working previously) removes any sound input/output devices.... :(

Removing/enabling HDMIaudio does not change anything.
[doublepost=1524636466][/doublepost]P.S. On 10.12.6 HDMIaudio works but booting into another installation and then back to 10.12.6 disables HDMI sound for some reason. Reinstalling solves this until reboot to other partition again.
PRAM reset will enable SIP, which disable all unsigned 3rd party kext.

Try disable SIP, it may work again.
 
  • Like
Reactions: Susurs

Susurs

macrumors 65816
Jun 18, 2010
1,229
6,505
PRAM reset will enable SIP, which disable all unsigned 3rd party kext.

Try disable SIP, it may work again.
Oh great! Will definitely try to. I thouht I might need to reinstall the system.
Does 10.13.3. HDA in 10.13.4. counts as unsigned as well?
[doublepost=1524640570][/doublepost]P.S. Do you have any possible hint why HDMI sound gets disabled on 10.12.6 every time I reboot to another partition and back?
 

Laeghaire

macrumors newbie
Apr 25, 2018
1
0
KUDOS:


I did the following:
  1. Download jch's copy of the 10.13.3 AppleHDA
  2. Moved my current system/library/extensions AppleHDA kext (that is, the 10.13.4 version) to the trash**
  3. Copied the 10.13.3 appleHDA file and kextbeast to my desktop
  4. Ran kextbeast and installed the 10.13.3 appleHDA file to S/L/E
  5. Re-ran HDMIaudio 1.1 install.sh
  6. Reboot

this is the only working solution I had tried the HDMIaudio kext several time the key was indeed to replace the apple kext to the older version.

Many thanks this was driving me nuts so many different posts this one simple helped

Works on EVGA Geforce 980 TI SC+ on Mac Pro 5.1
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.