Jump to content

[How To] Pinconfig for Linux users � Realtek ALC883 example


  • Please log in to reply
32 replies to this topic

#21
Riley Freeman

Riley Freeman

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 838 posts
  • Gender:Male
  • Location:The Streets
Thanks for replying kizwan. I spent a few hours last night reading all the HDA patching threads but am still no wiser. There's a lot of information but it's poorly explained and none give a clear, step-by-step guide to what I'm supposed to do in HDAPlatformDriver.

When I look through LayoutID and Pathmap I can't see any connection between the two. So I have no idea what any of the values mean. Following what The King said, I chose LayoutID 12 and Pathmap 9. Pathmap contains 5 arrays (0-4) each with a number of child strings. But I can't see how any of these connect to the contents of PathMapRef in the Layout.

I even downloaded a few completed kexts (including your alc883_3680 one) to see if I could figure things out, but couldn't.

It's no big deal whether or not I get sound working on this Hack. It's purely research. But If I can get one codec working, then I'll know how to do the next.

#22
kizwan

kizwan

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 1,422 posts

Thanks for replying kizwan. I spent a few hours last night reading all the HDA patching threads but am still no wiser. There's a lot of information but it's poorly explained and none give a clear, step-by-step guide to what I'm supposed to do in HDAPlatformDriver.

When I look through LayoutID and Pathmap I can't see any connection between the two. So I have no idea what any of the values mean. Following what The King said, I chose LayoutID 12 and Pathmap 9. Pathmap contains 5 arrays (0-4) each with a number of child strings. But I can't see how any of these connect to the contents of PathMapRef in the Layout.

It's no big deal whether or not I get sound working on this Hack. It's purely research. But If I can get one codec working, then I'll know how to do the next.


For now, at LayoutID 12, just add your CodecID (in decimal). You need to concentrate on pathmap. This is the layout of pathmapid 9:-

Item0 setup LineIn *here I have to figure out how to add Internal Mic support
Item1 setup SpdifIn
Item2 Setup Internal Speakers/ExternalSpeakers(you will see 2 child on it)
Item3 setup LineOut
Item4 setup SpdifOut

You can safely remove any pathmap that don't exist in your codec dump (linux dump). For example, if you don't have SPDIF in, you can remove Item1. "LineIn" entry also can be use for mic & external mic. So, you can duplicate it for your other input device (mic or/and external mic). Item2 is useful if you have laptop (you will see two entry in this array), because it have internal speaker & a jack for headphone. It will provide autoswitch function. If headphone is plug in, internal speaker will mute & audio will come out through headphone.

Honestly, if you want to understand, you will need to read the THe KiNG how to from top to bottom. :wacko:

To come out your own pathmap, you will need to generate SVG file (Scalable Vector Graphics - a graphical presentation of your codec). The instruction on how to generate SVG file is at THe KiNG How To (using codecgraph program). With this file, creating connection will be easy.

Example:-
Internal speaker: [Fixed] Speaker at Int ATAPI --> 21 12 2
--> 21 (pin complex) is node id for your internal speaker, 12 is audio mixer & 2 is audio output

kizwan

#23
Riley Freeman

Riley Freeman

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 838 posts
  • Gender:Male
  • Location:The Streets
Thanks for your help kizwan

I think i have a better grasp of it now. I'll know when I try again later.

On the first post here Master Chief said that when he added the configdata to AppleHDAController he got all his ins/outs to show in System Profiler. But for me it only shows Line Out and AUX, so I'm wondering if I'm working from a bad dump to start with (that or I might have messed up the verbs somewhere). I'm now downloading the latest mandriva to take another codec dump as some reports are that the Ubuntu ones aren't always accurate.

#24
kizwan

kizwan

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 1,422 posts

.........................
On the first post here Master Chief said that when he added the configdata to AppleHDAController he got all his ins/outs to show in System Profiler. But for me it only shows Line Out and AUX, so I'm wondering if I'm working from a bad dump to start with (that or I might have messed up the verbs somewhere). I'm now downloading the latest mandriva to take another codec dump as some reports are that the Ubuntu ones aren't always accurate.


Yes, that is correct, only two devices showed in System Profiler, based on your ConfigData you posted earlier. That is because all of the available devices are grouped into two Default Association. :) See "association" in pin config below (only association 0 & association 1).
1 0B 71C 1 0  node 11 association 1 sequence 01 0B 71D 4 1  node 11 Green Misc Reserved1 0B 71E 0 1  node 11 Line Out 1/8" stereo1 0B 71F 0 1  node 11 port 0 Location 11 0C 71C 0 0  node 12 association 0 sequence 01 0C 71D 3 1  node 12 Blue Misc Reserved1 0C 71E 9 1  node 12 AUX 1/8" stereo1 0C 71F 0 2  node 12 port 0 Location 21 0D 71C 0 0  node 13 association 0 sequence 01 0D 71D 9 1  node 13 Pink Misc Reserved1 0D 71E A 1  node 13 Mic In 1/8" stereo1 0D 71F 0 1  node 13 port 0 Location 11 0E 71C 1 0  node 14 association 1 sequence 01 0E 71D 2 1  node 14 Grey Misc Reserved1 0E 71E 0 1  node 14 Line Out 1/8" stereo1 0E 71F 0 1  node 14 port 0 Location 11 0F 71C 0 0  node 15 association 0 sequence 01 0F 71D 4 1  node 15 Green Misc Reserved1 0F 71E 2 1  node 15 HP Out 1/8" stereo1 0F 71F 0 2  node 15 port 0 Location 21 10 71C 0 0  node 16 association 0 sequence 01 10 71D 9 1  node 16 Pink Misc Reserved1 10 71E A 1  node 16 Mic In 1/8" stereo1 10 71F 0 2  node 16 port 0 Location 21 11 71C 0 0  node 17 association 0 sequence 01 11 71D 0 0  node 17 Color Unknown Jack Detect Override1 11 71E 3 3  node 17 CD Internal1 11 71F 0 9  node 17 port 0 Location 91 12 71C 0 0  node 18 association 0 sequence 01 12 71D 0 0  node 18 Color Unknown Jack Detect Override1 12 71E 4 4  node 18 SPDIF OUT RCA1 12 71F 0 1  node 18 port 0 Location 11 13 71C 0 0  node 19 association 0 sequence 01 13 71D 0 0  node 19 Color Unknown Jack Detect Override1 13 71E C 4  node 19 SPDIF In RCA1 13 71F 0 1  node 19 port 0 Location 11 1F 71C 1 0  node 31 association 1 sequence 01 1F 71D 6 1  node 31 Orange Misc Reserved1 1F 71E 0 1  node 31 Line Out 1/8" stereo1 1F 71F 0 1  node 31 port 0 Location 11 20 71C 1 0  node 32 association 1 sequence 01 20 71D 1 1  node 32 Black Misc Reserved1 20 71E 0 1  node 32 Line Out 1/8" stereo1 20 71F 0 1  node 32 port 0 Location 1
It is OK though but if you want all of the available devices show in System Profiler, you need to change the Default Association value for all devices. Try to setup base on order for priority of use. The values you can use are: 1, 2, 3, 4, 5, 6 and f. That mean some devices need to be grouped & make sure all of it have same function. For example; you can set all devices that have (color) green (line out & HP - front - have same function which is for front speaker) with Default Association 1 & all devices that have (color) black (line out - rear speaker) with Default Association 2.

I hope you're not like this --> :) . This is not the difficult part yet. :)

kizwan

#25
bramo

bramo

    InsanelyMac Protégé

  • Members
  • Pip
  • 9 posts
Hi all,

Thank you Master Chief for nice tutorial. I am beginner and would like to know how to convert your ConfigData the tutorial:

<01471c10 01471d40 01471e01 01471f01 01571c10 01571d10 01571e01 01571f01 01671c10 01671d60 01671e01 01671f01 01771c10 01771d20 01771e01 01771f01 01871c40 01871d98 01871ea1 01871f90 01971c50 01971d9c 01971ea1 01971f02 01a71c40 01a71d30 01a71e81 01a71f01 01b71c20 01b71d4c 01b71e21 01b71f02 01c71cf0 01c71d01 01c71e33 01c71f59 01d71c00 01d71de6 01d71e15 01d71f40 01e71c30 01e71d11 01e71e44 01e71f01 01f71cf0 01f71d11 01f71e11 01f71f41>

to

<data>AUccEAFHHUABRx4BAUcfAQFXHBABVx0QAVceAQFXHwEBZxwRAWcdYAFnHgEBZx8BAXccEAF3HSA
Bdx4BAXcfAQGHHEABhx2YAYceoQGHHwEBlxxQAZcdnAGXHqEBlx8CAaccQAGnHTABpx6BAacfAQG3
HCABtx1MAbceIQG3HwIBxxzwAccdAQHHHjMBxx9ZAdccAAHXHeYB1x4VAdcfQAHnHDAB5x0R
AeceRAHnHwEB9xzwAfcdEQH3HhEB9x9B</data>

I also do not understand how to obtain:

<key>IOPCIPrimaryMatch</key>
<string>0x793a1002 0x437a1002 0x43831002 0x269a8086 0x26688086 0x27d88086 0x284b8086 0x293e8086 0x026c10de 0x037110de 0x75021039 0x546110b9 0x32881106 0x026c10de 0x03e410de 0x03f010de 0x044a10de 0x044b10de</string>

Thanks,

Bramo


#26
rob3r7o

rob3r7o

    InsanelyMac Protégé

  • Members
  • PipPip
  • 94 posts
  • Gender:Male
  • Location:Cagliari
Hi,
very interesting, thank you for your job!!!!

But i have a problem.

With your HOW TO and my dump from Linux i have:
01471c10 01471d01 01471e13 01471f99
01571cf0 01571d11 01571e11 01571f41
01671cf0 01671d11 01671e11 01671f41
01771cf0 01771d11 01771e11 01771f41
01871c30 01871d18 01871ea1 01871f01
01971c30 01971d01 01971ea3 01971f99
01a71cf0 01a71d11 01a71e11 01a71f41
01b71c10 01b71d10 01b71e21 01b71f01
01c71cf0 01c71d11 01c71e11 01c71f41
01d71cf0 01d71d01 01d71e83 01d71f59
01e71c20 01e71d01 01e71e43 01e71f99

From windows vista :
01471c10 01471d01 01471e13 01471f99
01571cf0 01571d11 01571e11 01571f41
01671cf0 01671d11 01671e11 01671f41
01771cf0 01771d11 01771e11 01771f41
01871c3f 01871d18 01871ea1 01871f01
01971c30 01971d01 01971ea3 01971f99
01a71cf0 01a71d11 01a71e11 01a71f41
01b71c1f 01b71d10 01b71e21 01b71f01
01c71cf0 01c71d11 01c71e11 01c71f41
01d71cf0 01d71d01 01d71e83 01d71f59
01e71c20 01e71d01 01e71e43 01e71f99

It's a bit different. (3f and 1f)
I can see speaker hearphones volume control and mic
But i haven't sound

Alc660VD and alc861vd are similar sound card.
So with 861vd (find on the web) i have

0023B000 00237000 00237100 0033B000
00337000 00337100 00E37000 00E37100
00E3B000 00E70100 00F37000 01037000
01470740 015707C0 01670740 01870724
01970724 01A70720 01C70720 01D70720
0143B080 0153B080 0163B080 0183B080
0193B080 01A3B080 01C3B080 01D37000
02337000 02337100 02337200 02337300
02437000 02437100 02437200 02437300
01470C02 01570C02 014707C0 01570740
01470884

With this i have sound hearphones spdif (i'm working on the mic)
Where is my error???

The 861vd pin is so strange but work! Why????



Hi all,

Thank you Master Chief for nice tutorial. I am beginner and would like to know how to convert your ConfigData the tutorial:

<01471c10 01471d40 01471e01 01471f01 01571c10 01571d10 01571e01 01571f01 01671c10 01671d60 01671e01 01671f01 01771c10 01771d20 01771e01 01771f01 01871c40 01871d98 01871ea1 01871f90 01971c50 01971d9c 01971ea1 01971f02 01a71c40 01a71d30 01a71e81 01a71f01 01b71c20 01b71d4c 01b71e21 01b71f02 01c71cf0 01c71d01 01c71e33 01c71f59 01d71c00 01d71de6 01d71e15 01d71f40 01e71c30 01e71d11 01e71e44 01e71f01 01f71cf0 01f71d11 01f71e11 01f71f41>

to

<data>AUccEAFHHUABRx4BAUcfAQFXHBABVx0QAVceAQFXHwEBZxwRAWcdYAFnHgEBZx8BAXccEAF3HSA
Bdx4BAXcfAQGHHEABhx2YAYceoQGHHwEBlxxQAZcdnAGXHqEBlx8CAaccQAGnHTABpx6BAacfAQG3
HCABtx1MAbceIQG3HwIBxxzwAccdAQHHHjMBxx9ZAdccAAHXHeYB1x4VAdcfQAHnHDAB5x0R
AeceRAHnHwEB9xzwAfcdEQH3HhEB9x9B</data>



http://home2.paulsch...et/tools/xlate/

insert in hex

01471c10 01471d40 01471e01 01471f01 01571c10 01571d10 01571e01 01571f01 01671c10 01671d60 01671e01 01671f01 01771c10 01771d20 01771e01 01771f01 01871c40 01871d98 01871ea1 01871f90 01971c50 01971d9c 01971ea1 01971f02 01a71c40 01a71d30 01a71e81 01a71f01 01b71c20 01b71d4c 01b71e21 01b71f02 01c71cf0 01c71d01 01c71e33 01c71f59 01d71c00 01d71de6 01d71e15 01d71f40 01e71c30 01e71d11 01e71e44 01e71f01 01f71cf0 01f71d11 01f71e11 01f71f41

and see base 64

#27
Silencers

Silencers

    InsanelyMac Protégé

  • Members
  • PipPip
  • 87 posts
  • Gender:Male
  • Location:Riga, Latvia
I'm now figuring out AppleHDA solution for myself now, I this guide is really great, one of the best and clearest out there. Kudos to Master Chief!

Unfortunately it is abandoned and missing the essential information about how to insert prepared nodes chains into Legacy Info.plist, setting Amplifiers and Boosts on various nodes, etc. This is the part I'm now struggling with, and there's no consolidated information about it anywhere. If I'm mistaken, please point me in the right direction.

#28
kizwan

kizwan

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 1,422 posts
Yeah, it is hard to edit amplifier & boosts setting without proper understanding. If we set it too much the sound maybe have too much bass or too much "deep". The best way right now is just use the legacy kext (compatible with SL) which available in this forum. I forgot who made it but it works just fine.

If you want to learn more, there is a couple documentation about Intel HDA sound which you might want to read.
http://www.intel.com/DESIGN/CHIPSETS/HDAUDIO.HTM
kizwan

I'm now figuring out AppleHDA solution for myself now, I this guide is really great, one of the best and clearest out there. Kudos to Master Chief!

Unfortunately it is abandoned and missing the essential information about how to insert prepared nodes chains into Legacy Info.plist, setting Amplifiers and Boosts on various nodes, etc. This is the part I'm now struggling with, and there's no consolidated information about it anywhere. If I'm mistaken, please point me in the right direction.



#29
Silencers

Silencers

    InsanelyMac Protégé

  • Members
  • PipPip
  • 87 posts
  • Gender:Male
  • Location:Riga, Latvia
I've progressed quite a lot with AD1981HD, and I can now have sound, but it only works after Sleep.

Another problem is that I have mute-only amplifier on a node connecting to Microphone, and I cannot find right settings to enable this node in AppleHDA. I can send direct verb command to the node, but it will be reset after Sleep.

#30
pongpogi

pongpogi

    InsanelyMac Protégé

  • Just Joined
  • Pip
  • 7 posts
hi everyone could someone help me please im kinda stucked and dont know what to do heres my pin config
01471c10 01471d40 01471e01 01471f01 01571cf0 01571d11 01571e11 01571f41 01671cf0 01671d11 01671e11 01671f41 01871c30 01871d98 01871ea1 01871f01 01971c40 01971d99 01971ea1 01971f02 01a71c3f 01a71d30 01a71e81 01a71f01 01b71c20 01b71d41 01b71e21 01b71f02 01c71cf0 01c71d01 01c71e33 01c71f59 01d71c03 01d71dc6 01d71e05 01d71f40 01e71cf0 01e71d11 01e71e11 01e71f41

and I uploaded my dump txt from voodoo sorry im really not familiar in Linux please help this old geezer not so good in hacking.thank you so much

dump.txt voodoo

#31
Time2Retire

Time2Retire

    Retired

  • Retired Developers
  • 1,012 posts
  • Gender:Female
  • Location:anonymouse.eu

hi everyone could someone help me please im kinda stucked and dont know what to do heres my pin config

01471c10 01471d40 01471e01 01471f01 01571cf0 01571d11 01571e11 01571f41 01671cf0 01671d11 01671e11 01671f41 01871c30 01871d98 01871ea1 01871f01 01971c40 01971d99 01971ea1 01971f02 01a71c3f 01a71d30 01a71e81 01a71f01 01b71c20 01b71d41 01b71e21 01b71f02 01c71cf0 01c71d01 01c71e33 01c71f59 01d71c03 01d71dc6 01d71e05 01d71f40 01e71cf0 01e71d11 01e71e11 01e71f41

and I uploaded my dump txt from voodoo sorry im really not familiar in Linux please help this old geezer not so good in hacking.thank you so much

dump.txt voodoo


I just noticed that you post additional info here and here which I will copy and paste into my reply (before it is gone since you post in the wrong place):

HDA Codec #0: Realtek ALC662
HDA Codec ID: 0x10ec0662
Vendor: 0x10ec
Device: 0x0662
Revision: 0x01
Stepping: 0x01
PCI Subvendor: 0x837f1043

And because of this missing info I can now tell you at least something. That you need to patch AppleHDA in order to get it going (below the terminal command):

sudo perl -pi -e 's|\x85\x08\xec\x10|\x62\x06\xec\x10|g' /System/Library/Extensions/AppleHDA.kext/Contents/MacOS/AppleHDA

But you'll still need to complete the pin configuration with the info found in the first post. Additionally you may want to read my hunt for sound here (posts #3, 4 and 5 only) but please, please do NOT comment there about your ALC662 problems.

Thank you & good luck getting your audio to work :)

#32
manmal

manmal

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 435 posts
Hi,
thanks you very much for this detailed tutorial!

2 questions :

1) i didn't understand so much how to create a custom legacy kext ... and how to convert configdata in such format . Is it possible to do it manually or is there a software for converting it?

2) Is it possible to patch everything in applehda without having any other additional legacy kext?

Thanks!
Mal

#33
DirectXtraOrdinary

DirectXtraOrdinary

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 317 posts
  • Gender:Male
  • Location:Mödling, Austria
updated: works now, it's an ALC889, not 885, succesfully patched,
codec dump from ubuntu 11.04 attached.
BTW this can't be converted with verbit cause it shows:

ERROR: This doesn't appear to be an alsa codec dump file
Codec: Realtek ALC889
Address: 2
AFG Function Id: 0x1 (unsol 1)

maybe it's a better idea to dump it with ubuntu 9.10 ; )

Verbs from Win7 x64 SP1 converted with diabolic's HDA verb converter:

<01171C40 01171D01 01171E43 01171F99 01271CF0 01271D11 01271E11 01271F41 01471C10 01471D44 01471E01 01471F01 01571C12 01571D14 01571E01 01571F01 01671C11 01671D64 01671E01 01671F01 01771C14 01771D24 01771E01 01771F01 01871C50 01871D9C 01871EA1 01871F01 01971C60 01971D9C 01971EA1 01971F02 01A71C5F 01A71D34 01A71E81 01A71F01 01B71C20 01B71D4C 01B71E21 01B71F02 01C71CF0 01C71D11 01C71E11 01C71F41 01D71C01 01D71DE6 01D71E05 01D71F40 01E71C30 01E71D61 01E71E4B 01E71F01 01F71CF0 01F71D11 01F71E11 01F71F41>

Hello and thanks for your guide,

I own a Gigabyte P67A-UD4-B3 Board with the ALC889a/885 chip, read a lot of howto's but with 10.6.7 + 10.8.0 kernel I can't get my audio to work. It's told often, that this ALC885 should be working out-of-the-box but it doesn't with the latest releases of Snow Leopard.

First of all: thanks for your excellent guide!
I've been using it for my Abit IX38 Quad GT (ALC888) and my Asus P5Q3 (ALC1200) and your howto worked flawlessly for me fixing the DSDT.

Even altough the HDEF_Gigabyte.app exits I'm not able to fix the DSDT for the ALC885. What I did now: dumped the codec in Ubuntu (dump attached below), extracted the PinConfig in Windows7, converted with the online converter you suggested, and saved the output. Now I'm hanging at the IORegistryExplorer step cause the device is not showing als "built-in" HDA and some other required info is missing.

Posted Image

Maybe you have any clue how to continue with this chip. I attached all output I have. Your help would be appreciated cause a.f.a.i.k there exists now python fix for the ALC885.
thanks + regards

Attached Files







0 user(s) are reading this topic

0 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