Jump to content

Patched AppleHDA.kext for codecs IDT 92HD81B1X5, 92HD91BXX, 92HD87B1/3, 92HD87B2/4, 92HD87XX etc.

10.8.x Native Audio

  • Please log in to reply
170 replies to this topic

#1
Micky1979

Micky1979

    I realized that I am lucky

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

Volume-bassissimo-Lion.jpg10.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

IDT 92HD87B1/3 = 111d76d1 by TheEnthusiast

IDT 92HD87XX = 111d76dF by TUX FIRE

 


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,710 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   564 downloads (see for update version, and rename it to "codecgraph" for convenience)
- Attached File  convert_hex_to_dec.rb.zip   852bytes   520 downloads
- Attached File  verbit.zip   3.06KB   956 downloads
- Plist Editor (search for free on Google)
- Attached File  zlib.pl.zip   1.09KB   726 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,710 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,710 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,710 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,710 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,710 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,710 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.32KB   565 downloads codec 111d 7605

Attached File  DV6:7 7XXX.zip   6.33KB   404 downloads codec 111d 760e0

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

#9
plsh2me

plsh2me

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 178 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.15KB   120 downloads
Otherhands platform decompress command seems ok.

#10
Micky1979

Micky1979

    I realized that I am lucky

  • Moderators
  • 1,710 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
  • PipPipPipPip
  • 178 posts
  • Gender:Male
  • Location:Bangladesh

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,710 posts
  • Gender:Male
  • Location:Italy

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
  • PipPipPipPip
  • 178 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.08KB   115 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.54KB   127 downloads


Attached File  IDT 7605.png   109.54KB   94 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,710 posts
  • Gender:Male
  • Location:Italy

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.08KB   115 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.54KB   127 downloads


Attached File  IDT 7605.png   109.54KB   94 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.

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
  • PipPipPipPip
  • 178 posts
  • Gender:Male
  • Location:Bangladesh


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,710 posts
  • Gender:Male
  • Location:Italy

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 Geek

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

#18
plsh2me

plsh2me

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 178 posts
  • Gender:Male
  • Location:Bangladesh

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.55KB   99 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,710 posts
  • Gender:Male
  • Location:Italy

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

thanks

#20
Micky1979

Micky1979

    I realized that I am lucky

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

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.55KB   99 downloads

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


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