GA-EP45C-DS3R Audio - Partial Success
So, I've been struggling with Snow Leopard and my Hackintosh lately. Without getting into all the gory details, lets just say that in my attempts to get audio working (namely front headphones and mic support) I broke it, along with my networking.
Needless to say, I managed to get the networking back up (you would not believe how inconvenient it is to have a computer with no internet access), but remained deaf (as far as my computer was concerned).
I've been dabbling in the world of DSDT (which is the main AML table of the ACPI. In layman's terms, it's a map of your motherboard for your operating system to locate the various components (sound card, graphics card, networking card etc). Now, when dealing with OS X on a PC, the "old" way has been to use kernel extensions which remap on the fly for the operating system. The "new" way, is to use a bootloader which supports DSDT injection, and patch the DSDT for your motherboard. This entails getting the "raw" DSDT (untouched, generated right off the motherboard, best done in Windows or Linux)
Anyhow. I've tried various dsdt files I've found online, none seemed to have worked. I've followed countless guides and tutorials on patching ones own DSDT, but still unable to find success. Finally, today I searched again, and tried on a whim, someones "solution". I've reposted it here for your convenience. Hopefully it will save some people a couple hours in the future. The *only* problem with this solution, is there is still no front mic support, but hey, it's progress. I'll keep you posted.
Here is what you need to replace in your DSDT file. (You can find other guides online which show you how to decompile and recompile DSDT's, so I won't duplicate that here. When you do get your DSDT file, search for "HDEF". You'll be brought to a block of code, and you want to make it look like this:
codeDevice (HDEF)
{
Name (_ADR, 0x001B0000)
Method (_PRW, 0, NotSerialized)
{
Return (Package (0x02)
{
0x0D,
0x05
})
} Method (_DSM, 4, NotSerialized)
{
Store (Package (0x08)
{
"codec-id",
Buffer (0x04)
{
0x89, 0x08, 0xEC, 0x10
}, "layout-id",
Buffer (0x04)
{
0x42, 0x00, 0x00, 0x00
}, "device-type",
Buffer (0x10)
{
"ALC889a"
}, "PinConfigurations",
Buffer (0x01)
{
0x00
}
}, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
I did mine by hand. I looked for the differences between the "fix" above, and what I had in my original DSDT file. You need to use the vanilla AppleHDA.kext, and remove any audio kexts from your /Extra/Extensions folder (assuming you're using Chameleon. Recompile, and place in your "Extra" folder. Reboot. Enjoy!