Jump to content
4 posts in this topic

Recommended Posts

EFI.zipASUS P8P67, Sandy Bridge, i7-2700K
Old machine, but too good to throw away.

So I installed Monterey. It runs very well. B U T:
I only get HDMI audio.

The Realtek ALC892 controller does not appear in macOS.

I extracted the SSDTs with SSDTTime in Windows on the same machine.
I also tried various alcid=?? boot arguments.

At the moment it looks like this:

 
 
ioreg -l -p IOService -n HDEF | grep -E "alc-layout|layout-id|codec"

| | | | | | "audio-codec-info" = <00010500>

| | | | "layout-id" = <07000000>

| | | | "vendorcodecID" = 282984512

| | | | "layout-id" = <07000000>

| | | | "alc-layout-id" = <01000000>



ioreg -l | grep -A20 "HDEF" | grep -E "layout-id|alc-layout-id"

| | | | "layout-id" = <07000000>
 

In config.plist, the Boot Args contain:

 
 
alcid=1
 

I have no idea where the "layout-id" = <07000000> is coming from — probably from the BIOS DSDT.aml?

I found several posts online where people with similar setups used VoodooHDA instead of AppleALC, but I could not get that working either.

Does anyone know a solution for getting the ALC892 working properly in Monterey?

The HD Audio controller works perfectly fine in Windows.

 

I tried the following methods:

  1. Boot argument alcid=xx
  2. Device Properties injection
  3. SSDT-Audio-Universal

But none of them really worked.
The audio controller still does not appear in macOS Monterey.

config.plist

I found the problem, but no solution yet:
The problem is most likely not AppleALC itself, but the old ASUS 3602 (any 3xxx) BIOS of the P8P67 series.
These BIOS versions apparently provide the macOS audio driver with an incorrect PCI ID or a "phantom codec". Therefore, AppleHDAController does not load correctly, even though your ALC892 is physically present.
The critical part is here:
Code
pci8086,9d70
This is a newer Intel HDA controller ID that AppleHDA recognizes.
However, your Sandy Bridge P67 chipset uses:
Code
pci8086,1c20
The hack is to force AppleHDAController.kext to accept 1c20 as well.
The solution is either to write a kernel patch in the config.plist, patch the BIOS file, or downgrade to BIOS version 2xxxx.
As soon as I have a solution, I will post it here.
Posted (edited)

The Problem: “Phantom Codec” on ASUS P8P67 (BIOS ≥ 3602)

With BIOS versions 3xxx (for example 3602), ASUS added a second, non-existent HD audio codec to the ACPI/DSDT tables.
AppleHDAController detects two codecs and refuses to bind the specialized personality BuiltInHDA9D70 (used by many Intel controllers) to the actual HDA controller pci8086,1c20.

Instead, only the generic BuiltInHDA personality using the base class AppleHDAController is loaded. As a result, the internal audio inputs and outputs (Line-Out, headphones, microphone) remain silent.

The Solution

A codeless companion kext that provides its own IOKit personality, directly binding the specialized controller driver AppleHDA8086_9D70Controller to pci8086,1c20 with a higher priority (IOProbeScore).

This bypasses the phantom codec entirely.

Instructions are generated with the help of AI and can contain errors.


Step 1: Create the Companion Kext

Open Terminal in macOS.

Create the kext folder structure:

 
 
mkdir -p ~/Desktop/HDA1C20Fix.kext/Contents
 

Create the Info.plist using nano:

 
 
nano ~/Desktop/HDA1C20Fix.kext/Contents/Info.plist
 

Copy the following content completely into the file:

 
 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>

    <key>CFBundleDevelopmentRegion</key>
    <string>English</string>

    <key>CFBundleIdentifier</key>
    <string>com.hackintosh.HDA1C20Fix</string>

    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>

    <key>CFBundleName</key>
    <string>HDA1C20Fix</string>

    <key>CFBundlePackageType</key>
    <string>KEXT</string>

    <key>CFBundleShortVersionString</key>
    <string>1.0.0</string>

    <key>CFBundleSignature</key>
    <string>????</string>

    <key>CFBundleVersion</key>
    <string>1.0.0</string>

    <key>IOKitPersonalities</key>
    <dict>
        <key>HDA1C20Fix</key>
        <dict>
            <key>CFBundleIdentifier</key>
            <string>com.apple.driver.AppleHDAController</string>

            <key>IOClass</key>
            <string>AppleHDA8086_9D70Controller</string>

            <key>IONameMatch</key>
            <string>pci8086,1c20</string>

            <key>IOProbeScore</key>
            <integer>4</integer>

            <key>IOProviderClass</key>
            <string>IOPCIDevice</string>
        </dict>
    </dict>

    <key>OSBundleLibraries</key>
    <dict>
        <key>com.apple.iokit.IOPCIFamily</key>
        <string>1.0.0</string>

        <key>com.apple.kpi.iokit</key>
        <string>16.0</string>
    </dict>

</dict>
</plist>
 

Save and close:

  • Press Ctrl + X
  • Then Y
  • Then Enter

Your companion kext is now ready on the desktop:

 
 
~/Desktop/HDA1C20Fix.kext
 

Step 2: Add the Kext to OpenCore

Copy the kext into the OpenCore folder

Drag HDA1C20Fix.kext from the desktop into:

 
 
EFI/OC/Kexts
 

Alternatively via Terminal:

 
 
cp -R ~/Desktop/HDA1C20Fix.kext /Volumes/EFI/EFI/OC/Kexts/
 

Add it to config.plist

Open your config.plist (for example with ProperTree, PlistEdit Pro, or Xcode) and add the following entry under:

 
 
Kernel -> Add
 
 
 
<dict>
    <key>BundlePath</key>
    <string>HDA1C20Fix.kext</string>

    <key>Enabled</key>
    <true/>

    <key>ExecutablePath</key>
    <string></string>

    <key>PlistPath</key>
    <string>Contents/Info.plist</string>
</dict>
 

Make sure the entry is placed among the other kext entries and that Enabled is set to true.


Step 3: Set the Layout ID in boot-args

The correct layout ID for the P8P67 is:

 
 
7
 

(In some cases, 1, 2, 3, or 12 may also work — but on your board it was definitely 7.)

Open the following section in config.plist:

 
 
NVRAM -> Add -> 7C436110-AB2A-4BBB-A880-FE41995C9F82
 

Find the key:

 
 
boot-args
 

Modify the value so it contains:

 
 
alcid=7
 

Example:

 
 
keepsyms=1 debug=0x100 alcid=7
 

The important part is that alcid=7 is present.

If another alcid=... value already exists, replace it.


Step 4: Reboot and Verify

Reboot and boot into OpenCore.

Open Terminal and verify that the personality is active:

 
 
ioreg -l -p IOService -n HDEF | grep -E "IOPersonalityPublisher|IOClass"
 

You should see:

 
 
| "IOPersonalityPublisher" = "com.hackintosh.HDA1C20Fix"
| "IOClass" = "AppleHDA8086_9D70Controller"
 

Check audio outputs

 
 
system_profiler SPAudioDataType | grep -A5 "Internal Speakers"
 

You should now see entries such as:

  • Internal Speakers
  • Line-Out
  • Headphones
  • Microphone

These should also appear in the macOS System Report under Audio.


Why This Kext Remains Invisible

HDA1C20Fix.kext is a codeless kext — it contains only an Info.plist and no executable binary.

Therefore, it does not appear in kextstat. This is completely normal and not an error.

What matters is only the injected IOKit personality (verified with the ioreg check above).


Additional Notes

No BIOS Downgrade Required

You can keep BIOS version 3602.

AppleALC Is Still Required

The companion kext does not replace AppleALC.

It only ensures that the correct controller driver loads properly.
AppleALC still provides the pin configuration for layout 7.

Audio Problems After Sleep?

If audio disappears after waking from sleep, additionally install:

 
 
CodecCommander.kext
 

This stabilizes codec power states.

In your case, this was not necessary so far.

macOS Updates

The companion kext is update-safe.

macOS updates do not affect the OpenCore injection.
You would only need to modify it if Apple completely renames the AppleHDAController classes, which is highly unlikely.


With this setup, you have a complete and clean solution that permanently bypasses the BIOS bug and restores full native audio functionality on your ASUS P8P67 under macOS Monterey.

EFI Folder and Info on:
https://github.com/8bitfriend/ASUS-P8P67--Hackintosh-Monterey-Fully-Working

Edited by Anna Sontario

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...