Help - Search - Members - Calendar
Full Version: [HOW TO] Pin Config!
InsanelyMac Forum > OSx86 Project > Hardware and Drivers > Sound
Pages: 1, 2
gbonilla
Hey Macgirl can you provide the link to the ALSA driver so I can take a look at it as well, it sounds interesting.
MacUser2525
QUOTE (gbonilla @ Jan 13 2009, 01:10 PM) *
Hey Macgirl can you provide the link to the ALSA driver so I can take a look at it as well, it sounds interesting.


http://www.google.ca/search?q=alsa+driver+...lient=firefox-a

First link...
macgirl
QUOTE (gbonilla @ Jan 13 2009, 11:10 AM) *
Hey Macgirl can you provide the link to the ALSA driver so I can take a look at it as well, it sounds interesting.

This is the source I get with kubuntu 8.04:
http://www.mediafire.com/download.php?nmnfrz1umjw
Slice
QUOTE (macgirl @ Jan 13 2009, 07:56 PM) *
In my case I use:

Node 19 - Internal Digital Mic
Node 14 - External Mic (Right jack)
Node 12 - Line in, but it is configurable on the line out (center jack) so I can leave as Line Out or as a Line In, depends on pin config but can be software controlled with the current AppleHDA.

Node 13 - Internal Speakers
Node 10 - Headphones (left jack)
Node 15 - Line Out (center jack)

and there are two more:
node 33 - SPDIF Out (thru HDMI)
node 34 - SPDIF In (don't know thru where)

Hi macgirl!
I see you use the same nodes as me (except virtual Internal Digital Mic). Did you got AppleHDA 1.6.2 working? Did you have Input slider?
gbonilla
I believe the key to getting the Internal Mic working as well as Mic Sliders is utilizing the DspFuncLib.kext in AppleHDA 1.6.2. As you can see in The Kings kext in his How To Patch AppleHDA, if you look in layouts under HDAPlatform and look at mic you can see he implemented the DspFuncLib if we can only utilize this as well we'll all be able to get the slider working.

I strongly believe this is the thing to do to get the slider working. I messed around with it a bit last night but couldnt get it going. Hopefully one of you can get it working and we'll all be happy campers.
macgirl
QUOTE (Slice @ Jan 14 2009, 08:19 AM) *
Hi macgirl!
I see you use the same nodes as me (except virtual Internal Digital Mic). Did you got AppleHDA 1.6.2 working? Did you have Input slider?

Yes I have modded 1.6.2a37 working, but also Legacy AppleHDA with Extra kexts.

Here they are:
Click to view attachment
You only need to change Pathmap and pin config to reflect your internal mic

@gbonilla, thanks I will begin investigation of the DspFuncLib, thanks for the hint.
macgirl
A little progress on the pin config of the Internal digital Mic on the XPS M1330/1550: http://forum.insanelymac.com/index.php?s=&...t&p=1041592
Slice
I have full working sound with two configuration (all inputs and all outputs)
Hack#1 - Realtek ALC883
Hack#3 - Sigmatel 9228
But there is a difference. In #1 I have input control sliders. In #3 - no.
I compare byte by byte all info.plist and no significant differencies found. Only nodeIDs and codecID are different. But I don't know how to compose ConfigData in HDAController. May be here?
gbonilla
QUOTE (Slice @ Jan 16 2009, 04:51 AM) *
I have full working sound with two configuration (all inputs and all outputs)
Hack#1 - Realtek ALC883
Hack#3 - Sigmatel 9228
But there is a difference. In #1 I have input control sliders. In #3 - no.
I compare byte by byte all info.plist and no significant differencies found. Only nodeIDs and codecID are different. But I don't know how to compose ConfigData in HDAController. May be here?


If you're using my latest kext then you should have all the correct configdata.
Slice
I found Input slider!
Click to view attachment
It depends on amp section at nodes 24, 25 and 26.

Now I want to understand how to make autodetect of outputs. 7th digit at PinDefault?

EDITED: No, simply join outputs into <array></array>
That all! My sigmatel 9228 works with autodetect and with input sliders smile.gif
gbonilla
Very nice find, the last thing to get now is Ambient Noise Reduction.
Slice
QUOTE (gbonilla @ Jan 18 2009, 02:14 AM) *
Very nice find, the last thing to get now is Ambient Noise Reduction.

Input slider to the left? Or you have another thought?
macgirl
QUOTE (Slice @ Jan 17 2009, 07:56 AM) *
I found Input slider!
Click to view attachment
It depends on amp section at nodes 24, 25 and 26.

Now I want to understand how to make autodetect of outputs. 7th digit at PinDefault?

EDITED: No, simply join outputs into <array></array>
That all! My sigmatel 9228 works with autodetect and with input sliders smile.gif

Yes, it worked.

QUOTE (gbonilla @ Jan 17 2009, 05:14 PM) *
Very nice find, the last thing to get now is Ambient Noise Reduction.

I think it depens on SignalProcessing on inputs at Layout, in one of my tests I copied one from another layout and the DSP noise reduction appears, I cant replicate it on the external Mic tho.

see the code:
CODE
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SoftwareDSP</key>
<dict>
<key>DspFunction0</key>
<dict>
<key>FunctionInfo</key>
<dict>
<key>DspFuncInstance</key>
<integer>0</integer>
<key>DspFuncName</key>
<string>DspNoiseReduction</string>
<key>DspFuncProcessingIndex</key>
<integer>0</integer>
</dict>
<key>ParameterInfo</key>
<dict>
<key>1</key>
<integer>0</integer>
<key>2</key>
<integer>0</integer>
<key>3</key>
<integer>0</integer>
<key>4</key>
<integer>0</integer>
</dict>
<key>PatchbayInfo</key>
<dict/>
</dict>
<key>DspFunction1</key>
<dict>
<key>FunctionInfo</key>
<dict>
<key>DspFuncInstance</key>
<integer>1</integer>
<key>DspFuncName</key>
<string>DspGainStage</string>
<key>DspFuncProcessingIndex</key>
<integer>1</integer>
</dict>
<key>ParameterInfo</key>
<dict>
<key>1</key>
<integer>0</integer>
<key>2</key>
<integer>1078616770</integer>
<key>3</key>
<integer>1078616770</integer>
</dict>
<key>PatchbayInfo</key>
<dict>
<key>InputPort0</key>
<dict>
<key>PortInstance</key>
<integer>0</integer>
<key>PortWidth</key>
<integer>1</integer>
<key>SourceFuncInstance</key>
<integer>0</integer>
<key>SourcePortIndex</key>
<integer>0</integer>
</dict>
<key>InputPort1</key>
<dict>
<key>PortInstance</key>
<integer>1</integer>
<key>PortWidth</key>
<integer>1</integer>
<key>SourceFuncInstance</key>
<integer>0</integer>
<key>SourcePortIndex</key>
<integer>1</integer>
</dict>
</dict>
</dict>
<key>DspFunction2</key>
<dict>
<key>FunctionInfo</key>
<dict>
<key>DspFuncInstance</key>
<integer>2</integer>
<key>DspFuncName</key>
<string>DspEqualization</string>
<key>DspFuncProcessingIndex</key>
<integer>2</integer>
</dict>
<key>ParameterInfo</key>
<dict>
<key>1</key>
<integer>0</integer>
<key>Filter</key>
<array>
<dict>
<key>2</key>
<integer>2</integer>
<key>3</key>
<integer>0</integer>
<key>4</key>
<integer>0</integer>
<key>5</key>
<integer>5</integer>
<key>6</key>
<integer>1110558492</integer>
<key>7</key>
<integer>1060439283</integer>
<key>8</key>
<integer>-1044381696</integer>
</dict>
<dict>
<key>2</key>
<integer>2</integer>
<key>3</key>
<integer>1</integer>
<key>4</key>
<integer>0</integer>
<key>5</key>
<integer>4</integer>
<key>6</key>
<integer>1143886938</integer>
<key>7</key>
<integer>1058341842</integer>
<key>8</key>
<integer>-1093363620</integer>
</dict>
<dict>
<key>2</key>
<integer>2</integer>
<key>3</key>
<integer>5</integer>
<key>4</key>
<integer>0</integer>
<key>5</key>
<integer>4</integer>
<key>6</key>
<integer>1165224806</integer>
<key>7</key>
<integer>1068796443</integer>
<key>8</key>
<integer>-1055339134</integer>
</dict>
<dict>
<key>2</key>
<integer>2</integer>
<key>3</key>
<integer>15</integer>
<key>4</key>
<integer>0</integer>
<key>5</key>
<integer>6</integer>
<key>6</key>
<integer>1180776798</integer>
<key>7</key>
<integer>1060439283</integer>
<key>8</key>
<integer>-1045426644</integer>
</dict>
</array>
</dict>
<key>PatchbayInfo</key>
<dict>
<key>InputPort0</key>
<dict>
<key>PortInstance</key>
<integer>0</integer>
<key>PortWidth</key>
<integer>1</integer>
<key>SourceFuncInstance</key>
<integer>1</integer>
<key>SourcePortIndex</key>
<integer>0</integer>
</dict>
<key>InputPort1</key>
<dict>
<key>PortInstance</key>
<integer>1</integer>
<key>PortWidth</key>
<integer>1</integer>
<key>SourceFuncInstance</key>
<integer>1</integer>
<key>SourcePortIndex</key>
<integer>1</integer>
</dict>
</dict>
</dict>
<key>DspFunction3</key>
<dict>
<key>FunctionInfo</key>
<dict>
<key>DspFuncInstance</key>
<integer>3</integer>
<key>DspFuncName</key>
<string>DspMultibandDRC</string>
<key>DspFuncProcessingIndex</key>
<integer>3</integer>
</dict>
<key>ParameterInfo</key>
<dict>
<key>1</key>
<integer>0</integer>
<key>Crossover</key>
<dict>
<key>4</key>
<integer>1</integer>
<key>5</key>
<integer>0</integer>
<key>6</key>
<integer>1128792064</integer>
</dict>
<key>Limiter</key>
<array>
<dict>
<key>10</key>
<integer>-1054694750</integer>
<key>11</key>
<integer>1092338628</integer>
<key>12</key>
<integer>-1048995430</integer>
<key>13</key>
<integer>1067869798</integer>
<key>14</key>
<integer>-1027604480</integer>
<key>15</key>
<integer>1065353216</integer>
<key>16</key>
<integer>1065353216</integer>
<key>17</key>
<integer>1073741824</integer>
<key>18</key>
<integer>1122916955</integer>
<key>19</key>
<integer>1117579240</integer>
<key>2</key>
<integer>1</integer>
<key>20</key>
<integer>1137180672</integer>
<key>21</key>
<integer>0</integer>
<key>22</key>
<integer>0</integer>
<key>23</key>
<integer>1</integer>
<key>3</key>
<integer>0</integer>
<key>7</key>
<integer>0</integer>
<key>8</key>
<integer>0</integer>
<key>9</key>
<integer>-1094269236</integer>
</dict>
</array>
</dict>
<key>PatchbayInfo</key>
<dict>
<key>InputPort0</key>
<dict>
<key>PortInstance</key>
<integer>0</integer>
<key>PortWidth</key>
<integer>1</integer>
<key>SourceFuncInstance</key>
<integer>2</integer>
<key>SourcePortIndex</key>
<integer>0</integer>
</dict>
<key>InputPort1</key>
<dict>
<key>PortInstance</key>
<integer>1</integer>
<key>PortWidth</key>
<integer>1</integer>
<key>SourceFuncInstance</key>
<integer>2</integer>
<key>SourcePortIndex</key>
<integer>1</integer>
</dict>
</dict>
</dict>
</dict>
</dict>
</plist>
PainWarlock
you can also do this in linux aswell if you have the codec all the pins are in there

you can also do this in linux aswell if you have the codec all the pins are in there
Boombeng
QUOTE (PainWarlock @ Jan 22 2009, 03:50 AM) *
you can also do this in linux aswell if you have the codec all the pins are in there

you can also do this in linux aswell if you have the codec all the pins are in there


No really ? rolleyes.gif
Slice
QUOTE (Boombeng @ Jan 23 2009, 08:32 PM) *
No really ? rolleyes.gif

Really no.
Boombeng
laugh.gif Now I realy know
Mammoth
Wow, you guys knocked that out pretty quick!

Can someone put together a little "how to" guide for those of who are NOT geniuses? withstupid.gif


Thanks!
psirus
Hii... i tried to install this hack on my dell studio XPS 13 but ...i cant find the "PinConfigOverrideVerbs"-tab/folder if i look up my GUID...i can find the the main folder....but there is no PinConfigOverrideVerbs folder under one of the subfolders.
bkchoi
I've been working to get a headset to work with the external mic port (Dell E1405/Sigmatel 9200). It's working finally with some change on the configdata section. I want to share my experience with everyone, especially with those people with 9200 chipsets.

By default, exernal mic ports on Mac work as line-in ports, which means enough VREF (mic vcc, mic bias...) is not applied to the ports. This is why headsets do not work with macs I guess. I tried to solve this by putting VREF key in the pathmap section, but it didn't got working.

While doing some googling, I bumped into this document:
http://www.idt.com/products/getDoc.cfm?docID=18451986

The document has complete information of the chip (including every verb data). To apply VREF to the external mic port, I added 01070721 to the configdata section, which changes VRefSelect bit field to 1 for the node 0x10 (the external mic port). The real interesting part is that you could do anything by putting configdata. For example, you can use a headphone out port as a line-in to get two input sources at the same time. That means, you can hook up two guitars in Garageband and record at the same time.....
Riley Freeman
Bit confused here...

If I get the pin config data via Vista, bit-flip it and paste it into AppleHDAController is that all I need to get sound working? From reading some other threads (like the Linux Pin Config one) there's node data that has to go into AppleHDAPlatformDriver too. Is all this stored in the Vista registry entry too?
drumthrasher109
Can someone help guide me through doing this? My main goal is to get the front headphone/mic in/out ports working. Sound already works with some AppleHDA stuff.

Here's the numbers and junk after it has been flipped:
<0073c101 0073d100 0073e165 0073f181>
drumthrasher109
Ok, I can't find "AppleHDAController" or anything like that... I do have a "AppleHDA.kext". I opened that file with Plist Edit Pro and it doesn't seem to do anything...
theguillermo
How can I do this in linux?
Update:
I found solution. For everyone:
http://www.insanelymac.com/forum/index.php?showtopic=149128
Avakov
In SL you should add your PinConfig to: /S/L/E/AppleHDA.kext/Contens/Plugins/AppleHDAHardwareConfigDriver.kext/Info.plist
Avakov
I added pinconfiguration, pciconfigs, codecid into AppleHDA but I haven't sound sad.gif
rob3r7o
Hi,
in my windows 7 regedit i have keys from 0 to 43 and the last key is numverbs,
Is it important?
dotjuice
QUOTE (MacNutty @ Nov 22 2008, 05:37 AM) *
How to byte flip it?

To anyone who has trouble flipping the bytes, I've created a macro in a spreadsheet to do this for you.
I'm not allowed to upload this type of file so just copy and paste this code in a new excel module from the VB editor that comes with Excel. (Press Alt + F11 from within excel to do so)

CODE
Sub FlipBytes()
Dim inputSource, outputDestination
inputSource = InputBox("Enter source cell ref", "Source")
On Error GoTo exitsub
Dim varInput As String, varOutput As String
varInput = Range(inputSource).Value2
Dim bytes As Integer

Dim starter, ender
    starter = 1
    ender = 8

bytes = Len(varInput) / 8

Do Until bytes = 0

    Dim workingstring As String
    workingstring = Mid(varInput, starter, ender)
    workingstring = Mid(workingstring, 7, 2) & Mid(workingstring, 5, 2) & _
    Mid(workingstring, 3, 2) & Mid(workingstring, 1, 2)
    varOutput = varOutput & workingstring

    
    starter = starter + 8
    ender = ender + 8
    bytes = bytes - 1
    
Loop
outputDestination = InputBox("Enter cell ref for output", "Output")
On Error GoTo exitsub
Range(outputDestination).Value2 = varOutput
exitsub:
End Sub
stifenhowk
Hello age_sabres18.
I read your entire post really your information is too good for me and my friends.
Thanks.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.