Jump to content

Realtek ALC AppleHDA Audio Injection


toleda
 Share

133 posts in this topic

Recommended Posts

OS X Realtek ALC885 through ALC1150 Onboard Audio

 

Realtek ALC AppleHDA Audio Injection enables OS X Realtek ALC onboard audio on Intel based motherboards with a bootable clean install of OS X.  Two steps are required; 1. Install Realtek ALC Injection and 2. Edit the native AppleHDA.kext.  This guide provides the injection choices and installation details.

 

Update 3/21/2014 - Added Mavericks, ALC1150, fifth Realtek ALC Injection technique, updated Clover injection

Update 8/27/2013 - Added a fourth Realtek ALC Injection technique, SSDT.aml. No kext maintenance (permissions, kernel cache, etc.) and no dsdt edits (native dsdt).

 

Realtek ALC AppleHDA Onboard Audio Injection Repo

toleda/audio_ALCInjection

 

Realtek ALC AppleHDA Guides

1. [Guide]-Add_HDEF-Clover.pdf

2. [Guide]-Add_HDEF-kext.pdf

3. [Guide]-Add_HDEF-ssdt.pdf

4. [Guide]-Add_or_Edit_HDEF-dsdt.pdf

5. M-Realtek_ALC_AppleHDA_Capabilities.pdf.zip

6. M-Realtek_ALC_AppleHDA_Customization.pdf.zip

7. M-Realtek_ALC_AppleHDA_Screenshots.pdf.zip

8. M-Realtek_ALC_AppleHDA-No_Audio.pdf.zip

 

Supported Realtek audio codecs

1. ALC885

2. ALC887

3. ALC888 

4. ALC889 

5. ALC892

6. ALC898

7. ALC1150

 

Supported OS X releases

1. Mavericks: 10.9+

2. Mountain Lion: 10.8+

 

Three Realtek ALC AppleHDA.kext Audio_IDs, select one

Audio_ID: 1 supports 5 and 6 port ALC8xx onboard and/or AMD/Nvidia HDMI audio  

Audio_ID: 2 supports 3 port ALC8xx onboard and/or AMD/Nvidia HDMI audio

Audio_ID: 3 supports 3, 5 and 6 port ALC8xx onboard HD4K/HD3K HDMI audio

with or without AMD/Nvidia HDMI audio

 

Audio_IDs: 1 and 2 support analog 5.1 surround sound, 3 does not

Audio_IDs: 1, 2 and 3 require HDMI audio dsdt edits for HDMI audio

 

Note: The native AppleHDA.kext supports HDMI audio (dsdt edits required, no onboard audio) with an unsupported onboard audio codec using Audio ID: 1.

 

Techniques to enable the Realtek ALC AppleHDA.kext, select one and install

1. No dsdt/audio enabler = Audio_ID, toleda/audio_kext_enabler  Note: install either enabler (use 1a or 1b, not both)

1a. Audio_ID = 1/HDAEnabler1.kext

audio_kext_enabler/HDAEnabler1.kext.zip at master · toleda/audio_kext_enabler

1b. Audio_ID = 2/HDAEnabler2.kext 

audio_kext_enabler/HDAEnabler2.kext.zip at master · toleda/audio_kext_enabler

 

2. dsdt/HDEF/layout-id = Audio_ID, see [Guide]-Add_or_Edit_HDEF-dsdt.pdf

2a. Audio_ID = 1/layout-id: 0x01, 0x00, 0x00, 0x00, 0x00

2b. Audio_ID = 2/layout-id: 0x02, 0x00, 0x00, 0x00, 0x00

2c. Audio_ID = 3/layout-id: 0x03, 0x00, 0x00, 0x00, 0x00

 

3. ssdt/HDEF/layout-id = Audio_IDssdt_hdef, see {Guide} Add ssdt/HDEF.pdf

3a. Audio_ID = 1/layout-id: 0x01, 0x00, 0x00, 0x00, 0x00

ssdt_hdef-1-with_ioreg:hdef.zip

ssdt_hdef-1-no_ioreg:hdef.zip

ssdt_hdef-1-x99_alza.zip

3b. Audio_ID = 2/layout-id: 0x02, 0x00, 0x00, 0x00, 0x00

ssdt_hdef-2-with_ioreg:hdef.zip

ssdt_hdef-2-no_ioreg:hdef.zip

3c. Audio_ID = 3, see audio_ssdt-HDMI_audio

 

4. Clover/Config.plist/Devices/Audio/Inject = Audio_ID, see [Guide]-Add_HDEF-Clover.pdf.

4a. Audio_ID = 1/Audio/Inject=1

4b. Audio_ID = 2/Audio/Inject=2

4c. Audio_ID = 3/Audio/Inject=3

 

5. Chameleon/Customize/Setting/HDEF Layout//LayoutID = Audio_ID

5a. Audio_ID = 1/LayoutID=1
5b. Audio_ID = 2/LayoutID=2
5c. Audio_ID = 3/NA

 

ALCInjection/Realtek ALC AppleHDA.kext

1. Yosemite/10.10+, see Yosemite: Audio - Realtek ALC AppleHDA - AppleHDA - InsanelyMac Forum

2. Mavericks/10.9+, see Mavericks Realtek ALC AppleHDA Audio - OSx86 10.9 (Mavericks)

3. Mountain Lion 10.8+, see Mountain Lion Realtek ALC AppleHDA Audio - OSx86 10.8 (Mountain Lion)

4. Mountain Lion/10.8.4 AppleHDA.kext_v2.3.7, see Audio - InsanelyMac Forum

 

Troubleshooting

1.  toleda/audio_ALCInjection M-Realtek_ALC_AppleHDA-No_Audio.pdf

 

Problem Reporting

1. Description of audio problem

2, OS X version/motherboard model/BIOS version/processor/graphics

3. Procedure/Guide Used

4. Copy of IOReg - IOReg_v2.1/File/Save a Copy As…, verify file (no ioreg.txt)

5. Screen shots:

1. DPCIManager

2. System Information/Hardware/Audio/Intel High Definition Audio (not Devices)

6. System/Library/Extensions/AppleHDA.kext

7. System/Library/extensions/AppleHDAxxx.kext (if installed)

8. Chameleon

1. Extra/org.chameleon.Boot.plist

2. DPCIManager/Misc/Boot Log

3. Extra/dsdt.aml (if installed) 

4. Extra/ssdt.aml (if installed)

9. Clover

1. EFI/Clover/config.plist

2. EFI/Clover/misc/debug.log (Set config.plist/Boot/Debug/YES)

3. EFI/Clover/ACPI/Patched/dsdt.aml (if installed) 

4. EFI/Clover/ACPI/Patched/ssdt.aml (if installed)

 

Credit

THe KiNG [HOW TO] Patch AppleHDA - Knowledge Base - Project OS X Forums

VHC888  ALC889A, Gigabyte (Intel): now having a working front mic - InsanelyMac Forum

PikeRAlpha Intel HD4600 with full resolution | Pike's Universum

bcc9 Intel HD Graphics 4600 (Haswell) working displayport - OSx86 10.9 (Mavericks) - InsanelyMac Forum

  • Like 13
Link to comment
Share on other sites

  • 1 month later...

Update 8/27/2013 - Added a fourth Realtek ALC Injection technique, SSDT.aml. No kext maintenance (permissions, kernel cache, etc.) and no dsdt edits (native dsdt). In addition, Audio_ID = 12, injection available.

 

Credit: bcc9

Link to comment
Share on other sites

  • 2 weeks later...

Great compilation of your audio resources Toleda!

 

I just tried to use the SSDT for ALC898 and did not notice anything injected via System Profiler or IOReg.  Should HDEF not be injected and no pinconfigurations info showing up in System Profiler?

 

I am not your intended audience since this is an X79 board and I need to use the Interim AppleHDA, but I just changed your SSDT to inject 382 instead and assumed that would work.

 

When it did not I cobbled together my own (ugly) SSDT and it works as I would expect.  Here is what I did, but yours is much more elegant and I would prefer to get it working.  What am I missing?

 

I have no DSDT if that matters.

 

 
 
 
External (\_SB_.PCI0, DeviceObj)
    Scope (\_SB.PCI0)
    {
        Device (HDEF)
        {
            Name (_ADR, 0x001B0000)
            Method (_DSM, 4, NotSerialized)
            {
                Store (Package (0x06)
                    {
                        "hda-gfx", 
                        Buffer (0x0A)
                        {
                            "onboard-3"
                        }, 
                        "layout-id", 
                        Buffer (0x04)
                        {
                            0x82, 0x03, 0x00, 0x00
                        }, 
                        "PinConfigurations", 
                        Buffer (Zero) {}
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }
        }
    }
    Method (DTGP, 5, NotSerialized)
    {
        If (LEqual (Arg0, Buffer (0x10)
                {
                    /* 0000 */    0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44, 
                    /* 0008 */    0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
                }))
        {
            If (LEqual (Arg1, One))
            {
                If (LEqual (Arg2, Zero))
                {
                    Store (Buffer (One)
                        {
                            0x03
                        }, Arg4)
                    Return (One)
                }
                If (LEqual (Arg2, One))
                {
                    Return (One)
                }
            }
        }
        Store (Buffer (One)
            {
                0x00
            }, Arg4)
        Return (Zero)
    }
}

 

Link to comment
Share on other sites

 

When it did not I cobbled together my own (ugly) SSDT and it works as I would expect.  Here is what I did, but yours is much more elegant and I would prefer to get it working.  What am I missing?

 


            Method (_DSM, 4, NotSerialized)
            {
                Store (Package (0x04)
                    {
                        "layout-id", 
                        Buffer (0x04)
                        {
                            0x82, 0x03, 0x00, 0x00
                        }, 
                        "PinConfigurations", 
                        Buffer (Zero) {}

 

There is no functional difference between the two edits.  There was likely a permissions/cache problem.  Perhaps if you tried the layout-id edit again, it would work.   In your solution, hda-gfx injection is not necessary as you don't have HD3K or HD4K HDMI audio.  

Link to comment
Share on other sites

  • 2 weeks later...
  • 3 weeks later...

Any estimate on when you will be updating this and the patch system for injection in 10.9 GM HDA? I am pretty sure something has changed since using the 10.8.5 modified kext results in dropped sound and some audio corruption. Using DSDT injection method with patched AppleHDA for the other half of injection. Tried VoodooHDA but never liked that solution, audio levels are strange, sometimes there is popping, and jack detect doesn't get passed. :(

Link to comment
Share on other sites

  • 3 weeks later...

Hi Toleda, 

thank you for your awesome work on those tutorials. But sadly I'm still struggling with my Gigabyte EX-58 UD5 with  10ec0885 - ALC885/ALC889a chipset and my old Sapphire HD4870 (DVI, HDMI and VGA outputs) in Mavericks.

-Problem: No sound options are showing in system preferences.

 

-I'm using clover r2236:

In config.plist/ACPI/DSDT/Fixes/FixHDA_8000 - YES

In Devices/Audio/Inject - 1

I let clover apply the fixes on the fly and don't have any DSDT present. I don't drop any SSDT tables.

 

- HDEF, HDAU etc are showing in IOReg correctly (layout-id <10 00 00 00>

30/10/13 11:59:28,000	kernel[0]	Sound assertion in AppleHDAController at line 1303
30/10/13 11:59:41,000	kernel[0]	Sound assertion in AppleHDADriver at line 1525
30/10/13 11:59:41,000	kernel[0]	Sound assertion in AppleHDADriver at line 2193
30/10/13 11:59:41,000	kernel[0]	Sound assertion in AppleHDADriver at line 207
30/10/13 11:59:41,000	kernel[0]	Sound assertion in AppleHDADriver at line 1084
 

Link to IOREG: https://www.dropbox.com/s/uar29sqhzgu5glj/MAXIM%E2%80%99s%20iMac.ioreg

 

Attached: - Screenshot of System Information/Hardware/Audio/Intel High Definition Audio (not Devices)

 

 

Not attached: Screenshot of System Information/Hardware/Graphics/Displays because I'm also struggling to HDMI video to work. As soon as I plug the hdmi cable in, I get video corruptions on the TV (hdmi) and my DVI monitor goes black.

Do I have to fix my issues with hdmi video first?

 

If you need more information, I will provide them asap.

 

Thank you for your help!

Maxim

post-387347-0-98279000-1383133120_thumb.png

Link to comment
Share on other sites

Toleda,

 

I also want to thank you for the incredible amount of work you have put into this project.

 

Hoping you might be able to help me out as well if you get a moment.

 

I'm using a fresh install of Mavericks and Clover 2236 to boot EFI on a 2009 era Acer system, motherboard is a G45T-M2. 

 

Also similar to the poster above...

 

-I'm using clover r2236:

In config.plist/ACPI/DSDT/Fixes/FixHDA_8000 - YES

In Devices/Audio/Inject - 1

I let clover apply the fixes on the fly and don't have any DSDT present. I don't drop any SSDT tables.

 

DCPI Manager reports my card as Realtek ALC88S-VD, Audio Device 0x80863A3E, Sub Device 0x10250152, Codec 0x10EC0888, Revision 0x202.

 

I've tried all 3 injections (1-2-3) in Clover to no avail.  I also now see a "Null Codec" as well as an NVidia GT21x HDMI Codec (repeating 4 times) since I switched to Clover.

 

Still no devices listed for output other than Airplay.  HDEF looks correct in IOReg.

 

What do you need me to attach as evidence or anything that might help troubleshoot?

Link to comment
Share on other sites

 

-Problem: No sound options are showing in system preferences.

 

Injection is working.  Looks like the native AppleHDA,kext is loading. See Mavericks Realtek ALC AppleHDA Audio - OSx86 10.9 (Mavericks) - InsanelyMac Forum for the 885 patched AppleHDA.kext.

 

Still no devices listed for output other than Airplay.  HDEF looks correct in IOReg.

 

HDEF isn't right but there is no IOReg attached to confirm.  

Link to comment
Share on other sites

Thanks for your answer toleda. I ran the provided .command for Mavericks and left both 

 

In config.plist/ACPI/DSDT/Fixes/FixHDA_8000 - YES

In Devices/Audio/Inject - 1

 

activated. Now everything works :)

post-387347-0-42832700-1383336096_thumb.png

Link to comment
Share on other sites

Hey could I get some help. Running lion works fine but no sound tried voodoo and different kexts but no luck.

 

VIA VT1708S

And I use a hd 5750 gcard

 

Just want the sound to come out of my monitor speakers any help would be great Ty.

Link to comment
Share on other sites

HDEF isn't right but there is no IOReg attached to confirm.  

 

Toleda,

 

Thanks so much for responding!  It's an honor to hear from you.

 

I have no kexts loaded at all as I was reading that Clover doesn't require any, but I could be mistaken.  So no AppleHDA or ALC kexts at all anywhere.

 

I've attached my IOReg here:

 

http://www.sendspace.com/file/xa737s

 

Please let me know what else I can supply in the hopes of troubleshooting my ALC888S.  Using the latest Clover with the following in the config (I have tried booting with detect set to 1, 2 or 3 with the same results):

 

<key>FixHDA_8000</key>
<true/>


...


<dict>
<key>Inject</key>
<false/>
<key>Audio</key>
<dict>
<key>Inject</key>
<string>Detect</string>
</dict>

I'm trying to keep the desktop as Vanilla as possible so the only kext I loaded was FakeSMC.kext, the rest I let Clover load on the fly (did not create my own DSDT).  

 

What other things, like screenshots, can I show you that might allow you to help?  Thanks so much.

 
Link to comment
Share on other sites

VIA VT1708S

And I use a hd 5750 gcard

Nothing in this thread can help you with the VIA.  Other than USB, the only other option is 5770 HDMI audio which works with the native AppleHDA.kext.  See Mavericks AppleHDA HDMI Audio - OSx86 10.9 (Mavericks) - InsanelyMac Forum

 

I have no kexts loaded at all as I was reading that Clover doesn't require any, but I could be mistaken.  So no AppleHDA or ALC kexts at all anywhere.

 

Please let me know what else I can supply in the hopes of troubleshooting my ALC888S.  Using the latest Clover with the following in the config (I have tried booting with detect set to 1, 2 or 3 with the same results):

 

At this time, there is no way to inject compressed layouts and pathmaps with Clover.  If you want Realtek onboard audio, a patched S/L/E/AppleHDA.kext is required.

 

What is your motherboard?  Regarding your 888S, you have the null codec which disables AppleHDA.kext audio. Only AppleHDA.kext solution is a different motherboard.  

Link to comment
Share on other sites

What is your motherboard?  Regarding your 888S, you have the null codec which disables AppleHDA.kext audio. Only AppleHDA.kext solution is a different motherboard.

 

motherboard is a G45T-M2. It's a stock Acer desktop era 2009.

 

DCPI manager reported ALC888S. If that's really what I have and you are telling me there is no way to get audio I can stop the pursuit. Is that the case? I did have VoodooHDA working poorly on Lion but never AppleHDA. Was hoping your files might help.

Link to comment
Share on other sites

 Share

×
×
  • Create New...