Jump to content

fluid | fixed

Patched AppleHDA.kext for codecs IDT 92HD81B1X5, 92HD91BXX and 92HD87B2/4

10.8.x Native Audio

  • Please log in to reply
117 replies to this topic

#1
Micky1979

Micky1979

    I realized that I am lucky

  • Moderators
  • 1,283 posts
  • Gender:Male
  • Location:Italy
Posted Image10.7.x, 10.8.x AppleHDA.kext codec IDT 92HD91BXX,  92HD81B1X5 and 92HD87B2/4 specified for HP DV 6xxx, DV 7xxx and ProBook 45xx

IDT 92HD91BXX   = 111d:76e0
IDT 92HD81B1X5 = 111d:7605
IDT 92HD87B2/4 = 111d76d9 by
zoltankr



I admit I've created this kext for *native audio on Laptop HP DV6/7 6000 and the new 7000 series, but below there are minimal instructions of how to change the pinconfig, if you need to adapt it to other configurations.

Credits for this work to the respective topic that I followed:

bcc9
THe KiNG Signal 64, and Munky
ages_sabres18
Samantha (R.I.P)
Andy Vandijck
Master Chief
Intel® HD Audio


* Of course, the "native" is a kext that works without modification on your hardware, but call it for convenience, mostly because we can work with the same kext version of the Os (no more Roll Back)!

#2
Micky1979

Micky1979

    I realized that I am lucky

  • Moderators
  • 1,283 posts
  • Gender:Male
  • Location:Italy
Stuff needed:

- Ubuntu live cd
- Codec_Dump   (made by you :weight_lift: )
- patch_hda (thanks bcc9 for adding 111d76e0 codec)
- graphviz  (download according to your osx version)
- Attached File  codecgraph-20120114.tar   1.09MB   161 downloads  (see for update version, and rename it to "codecgraph" for convenience)
- Attached File  convert_hex_to_dec.rb.zip   852bytes   145 downloads
- Attached File  verbit.zip   3.06K   150 downloads
- Plist Editor (search for free on Google)
- Attached File  zlib.pl.zip   1.09K   211 downloads by Samantha
- layout12.xml.zlib and Platforms.xml.zlib  (You can take in AppleHDA.kext, and edit it)

all rights to their respective creators, as in the above Topic

#3
Micky1979

Micky1979

    I realized that I am lucky

  • Moderators
  • 1,283 posts
  • Gender:Male
  • Location:Italy
Find a codec id:

Simply, If you have done the codec dump with Ubuntu, find into it... written in Hex.

In Windows, go to "Device Manager" and look for "Sound, Video and game"
Under,  choice "codec" (not the controller) and see for hardware vendor ID in the tab.
something like this:
Posted Image

Now you know your codec audio!

Mine is  vendor ID/111d (IDT) Product ID/76e0 (codec id product ) complete=111d76e0

Usage of codec id:

the codec id is repeatedly used in several places in AppleHDA.kext, but in different ways like Hex byte flipped and decimal

Normal Hex__________11 1d 76 e0
  
decimal_____________287143648
  
Hex byte flipped_______e0 76 1d 11

easy do the conversion with Calculator.app included in Osx

Spoiler


#4
Micky1979

Micky1979

    I realized that I am lucky

  • Moderators
  • 1,283 posts
  • Gender:Male
  • Location:Italy
AppleHDA structure:


kext, is a package container, if you change or remove extension, he becomes a folder.
To display the contents, click with the right mouse button and then "show package contents", or as mentioned above.

structure is as follows:
Contents:
Spoiler
Marked in red color our Target files!!
Spoiler

Targhet files:

AppleHDA.kext/Contents/MacOS/AppleHDA

AppleHDA.kext/Contents/PlugIns/AppleHDAHardwareConfigDriver.kext/Contents/Info.plist

AppleHDA.kext/Contents/Resources/layout12.xml.zlib

AppleHDA.kext/Contents/Resources/Platforms.xml.zlib

#5
Micky1979

Micky1979

    I realized that I am lucky

  • Moderators
  • 1,283 posts
  • Gender:Male
  • Location:Italy

Discover our pinconfig


OK, now we have everything we need, so let's start:

Boot with Ubuntu, and seek the Terminal and give these commands:

Spoiler

On the Ubuntu desktop you will find the codec_dump.txt, save on a USB Stick or send it to you by email.... if Ubuntu is attached to your network!


Let's go back in OSX, and put the folder "codecgraph" on the desktop and copy into these things:

- codec_dump.txt
- convert_hex_to_dec.rb
- verbit

Now install graphviz.pkg (which you have previously chosen for your OS)

Reopen Terminal.app, and now take possession of the folder "codecgraph", first decompressed/renamed and placed on the desktop:
(you can copy/paste the blu lines)

Spoiler

Well, now we have the necessary, take the generated files and set aside:


- codec_dump.txt //original codec dump from Linux in Hex
- codec_dump_dec.txt //codec dump from Linux in decimal, this will be useful for Platforms.xml  
- codec_dump.txt.svg //Graphical rappresentation in Hex
- codec_dump_dec.txt.svg //Graphical rappresentation in decimal, this will be useful for Platforms.xml
- verbitdebug.txt //debugging the verbs.... see what verbit has changed
- verbs.txt    //fixed verbs, here we will find our fixed pinconfig   

text files and graphics svg files are now "human readable", in Hex and decimal, this will help us to compile  layoutXX.xml and Platforms.xml.....


Credit @THe KiNG, Signal64 and Munky



#6
Micky1979

Micky1979

    I realized that I am lucky

  • Moderators
  • 1,283 posts
  • Gender:Male
  • Location:Italy
verbs? what's that?

look the explanation on http://www.projectos...wtopic=465&st=0

Spoiler


"Verb Data" are part of pinconfig:

pinconfig is the means by which the audio codec tells our Intel controller, uniquely, the presence of the inputs and outputs audio, whether headphones, speakers, microphones etc..
To do this they must be arranged according to specific of Intel Higth Definition Audio.

If desired, the Pinconfig, can also be extracted from Windows in this way:
open regedit.exe, and then open the search-box from the menu  "Edit=>Find" and type "pinconfig"...
well found the key "PinConfigOverrideVerbs", now we can extract it from "File => Export" save as "pinconfig.reg"

Spoiler
But, the pinconfig just converted is the same you can find in "verbit.txt" in its original condition, except that you now need to interpret and modify:
Custom pinconfig
pratically in verb.txt you can find the work already done and fixed, according to what is actually used by our codec, and how it should be used by Osx.
See the difference between the original and fixed verbs:
Spoiler

See the speaker at Node 13 :thumbsup_anim:
111d76e0 example
Spoiler

Legend of symbols:
Posted Image

#7
Micky1979

Micky1979

    I realized that I am lucky

  • Moderators
  • 1,283 posts
  • Gender:Male
  • Location:Italy
Kext patching:

AppleHDA.kext/Contents/MacOS/AppleHDA
Spoiler

Credit to @bcc9


AppleHDA.kext/Contents/PlugIns/AppleHDAHardwareConfigDriver.kext/Contents/Info.plist
Spoiler



Layout12.xml and Platforms.xlm (zlib)
AppleHDA.kext/Contents/Resources/layout12.xml.zlib

I state that the files I'm talking about, they contain a lot of information that I do not speak, simply because I do not have full knowledge, but that does not stop me from having the sound on my speakers. Only trust you now have some insight on what to do.


In Snow Leopard, these two files are located within a single plist, by Lion onwards are divided into two distinct files, and are placed at this path:

AppleHDA.kext/Contents/Resources

the difference between Lion and Moutain Lion, is that in 10.8 are  zlib compressed, for which the method of patching these files is almost identical, with the only difference that in Lion files are decompressed (Layoutxx.xml and Platforms.xlm), while in Mountain Lion are compressed (Layoutxx.xml.zlib and Platforms.xml . zlib)....so if you have a working 10.7 AppleHDA.kext, most likely you can recover these files, compress it  and use them to Mountain Lion!

From this, then comes the need to decompress these files in Mountain Lion, and thanks to the script "zlib.pl" by Samantha, we are able to compress and decompress  those files.

Decompress/Compress
Spoiler


Layout12.xml

Layoutxx files, seems to be an inventory of audio inputs and outputs, we declare that we have, and how they are arranged. Platforms.xml obviously, there are the paths of the nodes, for all that we have in the Layout12.xml.
Failure to comply with what you wrote in one, generates assertions (will not be only reason).
Spoiler

Platforms.xml
AppleHDA.kext/Contents/Resources/Platforms.xml.zlib

Looking at the graph above, we have to decide how to build/modify our Platforms.xml. How to do it?
I think first you need the PinComplex we are interested in, such as headphones, microphone and speaker, and then see which path to follow: the Pathmaps

so I have to bring to work Node 11 (Headphones), Node 17 (Microphone) and Node 13 ( Internal Speaker (in 111d76e0 codec)), all in decimal, this is also according with verbs.txt.
So now to clean up the plist, and we take what we do not need (optional), and we set the "PathMapID" as in Layout12.xml, ie 1
Spoiler

As already mentioned "how to edit AppleHDA.kext" is very similar for both 10.7 and 10.8, so now you can use the Layout12.xml and Platforms.xml "as they are" for Lion, or compress in zlib for Mountain Lion!

DSDT Editing:

Spoiler


#8
Micky1979

Micky1979

    I realized that I am lucky

  • Moderators
  • 1,283 posts
  • Gender:Male
  • Location:Italy
Download
kit with internal speaker, internal microphone and headphone.


Sorry, no complete AppleHDA.kext here, only. xml files and pinconfig!
It makes no sense, especially since AppleUpdate seem to get frequent, then have fun with the patches!

I apologize if everything is not perfect, and if I said the wrong things, but we are here to discuss...
if anyone gets better results, I'd be happy to hang here the work of others (as long as they tried).

Micky



Attached File  DV6:7 6XXX.zip   6.32K   188 downloads  codec 111d 7605

Attached File  DV6:7 7XXX.zip   6.33K   120 downloads codec 111d 760e0

Attached File  Kit IDT 111d76d9.zip   20.54K   45 downloads for HP Probook Ivy Bridge by zoltankr

#9
plsh2me

plsh2me

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 144 posts
  • Gender:Male
  • Location:Bangladesh
Thank you for your nice post. Trying to do it my self now :D . I am stuck on decompress command of layout12.Attached File  layout12.jpg   133.15K   96 downloads
Otherhands platform decompress command seems ok.

#10
Micky1979

Micky1979

    I realized that I am lucky

  • Moderators
  • 1,283 posts
  • Gender:Male
  • Location:Italy
user palash? Now I remember you in another place ....

the problem I'm not sure I understand: "Can not create a inflation stream", ......the script, seems to invoke the zlib library ....... You are in Mountain Lion?

For me it's all right trying the script.

Have you tried the latest AppleHDA which I had posted on the other topic?

Micky

#11
plsh2me

plsh2me

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 144 posts
  • Gender:Male
  • Location:Bangladesh

View PostMicky1979, on 02 November 2012 - 11:47 PM, said:

user palash? Now I remember you in another place ....

the problem I'm not sure I understand: "Can not create a inflation stream", ......the script, seems to invoke the zlib library ....... You are in Mountain Lion?

For me it's all right trying the script.

Have you tried the latest AppleHDA which I had posted on the other topic?

Micky
Yes... You remember me? Using mountain lion 10.8.2.

Somehow, I am looking for a solution of IDT. able to patch graphics kexts - http://www.insanelym...n/#entry1862310 :D . Changed wifi ;). All device working nice except audio.

Waited long time for a proper guide to patch IDT. Hope will find a solution & you people let me this :guitar:  .

N.B.-Tested your both kexts,output ok input not working :( . Don't know what's going wrong.

#12
Micky1979

Micky1979

    I realized that I am lucky

  • Moderators
  • 1,283 posts
  • Gender:Male
  • Location:Italy

View Postplsh2me, on 03 November 2012 - 09:21 PM, said:

Yes... You remember me? Using mountain lion 10.8.2.

Somehow, I am looking for a solution of IDT. able to patch graphics kexts - http://www.insanelym...n/#entry1862310 :D . Changed wifi ;). All device working nice except audio.

Waited long time for a proper guide to patch IDT. Hope will find a solution & you people let me this :guitar:  .

N.B.-Tested your both kexts not working :( . Don't know what's going wrong.

  Then, ... same codecs operate differently in different Pc. This seems to be normal, because, for example, IDT provides a product to manufacturers of motherboards, with different options in Laptop and Desktop. Your audio work, with pinconfig of my old Pavilion DV7-6190sl that has a pinconfig certainly different from yours (HDA with your not working), which therefore have different nodes for some things.

My advice is to make the pin config manually, following the guidance of Master Chief (see the 1st post). In this case, you can decide what to do and decide which verbs, what they are, how they are recognized and what are associated etc. From what I understand the problem is on your microphone, so you can work around this and keep what works for you.


Micky



Micky

#13
plsh2me

plsh2me

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 144 posts
  • Gender:Male
  • Location:Bangladesh
Finally its time to give up :( , caz don't have more options left before me.

1st: Prepared pinconfig from win.7, verbs are same as previous verbs from linux codec_dump, added pincinfig data on

your AppleHDA.kext/Contents/PlugIns/AppleHDAHardwareConfigDriver.kext/Contents/info.plist

Got sound working ...


and changed pathmap of int.mic as follows - 22>24>12 :Result-device found, no input.                                                            

                                                                - 21>23>12:Result-device found, no input.

                             tried ext.mic as follows - 22>24>10 :Result-device not found.

                                                                - 21>23>10:Result-device not found.

Attached File  path.png   203.08K   104 downloads


2nd: As from OS X 10.8.2 can't decompress layout12, so back to OS X 10.7.5 :D for searching progress.

Attached File  111d7605.png   46.54K   115 downloads


Attached File  IDT 7605.png   109.54K   82 downloads


And got such(on pic) errors.


Seems it is more difficult than patch graphics kexts for me ;) .

Anyway if you got something for me, please feel free :P .

Thank you.



#14
Micky1979

Micky1979

    I realized that I am lucky

  • Moderators
  • 1,283 posts
  • Gender:Male
  • Location:Italy

View Postplsh2me, on 05 November 2012 - 07:22 PM, said:

Finally its time to give up :( , caz don't have more options left before me.

1st: Prepared pinconfig from win.7, verbs are same as previous verbs from linux codec_dump, added pincinfig data on

your AppleHDA.kext/Contents/PlugIns/AppleHDAHardwareConfigDriver.kext/Contents/info.plist

Got sound working ...



and changed pathmap of int.mic as follows - 22>24>12 :Result-device found, no input.

- 21>23>12:Result-device found, no input.

tried ext.mic as follows - 22>24>10 :Result-device not found.

- 21>23>10:Result-device not found.

Attachment path.png


2nd: As from OS X 10.8.2 can't decompress layout12, so back to OS X 10.7.5 :D for searching progress.

Attachment 111d7605.png


Attachment IDT 7605.png


And got such(on pic) errors.


Seems it is more difficult than patch graphics kexts for me ;) .

Anyway if you got something for me, please feel free . :P

Thank you.

I do not see very well, but your "IntMic" is the node 12, input Node is 23, I do not see what's just above on your photo ....
21
23
12
or
22
24
12

patched binary for your codec? you can take one of those that I posted on the topic (10.8.2 version) :P

Micky


EDIT

Have you tried if it works after sleep?

#15
plsh2me

plsh2me

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 144 posts
  • Gender:Male
  • Location:Bangladesh

View PostMicky1979, on 04 November 2012 - 11:38 AM, said:


My advice is to make the pin config manually, following the guidance of Master Chief (see the 1st post). In this case, you can decide what to do and decide which verbs, what they are, how they are recognized and what are associated etc. From what I understand the problem is on your microphone, so you can work around this and keep what works for you.


Micky



Micky


patched binary for your codec? you can take one of those that I posted on the topic (10.8.2 version)

:P

Micky




EDIT




Have you tried if it works after sleep?



To patch IDT i think you have presented a nice and easy method (including your quote).

As your suggestion i have tried to make pin config manually as

the guidance of Master Chief, Which is same as make from windows 7 and the verbs from command output of codec_dump. Take one patched HDA of yours (one of Lion's). And worked around this.

Got audio working but no input/mic.

Every time stuck on one stop. So guess in my case need some extra additional edit (don't know what :P ) .

Thank you
Palash

#16
Micky1979

Micky1979

    I realized that I am lucky

  • Moderators
  • 1,283 posts
  • Gender:Male
  • Location:Italy

View Postplsh2me, on 08 November 2012 - 10:31 PM, said:

To patch IDT i think you have presented a nice and easy method (including your quote).

As your suggestion i have tried to make pin config manually as

the guidance of Master Chief, Which is same as make from windows 7 and the verbs from command output of codec_dump. Take one patched HDA of yours (one of Lion's). And worked around this.

Got audio working but no input/mic.

Every time stuck on one stop. So guess in my case need some extra additional edit (don't know what :P ) .

Thank you
Palash

Ok, but I'm encouraged to try to change ExtMic as LineIn (in Layout.xlm), to do this I think you should manually edit also the nodes around what is now ExtMic.

if pinconfig says that this is a ExtMic, and you want to become LineIn, you must change verbs (Default Association), .......looks like he did here for example:

http://www.insanelym...-inspiron-1464/

Micky

#17
TUX FIRE

TUX FIRE

    InsanelyMac Protégé

  • Members
  • PipPip
  • 69 posts
Thanks Mickey1979 for this tutorial :thumbsup_anim:  too much clear for beginners ;)

#18
plsh2me

plsh2me

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 144 posts
  • Gender:Male
  • Location:Bangladesh

View PostMicky1979, on 09 November 2012 - 12:06 AM, said:

Ok, but I'm encouraged to try to change ExtMic as LineIn (in Layout.xlm), to do this I think you should manually edit also the nodes around what is now ExtMic.

if pinconfig says that this is a ExtMic, and you want to become LineIn, you must change verbs (Default Association), .......looks like he did here for example:

http://www.insanelym...-inspiron-1464/

Micky

As i understand I tried to find out muteGPIO, in addition don't know to which have to change.What I have to put in replace of that (Checked without change verbs result same, no mic).
Hope you can give me a solution of this ;D .
Attached File  2012-11-09_22-30-50.png   70.55K   85 downloads

After words if put the MuteGPIO values corresponding place (on pic.), is that ok?

Thank you
Palash

#19
Micky1979

Micky1979

    I realized that I am lucky

  • Moderators
  • 1,283 posts
  • Gender:Male
  • Location:Italy

View PostTUX FIRE, on 09 November 2012 - 08:35 PM, said:

Thanks Mickey1979 for this tutorial :thumbsup_anim:  too much clear for beginners ;)
thanks

#20
Micky1979

Micky1979

    I realized that I am lucky

  • Moderators
  • 1,283 posts
  • Gender:Male
  • Location:Italy

View Postplsh2me, on 09 November 2012 - 08:55 PM, said:

As i understand I tried to find out muteGPIO, in addition don't know to which have to change.What I have to put in replace of that (Checked without change verbs result same, no mic).
Hope you can give me a solution of this ;D .
Attachment 2012-11-09_22-30-50.png

After words if put the MuteGPIO values corresponding place (on pic.), is that ok?

Thank you
Palash

verbs may be as follows:

00a71c20 00a71d10 00a71e81 00a71f03  ???


muteGPIO?
if you are using in Platforms

22
24
10  Pin complex ExtMic

IN VREF_80,  according to your codec_dump:

80 + 0100 + NID 10

in Hex:

50 + 0100 + 0a = 5001000a in decimal= muteGPIO 1342242826

...seem


Micky


EDIT

when/if

"VREF _HIZ" is present MuteGPIO must be 0







1 user(s) are reading this topic

1 members, 0 guests, 0 anonymous users


© 2013 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   Web hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy