Jump to content

AppleHDA patching in Mountain Lion


nyolc8
 Share

239 posts in this topic

Recommended Posts

Ok, I can confirm the patch has worked for me as well for ALC269... after all the frustration that I went through this past week it appears it was for nothing (I have actually came up with the binary workaround last Saturday). I have taken clean platforms and layouts from a vanilla AppleHDA from 10.8 GM and set my pathmap for internal speakers and adjusted the pinconfig. Now I just need to stop being a lazy bum and adjust my stuff so that it would work for 10.8 ...

This is what I got so far:

438755880.png

Link to comment
Share on other sites

I used your patch as a perl patch in terminal and my sound assertion errors gone after 1 and half year!!! :D So thank you!

This is what you get by not using a compatible codec base.

Unfortunately this is not a solution for every codec out there.

With ALC889 you won't be getting any working inputs it you intend to jump to 885 instead of AD1984. Jumping to 885 for ALC269 you won't get any sound what so ever ..

Link to comment
Share on other sites

Ok, basically what is wrong between 10.7 and 10.8 layouts that break the functionality of the codec is that MuteGPIO and SignalProcessing for some reason confuse the codec on what to do .. I guess something was changed about them in 10.8. If you have these on your INPUT (Mic, LineIn) nodes try removing them, basically leaving the nodes blank. Now speakers, headphones, line-in and internal mic are detected, but it's a miserable experience not having mic boost and noise reduction .. will keep digging and i hope to get assistance on that ..

Link to comment
Share on other sites

Your "Line in" transforms into "front mic" if you connect the front mic? How? I got the "back mic" and the "back line in" working, but not the "front mic". (I made the speakers transforming into headphones when I connect a headphone, but I couldn't make the front mic work ever). If you have tips, or instructions, please let me know in PM (I can tell you my pinconfig and nodes and everything).

Link to comment
Share on other sites

It's a laptop computer, which has just two external jacks. My Line-In is actually a 3.5mm external microphone socket. Everything happens on the opposite of how you though it. By-default it says Internal Microphone, if I plug the jack in it changes to Line-In. Same with Speakers-Headphones.

 

 

Also, adding to my latest post regarding MuteGPIO and SignalProcessing for Internal Mic\Line-In pin-default nodes.

I started troubleshooting by disabling the external mic at node 0x18 (used as Line-In in OSX) adjusting it's pinconfig: 01871CF0 01871D00 01871E00 01871F40

I have also removed this node from Platforms and layout (from the Inputs section).

Then I went ahead and looked at the dump of my codec again to find out that it does not support MuteGPIO on node 0x12 (Mic) so it has to be either set as 0, or not set at all. Nor my codec supports DspGainStage processing apaprently. After removing both of these (MuteGPIO and SoundProcessing for Gain) from Mic in may layout pathmap I had a working sound and a working internal mic, with ambient noise suppression.

 

Then I had reenabled the 0x18 node for Line-In in my pinconfig: 01871C20 01871D30 01871E81 01871F01

Went ahead and poped the 80% MuteGPIO on it since the dump says it's supported. The audio worked fine.

Later I've decided to add SignalProcessing (just the Equalization and NoiseReduction same as with Mic) and revert all of the platforms and layout to enable this jask .. but audio stopped workign after I did that. Then I removed all of the processing from it and it started to work again. So apparently the binary threats this very seriously in 10.8 .. whereas in 10.7 it could be in place and the sound would still work fine.

 

I went ahead and got a copy of AppleHDA from 10.6.2. to determine ALC262 layout number and check upon that in 10.8 files. Sadly I haven't found any SignalProcessing in 262's layout as of 10.8 meaning that it probably won't work anymore. Oh well, at least I'm happy about the internal Mic's SignalProcessing.

 

Hope this info helps someone troubleshoot their codec ...

 

Also, apparently HDMI audio works (HD3000) without touching the SNB framebuffer: http://puu.sh/Kt2h

  • Like 1
Link to comment
Share on other sites

I used your patch as a perl patch in terminal and my sound assertion errors gone after 1 and half year!!! :D

So thank you!

 

You're welcome. Actually I should thank to you for posting post #25 and kext @ ....x86.net because I learnt from what you did.

 

You can get your rear pink and blue ports to be output for you ALC662.

see ALC662HDA_Lion_MLion_V1.00.zip layout-id = 48, credit to toleda for finding pink output.

note: got to see codec dump from linux which port supports both input and output.

 

**************

This is how I did on ALC889 of Z68XP-UD3R.

post_to_insanelymac_alc889.txt

Link to comment
Share on other sites

Thanks, but I'm using my rear mic, there is a mic always pluggied in, and it's recognized as builtin mic. I just want to make the front mic work. I'll try to merge somehow the layout 12 and 48 (if it's possible).

 

edit.: okay, I tried many ways, but sound completely dissapears when I made any modifications for the front mic node setting in platforms.xml.zlib... I tried to modify layout12.xml.zlib with layout48.xml.zlib elements but nothing... It's only possible to have one mic port and one line in? I tried to make IntMic, and ExtMic but no change, the mic nodes are in the same group in platforms.xml.zlib for autoswitch but it just not working.

 

I'm just not that pro to figure out this :D

Link to comment
Share on other sites

@ nyolc8

 

It's impossible to get ExtMic because ExtMic might be related to /AppleHDA/Contents/PlugIns/AppleMikeyDriver.kext. You should get mikey sound assertions if you attempt to make ExtMic.

 

So, the simple solution is just to use which ports are available.

Link to comment
Share on other sites

@TimeWalker, what files must be patched? AppleHDA and AppleHDAController binaries only?

 

I tried to patch AppleHDA using the old method but like you said... it's useless. However i couldn't find what needs to be patched in the AppleHDAController binary with ALC665 chip.

 

Mind pointing me in the right direction plus some tips?

 

I'm on mountain lion and nothing is working for me, applehda or voodoohda.

 

My patched appleHDA here works fine in ML GM: AppleHDA.kext.zip

 

The layout id is set to 88:

 

		    Method (_DSM, 4, NotSerialized)
		    {
			    Store (Package (0x12)
				    {
					    "AAPL,slot-name",
					    Buffer (0x08)
					    {
						    "PCIe x1"
					    },
					    "device-id",
					    Buffer (0x04)
					    {
						    0x65, 0x06, 0xEC, 0x10
					    },
					    "built-in",
					    Buffer (One)
					    {
						    0x00
					    },
					    "layout-id",
					    Unicode ("X"),
					    "device_type",
					    Buffer (0x11)
					    {
						    "Audio Controller"
					    },
					    "name",
					    Buffer (0x0F)
					    {
						    "Realtek alc665"
					    },
					    "model",
					    Buffer (0x0F)
					    {
						    "Realtek alc665"
					    },
					    "PinConfigurations",
					    Buffer (Zero) {},
					    "hda-gfx",
					    Buffer (0x0A)
					    {
						    "onboard-1"
					    }
				    }, Local0)
			    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
			    Return (Local0)
		    }

Link to comment
Share on other sites

Hello!

 

 

Someone here, who was able to patch the new AppleHDA.kext and get it working with AD2000B on ASUS P5Q-E? I used the same layout12.xml, Platforms.xml and info.plist files as in 10.7.4. I compressed the files using the perl script created by revogirl and replaced them inside the AppleHDA.kext. Also i used the Bin Patch on AppleHDA. I suppose the AppleHDA binary is uncompress or do i need to uncompress it with the script, too? My DSDT contains the HDEF Device and in combination with the mentioned files und bin patch it worked perfect in 10.7.4.

 

However, i got no working with 10.8, however my old 10.7.4 AppleHDA.kext still works in 10.8.

 

Any working solution for 10.8 AppleHDA.kext?

 

Tnx 4 help!

Link to comment
Share on other sites

P.S.S. I have another reported case of audio working in ML GM w/ the binary patch I have previously calculated, this time for ALC662. See THIS

Mind to try it as well ? Just swap the codec ID for your IDT. Also try the patch in my previous post as i have suggested to the person by that link.

I just got around to patching 10.8 AppleHDA for my IDT audio, and the patch was minimal. In fact I only had to replace the two occurrences of the AD1984 codec ID with my IDT codec id. Ie the fix was the same as in 10.6, not requiring the patching of a range comparison as in 10.7 (the range comparisons are there, but this build I got "lucky" and IDT codec id fits within the range checks).

 

Also, for my IDT codec, the xml resources patches for 10.8 was unchanged vs 10.7 (they simply needed to be compressed).

If anyone wants to see the package installer I did for my IDT codec, it's here: http://www.insanelym...ttach_id=111763

Link to comment
Share on other sites

Hi guys.

I'm facing problems with sound too, but mine codec is a ALC888 on a EP45-UD3L.

In Lion, my sound was working perfectly using only AppleHDA (patched) + Plataform.xml + layout888.xml all added with HDA Wizard.

In Mountain Lion the same trick didn't work. It's true that it showed the speaker icon to the desktop menu bar, but no sound or even options to select in System Preferences.

I could manage to work the sound with voodoohda.kext but sound and configuration are terrible.

In ML is there any other file that should be used and patched besides AppleHDA.kext?

 

Cheers,

bb.

Link to comment
Share on other sites

@ breakingbad

 

You need to rename layout888.xml to layout12.xml and edit inside layout12.xml to be as following

 

<key>LayoutID</key>

<integer>12</integer>

 

get perl script from zlib.pl.zip (by Revogirl, R.I.P.)

 

how to:

(compress)

perl zlib.pl deflate layout12.xml > layout12.xml.zlib

 

(decompress)

perl zlib.pl inflate layout12.xml.zlib > layout12.xml

 

also;

perl zlib.pl deflate Platforms.xml > Platforms.xml.zlib

 

copy *.xml.zlib to /System/Library/Extensions/AppleHDA.kext/Contents/Resources/

patch AppleHDA

  • Like 3
Link to comment
Share on other sites

@VCH888

 

Thanks for the hint.

I'll try this method here and posts results as soon as I get it.

 

Just one thing I'm still in doubt is how to use the script from Revogirl.

I'll do a little research on that, since I'm not that into commands like that...

 

Cheers,

bb.

 

EDIT

Hi VCH888, while deflating the layout12.xml to layout12.xml.zlib worked fine.

But when inflating it, got error and script generate a Zero bytes file.

I guess I missed some points on using it.

 

Cheers,

bb.

 

 

Lil doubt

It's necessary to use any kind of HDAEnabler after patching the AppleHDA.kext or this kext is just gone?

 

Cheers again,

bb.

 

SUCCESS :thumbsup_anim:

Thanks VCH888.

This technic of you is a killing one!

Sound works perfectly again, without voodooHDA.

Thank you so very much.

 

Cheers,

bb.

Link to comment
Share on other sites

@whitegerry, funny thing. Using the layout ID you use, my sound is working fine. If i use 65 or any other it doesn't work, and yes, i modified the .xml files accordingly for each number. Weird situation.

Link to comment
Share on other sites

-= ADI AD2000B =-

 

First of all I wont give the proper credits.

- Samantha (aka Revogirl, DHP) R.I.P. we miss you. For the script (Inflate/Deflate zlib)

- TimeWalker75a , I suppose is the same as TimeWalker on Applelife.ru post #338

for find the binpatch for this controller.

 

So let's go.

1) The binpatch

sudo perl -pi -e 's|\xff\x87\xec\x1a\x0f\x8f\x53\x01\x00\x00|\x9b\x98\xd4\x11\x0f\x84\x2a\x01\x00\x00|g' AppleHDA
sudo perl -pi -e 's|\xff\x87\xec\x1a\x0f\x8f\x2f\x01\x00\x00|\x9b\x98\xd4\x11\x0f\x84\x06\x01\x00\x00|g' AppleHDA

2) DSDT edits for HDEF (We change from Layout 12(0C) to 99(63)

 

 Device (HDEF)
{
Name (_ADR, 0x001B0000)
OperationRegion (HDCS, PCI_Config, 0x54, 0x04)
Field (HDCS, DWordAcc, NoLock, Preserve)
{
, 15,
PMES, 1
}

Name (_PRW, Package (0x02)
{
0x0D,
0x06
})
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x0E)
{
"subsystem-id",
Buffer (0x04)
{
0xA0, 0x00, 0x00, 0x00
},

"subsystem-vendor-id",
Buffer (0x04)
{
0x6B, 0x10, 0x00, 0x00
},

"layout-id",
Buffer (0x04)
{
0x63, 0x00, 0x00, 0x00
},

"device-type",
Buffer (0x17)
{
"Analog Devices AD2000b"
},

"model",
Buffer (0x0D)
{
"ADI AD2000B"
},

"built-in",
Buffer (One)
{
0x00
},

"PinConfigurations",
Buffer (Zero) {}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}

 

3) The compressed .xml and .info files (layout99.xml.zlib, Platforms.xml.zlib, Info.plist)

AD2000b.zlib.zip

 

Need to be replaced in the proper positions.

/System/Library/Extensions/AppleHDA.kext/Contents/Resources/layout99.xml.zlib

/System/Library/Extensions/AppleHDA.kext/Contents/Resources/Platforms.xml.zlib

/System/Library/Extensions/AppleHDA.kext/Contents/PlugIns/AppleHDAHardwareConfigDriver.kext/Contents/Info.plist

 

Here the Already patched Mountain Lion AppleHDA GM(RTM) for AD2000b -->

New version in the download section http://www.insanelymac.com/forum/files/file/17-applehda-for-ad2000b/

 

Note: A warning to people who take and upload this files on other sites.

Remember to give the right credits!

 

EDIT: reupload the correct file and patched kext

Fabio

  • Like 10
Link to comment
Share on other sites

Patching audio is something I've always looked at but never been able to properly get my head around. So consequently I fail in this area.

 

However, I've been watching the Applelife thread for a while and now this thread with interest in the attempt to gain some insight and also in the hope that somebody would post a solution for my AD2000B. And here above we have a solution. Brilliant! Thanks for posting the details Fabio.

 

So a huge thank you here to TimeWalker75a and everybody else (i.e. bcc9, THe KiNG, toleda, VCH888, Revogirl - the Applelife guys, and anyone who I haven't mentioned) who's tirelessly developed, worked and tested audio patching.

Link to comment
Share on other sites

@ErmaC

@masa

 

I have a P5Q-E, too and the same problem here, only digital in in audio settings. Systeminformation shows in Audio Headphone and Line-In, however in audio settings i can't select it!

 

I will try to use my old dsdt settings and only change the device-id to 99. Probably this will work!

 

Tnx CutOffz

Link to comment
Share on other sites

CutOffz, thanks for your information.

I've tried that, still with no luck:(

 

@ErmaC

@masa

 

I have a P5Q-E, too and the same problem here, only digital in in audio settings. Systeminformation shows in Audio Headphone and Line-In, however in audio settings i can't select it!

 

I will try to use my old dsdt settings and only change the device-id to 99. Probably this will work!

 

Tnx CutOffz

Link to comment
Share on other sites

Hey guys, I have an ADI AD2000b sound card (ASUS P6T Deluxe V2 motherboard) and I am trying to get sound working in my new Mountain Lion install. I've tried Ermac's patches a number of times but no such luck. I think my problem must lie in the DSDT editing... I don't think I am doing it right. Could anyone walk me through the correct procedure for this? Or maybe point me in the right direction of a good guide?

 

I tried a package from OSx86.net that used a patched AppleHDA, a copy of HDAEnabler and HDEFenabler, and an AD2000b.kext file. That DID get me sound output, but all the channels (front stereo, rear stereo, center) were separated and I am hoping to have them all combined into one output if that is possible. Would this patching be able to achieve that?

 

Thanks!

Link to comment
Share on other sites

 Share

×
×
  • Create New...