Jump to content
  • Announcements

    • Allan

      Forum Rules   04/13/2018

      Hello folks! As some things are being fixed, we'll keep you updated. Per hour the Forum Rules don't have a dedicated "Tab", so here is the place that we have our Rules back. New Users Lounge > [READ] - InsanelyMac Forum Rules - The InsanelyMac Staff Team. 
MadTux

How to patch AppleHDA.kext from 10.5.2 and above

228 posts in this topic

Recommended Posts

Os X Leopard introduced new codecs, inside their AppleHDA binary so why not to use them.

I will try to explain how to patch and modify a new AppleHDA.kext and hopefully help others in making their one. I believe that here are guys/girls ho want to work on this. I don't know perfect solution, U will need to try and test a bit. Learn and stuff...

 

This tutorial will be based on AppleHDA 10.5.5 kext coz it is latest one

 

Things that we need:

HexEditor: HexEdit_220.dmg

Plist Editor: Property_List_Editor.zip

AppleHDA.kext: AppleHDA.kext.zip

And this generic plist files for PlatformPlugin and Controler plugins.

Platform_Controler.zip

And your own codec dump from Linux, (U can get your codec dump information from Taruga HDAudio.kext, but I never had time to test that)

 

Let's begin:

These are codecs we have in AppleHDA binary

codecs.rtf

And this is a test codec:

Test codec

Name: ALC880

Decimal : 283904128

Hex: 0x10ec0880

Hexedit: 8008EC10

 

First

We need to patch AppleHDA binary with Hexedit

Binary is inside AppleHDA.kext (~/AppleHDA.kext/Contenst/MacOS/AppleHDA)

Open AppleHDA in HexEdit and find a codec dump that is close to yours.

Best way of knowing your card is reading patch_realtek.c from ALSA source:patch_realtek.c.txt

(Or if U are lucky it is the one from original AppleHDA and all that U need to do is create plist files)

 

I will edit AppleHDA binary with 8008EC10. what is backward of 10EC0880

 

So I searched for ALC0262 what is in hex 10EC0262 and changed to 8008EC10

P.S: Try different codecs, for this card 10ec0880, sigmatel codec works too, so U have to make some test, don't stuck on first one. Give it a try.

Second:

After U patched your AppleHDA next it is to create a working PlatformDriver.plist

I made(hopefully) a generic one with all thing that U could have.

How to Platform: Platform.zip

 

Third

- Contorler.plist

Change CodecID to your codec in decimal number and put a LayoutID to 12.

Under PinConfigDefault put nothing.

(It would be best to know your own exact PinConfigDefault numbers, U can obtain them from Vista Registry Explorer, or obtain them thru linux dump(thx Kabyl and The King on this one).

 

Swap Contorler.plist with Info.plist inside Controler plugin

~/AppleHDA.kext/Contenst/PlugIns/AppleHDAController.kext/Contenst/Info.plist

RENAME Controler.plist to Info.plist!

 

post-103792-1222624006_thumb.jpg

 

With this U can hopefully boot and have sound.

 

P.P.S: Change in Controler plist are crucial,but U can boot with your AppleHDA.kext with only this informations in HDAController plist file, but System profiler will not show your inputs.

 

To change from HEX to DECIMAL use Calculator in Applications.

And U have to use HDAEneabler(If U have Intel chipset) or EFI string for your HDA to load, it is better to use HDAEneabler, coz it sets ClassMatch HDA value for Controler.plist.

After all this U have a working latest HDAkext for alc880:

AppleHDA880.zip

 

How to read your codec dump

I will Use a codec dump from user adat6 and try to explane how to find

a pins inside codec dump. And hopefully U will find yours inside your dump

atad6.txt

How to codec dump: Codecdump.zip

 

How to PinConfig, PinConfigDefault or PinConfigOverRides

U can obtain this PinConfig thru Vista registry explorer.

Click on:

START

RUN

and write: regedit (this will start registry explorer)

Search for PinConfig, and U will get something like this:

VistaRegEdit.rtf

Then as user idoc said: "strip out the junk!"

f01c2701 111d2701 111e2701 411f2701 f01c3701 111d3701 111e3701 411f3701 1f1c4701 101d4701 211e4701 021f4701 101c5701 011d5701 131e5701 991f5701 f01c6701111d6701 111e6701411f6701 401c8701981d8701 a11e8701021f8701 411c9701091d9701 a31e9701991f9701 4e1ca701301da701 811ea701021fa701 f01cc701111dc701 111ec701411fc701 2d1cd701951dd701 171ed701401fd701 301ce701111de701 451ee701021fe701

 

then you have to byte flip each double word;

<01271CF0 01271D11 01271E11 01271F41 01371CF0 01371D11 01371E11 01371F41 01471C1F 01471D10 01471E21 01471F02 01571C10 01571D01 01571E13 01571F99 01671D11 01671CF0 01671F41 01671E11 01871D98 01871C40 01871F02 01871EA1 01971D09 01971C41 01971F99 01971EA3 01A71D30 01A71C4E 01A71F02 01A71E81 01C71D11 01C71CF0 01C71F41 01C71E11 01D71D95 01D71C2D 01D71F40 01D71E17 01E71D11 01E71C30 01E71F02 01E71E45>

And after U done this go here so The King can tell U what to do with PinConfig:

PinConfig How to; The King aka XyZ:

 

Next... how to overide your BIOS with HDAVerbs... and get any card to work

 

A made this guide for people who cards are not supported by HDA patcher from Taruga, like mine card ALC880, this guide could be alternative. I don't know what cards are working U will have to try on your one.

If U found this guide useful, I am glad.

 

 

If U ask for help, and want to post a codec dump or registry dump from windows, please post them in text format as atachment. It is easier for every one.

 

Related stuff

AppleHDA collection and knowledge base from The King aka XyZ:

 

Anemic sound from limini:

post-103792-1222623833_thumb.jpg

post-103792-1222623932_thumb.jpg

Share this post


Link to post
Share on other sites

Thanks for the great guide! I'm a bit new to this and have been trying to get the ALC269 codec to work since it's used in many of the new netbooks (MSI Wind, eee, etc). I went through the guide and am able to get system profiler to show the device but osx can't find any audio devices under sound preferences. I tried using the ALC269 codec I posted in this post http://forum.insanelymac.com/index.php?showtopic=126525 but no luck.

Share this post


Link to post
Share on other sites

MadTux: this has the potential to be brilliant! It seems the old methods aren't working with newer builds of leopard. And BTW: though it's clear English isn't your first language, I, and surely others, really appreciate the effort you've put into posting all this information.

 

Just to clarify: I assume this is the binary at AppleHDA.kext/Contents/MacOS/

We need to patch AppleHDA kext with Hexedit

And I assume you mean that the character pairs are read from the end (ie: backwards):

As U can see when we search in HexEdit with 8008EC10 what is oposite 2 by 2 char of 10EC0880

I'm slowly working my way through this for the 889A codec. There are still some things that are unclear. One thing is how to get the proper EFI string to get HDA to load (is that in com.apple.Boot.plist?). That's worked well for my video card, and I think that's the best for audio from now on.

 

Thanks again MadTux for this thread and I hope you keep revising and clarifying it!

Share this post


Link to post
Share on other sites

omg this is exactly what im looking for! now i can take matters into my own hands instead of waiting for damn patcher 2.00 lol plz post how to edit the Hard Way and how to read the info in the codec dump

Share this post


Link to post
Share on other sites

Like I said before, thanks for the great guide. I'm just trying to clarify what you said because I'm a bit new to this and am sure there are others in a similar situation.

 

I'm just trying to figure out what to do with platform.plist. Are the values to be changed below correct?

 

post-7197-1222020100_thumb.jpg

 

I'm also a bit confused about controler.plist. We need to input our codec ID correct? Also is the correct place to put this the codec id that corresponds with LayoutID 12 as shown below? There are multiple listings with codec id which is why I'm confused.

post-7197-1222019884_thumb.jpg

 

After completing these steps do we rename platform.plist to info.plist and replace it with the one already in the folder AppleHDA.kext > Contents > PlugIns > AppleHDAPlatformDriver.kext > Contents > info.plist

 

and the same for controler.plist with AppleHDA.kext > Contents > PlugIns > AppleHDAController.kext > Contents > info.plist

 

I know I'm quite a novice but hopefully this can help others as well!

 

Also I can't wait for the extended guide for how to read pin numbers from a codec dump.

Share this post


Link to post
Share on other sites
MadTux: this has the potential to be brilliant! It seems the old methods aren't working with newer builds of leopard. And BTW: though it's clear English isn't your first language, I, and surely others, really appreciate the effort you've put into posting all this information.

 

Just to clarify: I assume this is the binary at AppleHDA.kext/Contents/MacOS/

 

And I assume you mean that the character pairs are read from the end (ie: backwards):

 

I'm slowly working my way through this for the 889A codec. There are still some things that are unclear. One thing is how to get the proper EFI string to get HDA to load (is that in com.apple.Boot.plist?). That's worked well for my video card, and I think that's the best for audio from now on.

 

Thanks again MadTux for this thread and I hope you keep revising and clarifying it!

 

Thank U for your reply about mistaken writen words, and I will try to clarify this tutos, again really sorry for my bad english

 

Like I said before, thanks for the great guide. I'm just trying to clarify what you said because I'm a bit new to this and am sure there are others in a similar situation.

 

I'm just trying to figure out what to do with platform.plist. Are the values to be changed below correct?

 

post-7197-1222020100_thumb.jpg

Yes that is correct

 

 

I'm also a bit confused about controler.plist. We need to input our codec ID correct? Also is the correct place to put this the codec id that corresponds with LayoutID 12 as shown below? There are multiple listings with codec id which is why I'm confused.

Yes that is also correct, but in the first place don't put nothing in your Controler plist, remove your codec id from that , this one have IOPCIClassMatch set to AZAL AND HDEF support (0x04020000&0xFFFE0000 0x04030000&0xFFFE0000)

But later after U are shure your AppleHDA.kext is working, U can test various pinconfig inside,

But real deal would be to know how to calculate your real pinconfigdefault

 

 

After completing these steps do we rename platform.plist to info.plist and replace it with the one already in the folder AppleHDA.kext > Contents > PlugIns > AppleHDAPlatformDriver.kext > Contents > info.plist

 

and the same for controler.plist with AppleHDA.kext > Contents > PlugIns > AppleHDAController.kext > Contents > info.plist

This is also right

Share this post


Link to post
Share on other sites

Thanks for all the help and for clarifying that! How would I go about finding the node/pin id's from this codec dump. I'd use HDAPatcher but the ALC269 codec is unsupported.

Codec: Realtek ALC269
Address: 0
Vendor Id: 0x10ec0269
Subsystem Id: 0x1043831a
Revision Id: 0x100004
No Modem Function Group found
Default PCM:
   rates [0x5f0]: 32000 44100 48000 88200 96000 192000
   bits [0xe]: 16 20 24
   formats [0x1]: PCM
Default Amp-In caps: N/A
Default Amp-Out caps: N/A
GPIO: io=0, o=0, i=0, unsolicited=0, wake=0
Node 0x02 [Audio Output] wcaps 0x1d: Stereo Amp-Out
 Amp-Out caps: ofs=0x3f, nsteps=0x40, stepsize=0x03, mute=0
 Amp-Out vals:  [0x28 0x28]
 Converter: stream=0, channel=0
 PCM:
   rates [0x560]: 44100 48000 96000 192000
   bits [0xe]: 16 20 24
   formats [0x1]: PCM
Node 0x03 [Audio Output] wcaps 0x1d: Stereo Amp-Out
 Amp-Out caps: ofs=0x3f, nsteps=0x40, stepsize=0x03, mute=0
 Amp-Out vals:  [0x00 0x00]
 Converter: stream=0, channel=0
 PCM:
   rates [0x560]: 44100 48000 96000 192000
   bits [0xe]: 16 20 24
   formats [0x1]: PCM
Node 0x04 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x05 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x06 [Audio Output] wcaps 0x211: Stereo Digital
 Converter: stream=0, channel=0
 Digital:
 Digital category: 0x0
 PCM:
   rates [0x5f0]: 32000 44100 48000 88200 96000 192000
   bits [0xe]: 16 20 24
   formats [0x1]: PCM
Node 0x07 [Audio Input] wcaps 0x10011b: Stereo Amp-In
 Amp-In caps: ofs=0x11, nsteps=0x2e, stepsize=0x03, mute=1
 Amp-In vals:  [0x00 0x00]
 Converter: stream=0, channel=0
 SDI-Select: 0
 PCM:
   rates [0x160]: 44100 48000 96000
   bits [0xe]: 16 20 24
   formats [0x1]: PCM
 Connection: 1
    0x24
Node 0x08 [Audio Input] wcaps 0x10011b: Stereo Amp-In
 Amp-In caps: ofs=0x11, nsteps=0x2e, stepsize=0x03, mute=1
 Amp-In vals:  [0x90 0x90]
 Converter: stream=0, channel=0
 SDI-Select: 0
 PCM:
   rates [0x160]: 44100 48000 96000
   bits [0xe]: 16 20 24
   formats [0x1]: PCM
 Connection: 1
    0x23
Node 0x09 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x0a [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x0b [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
 Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1
 Amp-In vals:  [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80]
 Connection: 5
    0x18 0x19 0x1a 0x1b 0x1d
Node 0x0c [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
 Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
 Amp-In vals:  [0x00 0x00] [0x00 0x00]
 Connection: 2
    0x02 0x0b
Node 0x0d [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
 Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
 Amp-In vals:  [0x00 0x00] [0x00 0x00]
 Connection: 2
    0x03 0x0b
Node 0x0e [Audio Mixer] wcaps 0x20010a: Mono Amp-In
 Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
 Amp-In vals:  [0x00] [0x00]
 Connection: 2
    0x0c 0x0d
Node 0x0f [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x10 [Audio Output] wcaps 0x211: Stereo Digital
 Converter: stream=0, channel=0
 Digital:
 Digital category: 0x0
 PCM:
   rates [0x5f0]: 32000 44100 48000 88200 96000 192000
   bits [0xe]: 16 20 24
   formats [0x1]: PCM
Node 0x11 [Pin Complex] wcaps 0x400380: Mono Digital
 Pincap 0x0814: OUT Detect
 Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
   Conn = 1/8, Color = Black
   DefAssociation = 0xf, Sequence = 0x0
   Misc = NO_PRESENCE
 Pin-ctls: 0x40: OUT
 Unsolicited: tag=00, enabled=0
 Connection: 1
    0x10
Node 0x12 [Pin Complex] wcaps 0x400001: Stereo
 Pincap 0x0820: IN
 Pin Default 0x99a30920: [Fixed] Mic at Int ATAPI
   Conn = ATAPI, Color = Unknown
   DefAssociation = 0x2, Sequence = 0x0
   Misc = NO_PRESENCE
 Pin-ctls: 0x00:
Node 0x13 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x14 [Pin Complex] wcaps 0x40010d: Stereo Amp-Out
 Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
 Amp-Out vals:  [0x00 0x00]
 Pincap 0x0810050: OUT EAPD Balanced
 EAPD 0x2: EAPD
 Pin Default 0x99130110: [Fixed] Speaker at Int ATAPI
   Conn = ATAPI, Color = Unknown
   DefAssociation = 0x1, Sequence = 0x0
   Misc = NO_PRESENCE
 Pin-ctls: 0x40: OUT
 Connection: 2
    0x0c* 0x0d
Node 0x15 [Pin Complex] wcaps 0x40018d: Stereo Amp-Out
 Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
 Amp-Out vals:  [0x00 0x00]
 Pincap 0x081001c: OUT HP EAPD Detect
 EAPD 0x2: EAPD
 Pin Default 0x0121401f: [Jack] HP Out at Ext Rear
   Conn = 1/8, Color = Green
   DefAssociation = 0x1, Sequence = 0xf
 Pin-ctls: 0xc0: OUT HP
 Unsolicited: tag=04, enabled=1
 Connection: 2
    0x0c* 0x0d
Node 0x16 [Pin Complex] wcaps 0x40010c: Mono Amp-Out
 Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
 Amp-Out vals:  [0x80]
 Pincap 0x0810: OUT
 Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
   Conn = 1/8, Color = Black
   DefAssociation = 0xf, Sequence = 0x0
   Misc = NO_PRESENCE
 Pin-ctls: 0x40: OUT
 Connection: 1
    0x0e
Node 0x17 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out
 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
 Amp-In vals:  [0x00 0x00] [0x00 0x00]
 Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
 Amp-Out vals:  [0x80 0x80]
 Pincap 0x083734: IN OUT Detect
   Vref caps: HIZ 50 GRD 80 100
 Pin Default 0x01a19830: [Jack] Mic at Ext Rear
   Conn = 1/8, Color = Pink
   DefAssociation = 0x3, Sequence = 0x0
 Pin-ctls: 0x24: IN VREF_80
 Unsolicited: tag=00, enabled=0
 Connection: 2
    0x0c* 0x0d
Node 0x19 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out
 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
 Amp-In vals:  [0x00 0x00] [0x00 0x00]
 Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
 Amp-Out vals:  [0x80 0x80]
 Pincap 0x083734: IN OUT Detect
   Vref caps: HIZ 50 GRD 80 100
 Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
   Conn = 1/8, Color = Black
   DefAssociation = 0xf, Sequence = 0x0
   Misc = NO_PRESENCE
 Pin-ctls: 0x24: IN VREF_80
 Unsolicited: tag=00, enabled=0
 Connection: 2
    0x0c* 0x0d
Node 0x1a [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out
 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
 Amp-In vals:  [0x00 0x00] [0x00 0x00]
 Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
 Amp-Out vals:  [0x80 0x80]
 Pincap 0x08373c: IN OUT HP Detect
   Vref caps: HIZ 50 GRD 80 100
 Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
   Conn = 1/8, Color = Black
   DefAssociation = 0xf, Sequence = 0x0
   Misc = NO_PRESENCE
 Pin-ctls: 0x20: IN VREF_HIZ
 Unsolicited: tag=00, enabled=0
 Connection: 2
    0x0c* 0x0d
Node 0x1b [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out
 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
 Amp-In vals:  [0x00 0x00] [0x00 0x00]
 Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
 Amp-Out vals:  [0x80 0x80]
 Pincap 0x083734: IN OUT Detect
   Vref caps: HIZ 50 GRD 80 100
 Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
   Conn = 1/8, Color = Black
   DefAssociation = 0xf, Sequence = 0x0
   Misc = NO_PRESENCE
 Pin-ctls: 0x20: IN VREF_HIZ
 Unsolicited: tag=00, enabled=0
 Connection: 2
    0x0c* 0x0d
Node 0x1c [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x1d [Pin Complex] wcaps 0x400000: Mono
 Pincap 0x0820: IN
 Pin Default 0x4005822d: [N/A] Line Out at Ext N/A
   Conn = Optical, Color = Purple
   DefAssociation = 0x2, Sequence = 0xd
 Pin-ctls: 0x20: IN
Node 0x1e [Pin Complex] wcaps 0x400380: Mono Digital
 Pincap 0x0814: OUT Detect
 Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
   Conn = 1/8, Color = Black
   DefAssociation = 0xf, Sequence = 0x0
   Misc = NO_PRESENCE
 Pin-ctls: 0x40: OUT
 Unsolicited: tag=00, enabled=0
 Connection: 1
    0x06
Node 0x1f [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x20 [Vendor Defined Widget] wcaps 0xf00040: Mono
 Processing caps: benign=0, ncoeff=33
Node 0x21 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x22 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x23 [Audio Selector] wcaps 0x300101: Stereo
 Connection: 7
    0x18* 0x19 0x1a 0x1b 0x1d 0x12 0x0b
Node 0x24 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
 Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
 Amp-In vals:  [0x00 0x00] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80]
 Connection: 6
    0x18 0x19 0x1a 0x1b 0x1d 0x0b

Share this post


Link to post
Share on other sites

Rename your codec in codecdump

Codec: Realtek ALC269

Address: 0

Vendor Id: 0x10ec0269

 

to

Codec: Realtek ALC885

Address: 0

Vendor Id: 0x10ec0885

 

U will got a list of pins, coz patcher is checking only this information of a codec file

Share this post


Link to post
Share on other sites

Sigh, still no luck. I was able to find the pin numbers using HDAPatcher and came up with this:

 

Back Mic: 9 34 24

Line In : 8 35 26

Speaker : 20 12 2

LineOut 1: 21 13 3

Headphone: 27 38 37

 

Still no luck, I can't get osx to recognize the sound card (I'm using HDAEnabler.kext with AppleHDA.kext). I think the problem may be in the controler.plist that I have to edit but I'm not sure.

 

Thanks for all the wonderful help so far, it's greatly appreciated!

Share this post


Link to post
Share on other sites

OK: this is interesting. I did a codec dump of the ALC889A on my system using Taruga's latest HDAudio.kext (run at boot) and this is what comes up:

 

Vendor Id: 0x10ec0885

...which according to the codec.rtf MadTux provided is already covered by the 10.5.5 AppleHDA.kext. I also looked in the info.plist using HexEdit and "885" seems to be there many times.

 

So what's missing? Why isn't the system recognizing this codec? And more importantly, how should I handle this next?

 

I've included the dump below if anyone cares to look. Thanks!

 

My889_aka885.zip

Share this post


Link to post
Share on other sites

Thanks for your tips MadTux, now my question is when you mention about

"And U have to use HDAEneabler or EFI string for your HDA to load"

 

So if I edit the plist file in AppleHDA.kext it won't make it to work just with that?

 

Why and what do we have to add to the EFI string?

Share this post


Link to post
Share on other sites
I think the easiest way is to use AppleHDA patcher from Taruga

Yes I agree. But I suspect that Taruga's patcher does much of what this thread shows us how to do manually. I think it's a good idea to learn to fish rather than depend on the fisherman.

 

Also, one issue with Taruga's 1.20 AppleHDA patcher (there is a 2.0 but there's no release date) is that it produces an out-of-spec AppleHDA.kext, whose internal version is 1.2.4 whereas the 10.5.5 AppleHDA.kext is at 1.5.7 and seems to have quite a few internal changes. Plus on my system the 1.20 patching does work, but one of the outputs is wrong. Another advantage of meddling directly in the configuration is assigning inputs and outputs the way we want them.

 

And then of course, there's the aspect of discovering OS X's intricacies. Like MadTux said: "Learn and stuff..." :(

Share this post


Link to post
Share on other sites
OK: this is interesting. I did a codec dump of the ALC889A on my system using Taruga's latest HDAudio.kext (run at boot) and this is what comes up:

 

Vendor Id: 0x10ec0885

...which according to the codec.rtf MadTux provided is already covered by the 10.5.5 AppleHDA.kext. I also looked in the info.plist using HexEdit and "885" seems to be there many times.

 

So what's missing? Why isn't the system recognizing this codec? And more importantly, how should I handle this next?

 

I've included the dump below if anyone cares to look. Thanks!

 

My889_aka885.zip

 

Limini, I believe your card is already patched, yust look around to find a kext. I think this is one of best suported audio cards here.

Share this post


Link to post
Share on other sites
Yes I agree. But I suspect that Taruga's patcher does much of what this thread shows us how to do manually. I think it's a good idea to learn to fish rather than depend on the fisherman.

 

Also, one issue with Taruga's 1.20 AppleHDA patcher (there is a 2.0 but there's no release date) is that it produces an out-of-spec AppleHDA.kext, whose internal version is 1.2.4 whereas the 10.5.5 AppleHDA.kext is at 1.5.7 and seems to have quite a few internal changes. Plus on my system the 1.20 patching does work, but one of the outputs is wrong. Another advantage of meddling directly in the configuration is assigning inputs and outputs the way we want them.

 

And then of course, there's the aspect of discovering OS X's intricacies. Like MadTux said: "Learn and stuff..." :(

 

Me too I think MadTux did a great job explaining us how to do it using the latest kext, with taruga's patcher you were locked to 10.5.2 kexts but with this method you can do it by yourself and patch newer AppleHDA.kexts (10.5.6 in the future) and voiding those non sleep, non wake ups, etc.

Share this post


Link to post
Share on other sites
Limini, I believe your card is already patched, yust look around to find a kext. I think this is one of best suported audio cards here.

In principle, Taruga's 885-889 for Leo works, but only ONCE. On first reboot, all the right info is there in Preferences and all the I/O works. But on 2nd reboot this card disappears and the System Profiler information for it too. No one here, or on Taruga's forum, has an explanation for this behavior. And it seems I'm not the only one this is happening to. A codec dump into Taruga's 1.20 patcher also works, but the information in the outputs is innaccurate, and this patcher creates an older version of AppleHDA.kext. So I'm looking at your method as an alternative, and hopefully more long term, solution.

Share this post


Link to post
Share on other sites
In principle, Taruga's 885-889 for Leo works, but only ONCE. On first reboot, all the right info is there in Preferences and all the I/O works. But on 2nd reboot this card disappears and the System Profiler information for it too. No one here, or on Taruga's forum, has an explanation for this behavior. And it seems I'm not the only one this is happening to. A codec dump into Taruga's 1.20 patcher also works, but the information in the outputs is innaccurate, and this patcher creates an older version of AppleHDA.kext. So I'm looking at your method as an alternative, and hopefully more long term, solution.

 

U may try this, it could be a good start

limini.zip

 

And I think that pins from patcher are not innaccurate, just sometimes they dont work like they should :-)

Share this post


Link to post
Share on other sites
U may try this, it could be a good start

limini.zip

 

And I think that pins from patcher are not innaccurate, just sometimes they dont work like they should :-)

Thanks, MadTux! I'm now trying to use EFI to load the driver. Does this tutorial cover what I need to know?

Share this post


Link to post
Share on other sites
I'm now trying to use EFI to load the driver. Does this tutorial cover what I need to know?

Yes that is a great one. But it is easier to use EFI STUDIO, has everything "built in" Network, Audio, Graphics.

Share this post


Link to post
Share on other sites
Yes that is a great one. But it is easier to use EFI STUDIO, has everything "built in" Network, Audio, Graphics.

MadTux! MadTux!! It WORKS! Many , many thanks! I used your kext + HDAEnabler and the settings survive multiple reboots. All the Mac related I/O shows up properly and Built-in Speakers, and Digital out work. I haven't tested the inputs yet, but they're there. I found the bass anemic on the "Built-in Speakers" which is my Line out and looking through the plists I found where soft DSP is applying equalization to both the Built-in speakers and to the Mic. I'm going to try to remap the outputs so that I can get Line out signal to come out from the green jack line out; there are in fact 5 analog outs, 2 line ins, 2 mic ins and SPDIF I/O on this codec, so it should be possible to reroute. Is it possible to add I/O that isn't typically on a mac?

 

So now that it's working I guess I can try using EFI Studio and getting rid of HDAEnabler. I find it funny that looking for information on how to use EFI Studio to generate strings I find informations like "...then just use EFI Studio to input the right string for your graphics and audio, and you're done." Great... 2 questions:

 

1. I've found one with my graphics card as a preset, so I guess all I have to do is select my graphic card and "HDEF" for the audio and write both to the Boot.plist. I read on a thread here that you have to write both at the same time. If I already have my graphics string in Boot.plist, will EFI Studio replace the old one with the new or should I clean the old one out manually?

 

2. Do I need to fiddle with the HDEF values or can I assume EFI Studio is getting it right?

 

You do realize that by helping me out you've compromised my education... -_-

Share this post


Link to post
Share on other sites
I'm going to try to remap the outputs so that I can get Line out signal to come out from the green jack line out; there are in fact 5 analog outs, 2 line ins, 2 mic ins and SPDIF I/O on this codec, so it should be possible to reroute. Is it possible to add I/O that isn't typically on a mac?

I don't know, I am not an expert. People U have to try by your one. Test, learn...

 

1. I've found one with my graphics card as a preset, so I guess all I have to do is select my graphic card and "HDEF" for the audio and write both to the Boot.plist. I read on a thread here that you have to write both at the same time. If I already have my graphics string in Boot.plist, will EFI Studio replace the old one with the new or should I clean the old one out manually?

EFI_STUDIO replaces with new string, you don't have to delete manualy. I suggest U to put all three stuff in a same time. Network, Audio, Graphic Card in no particular order

 

2. Do I need to fiddle with the HDEF values or can I assume EFI Studio is getting it right?

If it founds HDEF it will put correct values, same thing for AZAL

 

P.S. And google is your friend and best educator.

Share this post


Link to post
Share on other sites

Hey I'm stuck at finding out my nodes.

Because the first node has only 1 Connection, and it's not marked with a star.

I also tried Taruga patcher to find them out but this didn't work as well.

Even the repalcement of alc268 with alc885 as recommended on page 1 didn't work.

I attached my ubuntu linux dump. Could please someone help me?

 

Click here to see what I mean:

http://img99.imageshack.us/my.php?image=bild1oo6.jpg

dump.txt

Share this post


Link to post
Share on other sites

have u got any idea with sigmatel 9200 audio ?! tried to patch and install kexts but no audio works. i made a clean install with dell laptop post installer and installed sigmatel 9200 driver but still no sound and osx cant identify my audio card. any idea??? - kalyway 10.5.2 default

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.

  • Posts

    • You can try this one here 2.9.0 let me know if its better for you ?   VoodooHDA.kext.zip
    •   Boot option name retrieval 1) Locate the booter image as explained blow. 2) Locate ".contentDetails" in the parent folder 2.1) if unsuccessful, locate ".disk_label.contentDetails" in the parent folder 2.2) if unsuccessful, retrieve the volume's name   HFS Boot 1) Retrieve blessed file via https://github.com/CupertinoNet/EfiPkg/blob/development/Include/Guid/AppleBless.h#L41 1.1) if unsuccessful, retrieve blessed folder via https://github.com/CupertinoNet/EfiPkg/blob/development/Include/Guid/AppleBless.h#L45, append "\\boot.efi". NOTE: This is broken in the latest binary I checked. 1.2) if unsuccessful, use the following hard-coded paths: "\System\Library\CoreServices\boot.efi", "\EFI\APPLE\{ARCH}\BOOT.EFI", <StandardEfiPath>, "\\boot.efi" in this order 2) FV2 Recovery does not follow the usual practice because it is not shown by BootPicker anyway. Determine it via https://github.com/CupertinoNet/EfiPkg/blob/development/Include/Guid/AppleBless.h#L49, verify it does not match 1).   APFS Boot 1) Determine the APFS Volume Info (and hencefor detect whether it is APFS in the first place) via https://github.com/CupertinoNet/EfiPkg/blob/development/Include/Guid/AppleApfsInfo.h#L54 1.1) Determine the APFS Container Info via https://github.com/CupertinoNet/EfiPkg/blob/development/Include/Guid/AppleApfsInfo.h#L36 1.2) Verify the Volume Role via https://github.com/CupertinoNet/EfiPkg/blob/development/Include/Guid/AppleApfsInfo.h#L51 1.3) Retrieve blessed file analoguous to HFS 1). NOTE: This step and 1.3.1) are broken in the binary I checked, hencefor it does not happen, but is probably supposed to. 1.3.1) if unsuccessful, retrieve blessed folder and append the booter name the same way as in HFS 1.2) 1.4) (if unsuccessful,) locate all Volumes that are part of the same container, check whether the current Preboot partition has folders named by the just located Volumes' GUIDs and append the hard-coded paths from HFS 1.2) if existant 2) Recovery detection works the same way as 1.4), just for a Recovery instead of a Preboot volume
    • Got garbled sound in earphone    Notebook Asus X550VX i7 - 7700hq with ALC255 not working with applealc  layout id  3, 13, 17, 18, 27, 28, 99 its is working with VoodooHDA but the new one 2.9.1 it much has low volume, but bad sound in earphone     codec dump linux https://drive.google.com/file/d/1pg2y76WvFYsO8vFY-2B_2OLyKMmkQ8Tg/view     latest debug http://www.mediafire.com/file/2pjny4eq5r64ed8/debug_1383 (1).zip  
    • For F6 Bios, which DSDT is the one i should use? I´m a little confused in the Mass of DSDT here ;-).   Great Thread by the Way.   Another Question: I have 2 960Pro inside my Rig (one with OS X, one with Windows 10). When i try to mount my EFI on OS X NVMe the system freezes... :-(   DWhen i unplug the Windows NVMe everything is fine an it mounts the EFI.   Anybody an idea?   Tried the upper Port on the Board (OS X) & the middle / lower Port, in the Middle it mounts the EFI in the lower it freezes.   But i need the middle Port for an SATA M.2 SSD :-D... Even when i plug the Windows NVMe into an PCIe Adapter Card it freezes at the point i mount the EFI.   I´m mounting with Clover Configurator.     Thank You guys.
    •   Just add "ngfxsubmit=0" to config.plist to disable the fix within nvidiafixup


×