I followed the instructions from
ALC889A, Gigabyte (Intel) by tmongkol and it kinda, sorta worked. Mostly. Here's what happened.
I used ALC885_889a_LION.zip from that thread and copied in the Platforms.xml and layout885.xml files as instructed. I kept my pre-existing DSDT HDEF edits.
This gave me 3 working sound output jacks on the rear panel. But I couldn't find one that worked for headset microphone recording.
Perhaps the input channel for the mic was going to a front-panel pin, but I don't have a front panel audio connector on this box.
On Snow Leopard, I generally used some version of HDAEnabler.kext + Legacy889a.kext and the rollback 10.6.2 AppleHDA driver. I wasn't really satisfied but it "worked".
I wasn't able to replicate this on Lion GM. Along the way, after searching these forums (and others) I discovered:
- I had a mistake in the DSDT. I had a device-id for an 889, not the 889a.
- The layout-id was bogus.
- The DSDT edits were therefore meaningless because HDAEnabler was "fixing" it, I think.
After fixing the device-id and layout-id (to decimal 885) there wasn't really much of a change. There was still no working mic input.
I noticed the DSDT had a PinConfigurations setting and researched that. I got a dump from Win7 and used the converted tool on that web page. Sadly, there was no useful effect. I got things like outputs labelled as "External Microphone" (as an output!).
At about that point I got the idea to fire up my old SL disk and poke around in IORegistryExplorer. I discovered that there was a PinConfigurations in the HDEF section! (???!!). I still don't know where those come from. I'm guessing either HDAEnabler or Legacy889a.kext was injecting it.
I cut/pasted those and copied them to my DSDT.. And nearly fell out of my chair because it worked.
Anyway, I happily have three working outputs, and a mic input on the back panel of my GA-EP45-UD3P.
So, for anyone else struggling with a GA-EP45-UD3P, I've attached my DSDT.dsl HDEF block to go along with the ALC885_889a_LION.zip file referenced above. Follow the instructions in the zip file, use the PinConfigurations etc for your HDEF block, and you should be golden.
Name (_ADR, 0x001B0000)
Method (_PRW, 0, NotSerialized)
Return (Package (0x02)
Method (_DSM, 4, NotSerialized)
Store (Package (0x0A)
0x85, 0x08, 0xEC, 0x10
0x75, 0x03, 0x00, 0x00
/* 0000 */ 0x10, 0x40, 0x11, 0x01, 0x20, 0x10, 0x01, 0x01,
/* 0008 */ 0x30, 0x60, 0x01, 0x01, 0x80, 0x20, 0x01, 0x01,
/* 0010 */ 0x40, 0x90, 0xA0, 0x90, 0x50, 0x90, 0xA1, 0x02,
/* 0018 */ 0x60, 0x30, 0x81, 0x01, 0x70, 0x40, 0x21, 0x02,
/* 0020 */ 0xF0, 0x01, 0x33, 0x59, 0x01, 0xE6, 0x05, 0x40,
/* 0028 */ 0x90, 0x61, 0x4B, 0x01, 0xA0, 0x01, 0xCB, 0x01
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
However.. Now I have some questions.
How concerned should we be about this sort of thing?
hackintosh% codesign -fvvv /System/Library/Extensions/AppleHDA.kext
/System/Library/Extensions/AppleHDA.kext: a sealed resource is missing or invalid
resource added: /System/Library/Extensions/AppleHDA.kext/Contents/Resources/layout885.xml
resource modified: /System/Library/Extensions/AppleHDA.kext/Contents/Resources/Platforms.xml
Is there really no other way to get this working without breaking the apple signatures?
Why does the DSDT PinConfigurations stuff matter? I thought I'd read that the layout-id and codec-id were used as indexes into pre-set apple hardware configurations? All those xml files seem to have the PinConfig verbs embeded in them. Would it have worked if I'd modified the ConfigData in the Info.plist for ALC885_889a.kext using Plist Editor Pro or something along those lines?
And should the Win7 extracted verbs have worked? The verb dump from Win7 (after swapping) was:
<01471C10 01471D44 01471E01 01471F01 01571C12 01571D14 01571E01 01571F01 01671C11 01671D64 01671E01 01671F01 01771C14 01771D24 01771E01 01771F01 01871C40 01871D9C 01871EA1 01871F01 01971C50 01971D9C 01971EA1 01971F02 01A71C4F 01A71D34 01A71E81 01A71F01 01B71C20 01B71D4C 01B71E21 01B71F02 01C71CF0 01C71D01 01C71E33 01C71F59 01D71C01 01D71DE6 01D71E05 01D71F40 01E71C30 01E71D61 01E71E4B 01E71F01 01F71C60 01F71D71 01F71ECB 01F71F01>