Contribute
Register

Any fix to the Garbled/Distorted Headphone issue?

Status
Not open for further replies.
Hi Rehabman,

Sorry for let you wait.
I just finished my class. :O

Here are IOREGs from 2015 Retina MacBook Pro 13inch and 2015 MacBook Air 13.
View attachment 133260
View attachment 133261

FYI, here is a quick note on @lisai9093's new broadwell-based laptop.
http://www.firewolf.science/2015/04...-a-new-laptop-with-intel-broadwell-processor/

Not really too many surprises there... ig-platform-id used to select framebuffer config, etc. I do notice a new injection 'StartupDisplay' in IOACPIPlane/IGPU.
 
If you have alc255, the configuration is actually same as Rehabman's one.

so its plug and play???

I edited the codec id and coverted the hex to decimal....


Here is what it looks like now....why isn't it working?

</dict>
<key>Realtek ALC255</key>
<dict>
<key>Check Infinitely</key>
<false/>
<key>Codec Id</key>
<array>
<integer>283902549</integer>
</array>
<key>Custom Commands</key>
<array>
<dict>
<key>Command</key>
<integer>26674981</integer>
<key>Comment</key>
<string>Pin Widget Control, Node 0x19 = 0x25</string>
<key>On Init</key>
<true/>
<key>On Sleep</key>
<false/>
<key>On Wake</key>
<true/>
</dict>
<dict>
<key>Command</key>
<integer>35063744</integer>
<key>Comment</key>
<string>Pin Widget Control, Node 0x21 = 0xc0</string>
<key>On Init</key>
<true/>
<key>On Sleep</key>
<false/>
<key>On Wake</key>
<true/>
</dict>
</array>
<key>Perform Reset</key>
<true/>
<key>Send Delay</key>
<integer>100</integer>
<key>Update Nodes</key>
<true/>
 
so its plug and play???

I edited the codec id and coverted the hex to decimal....


Here is what it looks like now....why isn't it working?

</dict>
<key>Realtek ALC255</key>
<dict>
<key>Check Infinitely</key>
<false/>
<key>Codec Id</key>
<array>
<integer>283902549</integer>
</array>
<key>Custom Commands</key>
<array>
<dict>
<key>Command</key>
<integer>26674981</integer>
<key>Comment</key>
<string>Pin Widget Control, Node 0x19 = 0x25</string>
<key>On Init</key>
<true/>
<key>On Sleep</key>
<false/>
<key>On Wake</key>
<true/>
</dict>
<dict>
<key>Command</key>
<integer>35063744</integer>
<key>Comment</key>
<string>Pin Widget Control, Node 0x21 = 0xc0</string>
<key>On Init</key>
<true/>
<key>On Sleep</key>
<false/>
<key>On Wake</key>
<true/>
</dict>
</array>
<key>Perform Reset</key>
<true/>
<key>Send Delay</key>
<integer>100</integer>
<key>Update Nodes</key>
<true/>

It seems right. But I cannot verify since I am not under Mac right now..... Meanwhile you can try playing around with hda-verb command. For example, this command "hda-verb 0x19 SET_PIN_WIDGET_CONTROL 0x25" get my headphone working. You can try other combinations if that is not working for you.
 
Not really too many surprises there... ig-platform-id used to select framebuffer config, etc. I do notice a new injection 'StartupDisplay' in IOACPIPlane/IGPU.

Hi Rehabman,

Good news. My friend and I tried very hard yesterday night. We are pretty sure the panic is caused by the BDW framebuffer kext. He patched the framebuffer kext to avoid the panic and succeeded.

But the new problem is now I have black screen for any ig-platform-id injection. Well it is not totally black, I could see the cursor clearly, no distortion. Except that, it is black most of time or small glitch somewhere. I tried to screenshot the whole screen. The picture I got is also complete black. So wired...
 
It seems right. But I cannot verify since I am not under Mac right now..... Meanwhile you can try playing around with hda-verb command. For example, this command "hda-verb 0x19 SET_PIN_WIDGET_CONTROL 0x25" get my headphone working. You can try other combinations if that is not working for you.


Could you upload yours?.... We have the same codec ....yours must be different somehow
 
You first need to determine which widget nodes need modification. You use CodecCommanderClient (installed as hda-verb with 'make install') to determine what needs to change. After you determine the widget node that needs to be set after sleep, you can make the necessary Info.plist changes.

I added some scripts to the repo today based on stuff that the-darkvoid provided. They are simple scripts that run hda-verb for all nodes...

Check out the repo: https://github.com/RehabMan/EAPD-Codec-Commander

Here's an overview of what I did:

- installed and got VoodooHDA to work (built from latest sources, fixed bugs, etc.)
- noticed that no headphone problem with VoodooHDA
- used widget_dump.sh to look at the widget values
- set everything back for patched AppleHDA
- verified headphones still a problem
- used widget_dump.sh to look at widget values
- compared the two dumps (VoodooHDA vs. AppleHDA dump)
- started poking around with hda-verb to set the pini widgets control
- for example, I noticed that pin widget for node 0x19 was 0 with AppleHDA, but 0x25 with VoodooHDA, so with AppleHDA (headphone problematic):
Code:
  hda-verb 0x19 SET_PIN_WIDGET_CONTROL 0x25
- tested headphones... and at that point they were working

And all that led to what is now in the checked in Info.plist for CodecCommander, Realtek ALC283 profile.

I'm not sure how you'd stumble into the right setup without having a working configuration (in my case, VoodooHDA) that you can read the HDA configuration from. It would take a lot of trial/error (or reading the HDA spec) to figure out that node 0x19 needs to be 0x25.

Maybe there is a way to read HDA pin widget control (or other settings) in Linux?

Note: I did a fair bit of reading of the Intel HDA spec.... That way I knew what an HDA verb was, what a node was, etc.

sorry to keep bumping but this is the only thing stopping e from a perfecto hack

Ok @rehabman Im trying to go along with the method you posted before, since the pin values I have after changing my codec Id doesnt seem to work at all...I also want to try this to fix the no audio after sleep issue...but don't understand how to get the script to run....Never done anytype of thing like this ever.....




from what I have read.....you drag the script into the terminal nd make sure the script is in the same folder as hda-verb....thn drag script to terminal but i just get this...


Pros-MacBook-Air:desktop protoolsfor96$ /Users/protoolsfor96/Desktop/widget_dump.sh
/Users/protoolsfor96/Desktop/widget_dump.sh: line 1: +#!/bin/bash: No such file or directory
/Users/protoolsfor96/Desktop/widget_dump.sh: line 2: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 3: +#: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 4: +#: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 5: +#: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 6: +#: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 7: +#: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 8: +#: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 9: +#: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 10: +#: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 11: +#: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 12: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 13: +#: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 14: +#: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 15: +#: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 16: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 17: +function: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 18: +{: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 19: hda-verb: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 19: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 20: +}: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 21: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 22: +function: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 23: +{: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 24: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 25: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 26: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 27: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 28: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 29: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 30: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 31: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 32: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 33: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 34: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 35: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 36: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 37: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 38: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 39: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 40: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 41: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 42: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 43: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 44: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 45: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 46: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 47: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 48: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 49: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 50: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 51: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 52: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 53: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 54: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 55: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 56: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 57: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 58: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 59: +}: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 60: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 61: +#echo: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 62: +#dump_all: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 63: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 64: +#echo: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 65: +#dump_all: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 66: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 67: +#echo: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 68: +#dump_all: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 69: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 70: +echo: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 71: +dump_all: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 72: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 73: +#echo: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 74: +#dump_all: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 75: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 76: +#echo: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 77: +#dump_all: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 78: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 79: +#echo: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 80: +#dump_all: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 81: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 82: +#echo: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 83: +#dump_all: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 84: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 85: +#echo: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 86: +#dump_all: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 87: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 88: +#echo: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 89: +#dump_all: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 90: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 91: +#echo: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 92: +#dump_all: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 93: +: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 94: +#echo: command not found
/Users/protoolsfor96/Desktop/widget_dump.sh: line 95: +#dump_all: command not found
Pros-MacBook-Air:desktop protoolsfor96$




SOMEONE HELP PLEASE....ITS DRIVING ME NUTS!
 
First you need to build and install CodeCommander and hda-verb.

Code:
cd ~
mkdir Projects
cd Projects
git clone https://github.com/RehabMan/EAPD-Codec-Commander.git codec.git
cd codec.git
make
make install

That will install CodecCommander.kext built from sources and will install hda-verb to /usr/bin.

Then you'll be able to run the scripts such as widget_dump.sh.

Note: You'll need to have Xcode installed. Keep in mind the default project as checked in uses SDK 10.6 which comes from previous versions of Xcode. You'll probably want to change the project so it uses a newer SDK as it may be a bit much for you to obtain the older SDK and install it to the proper place (/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/).

The pre-built hda-verb is in my download .ZIP also, but I'm assuming that you'll want to be able to build your own CodecCommander.kext once you determine the nodes that need tweaking. You can copy hda-verb for use by the script to /usr/bin (so it is in your path).
 
Ok thanks, unfortunately for me I think its a lost cause, Even a new build voodoo doesnt fix the headphone issue ....so I would just be guessing values which is even more frustrating...Dark void mentioned another technique whcih confused me even more...Plus I installed hda-verb to the /usr/bin locaion and I still get command not found....



I'm a novice at best and most of your directions leaving me scratching for days lol...Ill have to just wait for an alternative, I dont understand why your kext works for the other person with the same codec as mine but not me...its a bit bizarre...

Maybe the kext isnt loading? i know the command to check kexts loaded but i never see a "codeccommnder" in the list...is that it perhaps?
 
Sorry for late reply. Here is mine. Try it.
 

Attachments

  • CodecCommander.kext 2.zip
    20.4 KB · Views: 201
Status
Not open for further replies.
Back
Top