Anna Sontario Posted May 15 Share Posted May 15 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: Boot argument alcid=xx Device Properties injection SSDT-Audio-Universal But none of them really worked. The audio controller still does not appear in macOS Monterey. config.plist Quote Link to comment https://www.insanelymac.com/forum/topic/362765-asus-p8p67-sandy-bridge-i7-2700k-opencore-monterey-no-audio-realtek-alc892/ Share on other sites More sharing options...
Anna Sontario Posted May 15 Author Share Posted May 15 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. Quote Link to comment https://www.insanelymac.com/forum/topic/362765-asus-p8p67-sandy-bridge-i7-2700k-opencore-monterey-no-audio-realtek-alc892/#findComment-2850343 Share on other sites More sharing options...
Slice Posted May 15 Share Posted May 15 The VoodooHDA will work in any condition. Just install it correctly. Quote Link to comment https://www.insanelymac.com/forum/topic/362765-asus-p8p67-sandy-bridge-i7-2700k-opencore-monterey-no-audio-realtek-alc892/#findComment-2850346 Share on other sites More sharing options...
Anna Sontario Posted May 16 Author Share Posted May 16 (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 May 16 by Anna Sontario Quote Link to comment https://www.insanelymac.com/forum/topic/362765-asus-p8p67-sandy-bridge-i7-2700k-opencore-monterey-no-audio-realtek-alc892/#findComment-2850354 Share on other sites More sharing options...
Recommended Posts
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.