Jump to content

Yosemite: Audio - Realtek ALC AppleHDA


toleda
 Share

793 posts in this topic

Recommended Posts

I appreciate the help, but I honestly have no idea what to do with this. I followed the link and went through the read me, but I don't understand what it is that I'm supposed to do.

That actually didn't quite work for me.  Maybe I did something wrong...? The readme didn't specify where exactly in the config do we need to add those things. Anyway, I'll try to explain what I got from the readme posted on github. And you can try it for yourself. See if it makes any difference for you. As I said, it didn't make any difference for me.

 

If you're looking for a workaround for when the computer goes to sleep automatically after a period of time, you can go to System Preferences>Energy Saver and check Prevent computer for sleeping automatically when the display is off. This will basically not allow your computer to sleep, no matter if the screen is idle due to a certain period of inactivity or not. Sadly that won't help if you purposefully put your computer to sleep.

 

First, it will differ a little bit between a desktop and a laptop. So choose what you need from what I will write below.

 

To fix this (in Mavericks or Yosemite, no need to do it in Mountain Lion), you need to go to EFI>EFI>CLOVER and edit the config.plist file. So far so good, right? I think you already got that from the github readme as well. :) Bear with me. It's about to get interesting.

 

Edit config.plist to look like this (not sure I chose the right place to copy-paste that code from github, but seemed appropriate to me:

 

post-1303722-0-49803100-1414658956_thumb.png

post-1303722-0-61446300-1414658941_thumb.png

Notice that I already changed a few things compared to this example:

 

<key>Default</key>
<dict>
<key>HDEF Device Location</key>
<string>1B</string>
<key>Codec Address Number</key>
<integer>0</integer>
<key>Check Interval</key>
<integer>5000</integer>
<key>Check Infinitely</key>
<true/>
</dict>

Now, to see what do YOU need to edit for your case, you need to run this command in terminal and note a few things:

 

ioreg | grep EngineOutput

Now, note the highlighted things in this screenshot:

 

post-1303722-0-79601500-1414658930_thumb.png

As you can see, just like in the example, my HDEF Device Location is also 1B so I left that unchanged in the config file. If it's different for you, you might need to change this accordingly.

 

Also, you can see that my Codec Address Number (first digit after 1B) is not 0, but 2. So I replaced the 0 in the example, with 2 for my case.

 

Now, since I'm using a desktop computer, and since the readme says

 

Since codec can report EAPD capability for certain nodes, but EAPD may not actually physically be there (common case for most of desktop codecs) and your codec only needs to be reset, you can specify:

<key>Update Nodes</key>
<false/>

I also added this to my config.plist:

 

post-1303722-0-91226100-1414658948_thumb.png

 

After that, you need to Save the changes made to the config file and restart your computer.

 

In order to see if this had any effect, you need to put your computer to sleep, wait for at least 25 seconds, wake it up, and then try to play something.

 

Again, that didn't work for me. I thought it did, but it turns out it didn't. So try and see if it actually works for you.

 

@toleda, if I got it wrong, could you please, specify what I did wrong so I can fix it and try again? Thanks!

Link to comment
Share on other sites

Arsradu, thanks for the post. I had thought this was what I was supposed to do, but I wasn't really sure it was that or the plist of the kext. I guess, more than anything, the .cpp file through me off. I wasn't sure if there was supposed to be some kind of executable or it was all in the readme. In any case, I did run the terminal commands and whatnot, so the edits necessary for myself would be the same as you. I can give this a try, but considering it didn't work for you, I don't have high hopes.

 

 

On a separate note. If I were to run audio through HDMI port on my discrete graphics card, could that potentially fix this issue? From my understanding that would require a DSDT and some other stuff, but wondering if it may prevent the sleep issue?

Link to comment
Share on other sites

 

 

 

I appreciate the help, but I honestly have no idea what to do with this. I followed the link and went through the read me, but I don't understand what it is that I'm supposed to do.

you should simply compile the kext using xcode 
and then make the necessary changes in info.plist.
Link to comment
Share on other sites

 

you should simply compile the kext using xcode 
and then make the necessary changes in info.plist.

 

 

I wish I knew how to do this, but I don't. How is this any different than Show contents... and editing the info.plist from there? Do I need to decompile and recompile in Xcode before and after edits?

Link to comment
Share on other sites

I'm going to elaborate on my previous post (#302) to help people who are losing audio on wake from sleep.

Using the EAPD-Codec-Commander method, we will build a kext with Xcode, tailored to our machine.

 

1) Download EAPD-Codec-Commander here (click on 'download ZIP' on the right hand side)

 

2) Open CodecCommander-info.plist, found in the CodecCommander folder. You will have to edit this to match your configuration. The instructions are on the Github page, so I won't repeat it here.

 

3) Open Xcode (if you don't have it, download it from App Store). 'Open' and find CodecCommander.xcodeproj. Once the project is 'open', we can press build from the tool bar at the top.

 

4) Once done, a new kext file called CodecCommander.kext will be created. The file can be found somewhere along ~/Library/Developer/Xcode/DerivedData/... (sorry, I forgot the exact path).

 

5) Use Kext Utility (or other) to install the kext.

 

6) Done!

  • Like 6
Link to comment
Share on other sites

I'm going to elaborate on my previous post (#302) to help people who are losing audio on wake from sleep.

Using the EAPD-Codec-Commander method, we will build a kext with Xcode, tailored to our machine.

 

1) Download EAPD-Codec-Commander here (click on 'download ZIP' on the right hand side)

 

2) Open CodecCommander-info.plist, found in the CodecCommander folder. You will have to edit this to match your configuration. The instructions are on the Github page, so I won't repeat it here.

 

3) Open Xcode (if you don't have it, download it from App Store). 'Open' and find CodecCommander.xcodeproj. Once the project is 'open', we can press build from the tool bar at the top.

 

4) Once done, a new kext file called CodecCommander.kext will be created. The file can be found somewhere along ~/Library/Developer/Xcode/DerivedData/... (sorry, I forgot the exact path).

 

5) Use Kext Utility (or other) to install the kext.

 

6) Done!

For some reason I couldn't find that path simply by navigating through Finder. Maybe some folder is hidden.

 

But this terminal command did the trick to get me to the right place:

open ~/Library/Developer/Xcode/DerivedData/

The folder under /DerivedData is (in my case):  /CodecCommander-fsbfgorrjuhgzmehcbuybmlkzgwu/Build/Products/Debug. Here there should be the CodecCommander.kext file (assuming the building was successful). I feel like the "fsbfgorrjuhgzmehcbuybmlkzgwu" part might be different for others, so that's something to be kept in mind when looking for that kext.

 

After that, all you need to do is put it in EFI>EFI>CLOVER>kexts>10.10 and reboot the system.

 

So far it seems to be working. :)

 

Thank you!

  • Like 1
Link to comment
Share on other sites

Glad it helped! There really should be mention on Codec Commander's github that it needs to be compiled in Xcode as that's where I was stumped.

 

I believe you can get to the directory by doing cmd + shift + G in finder, and paste the start of the path.

 

 

 

Is anyone else hearing static noises when OS X is booting up and transitioning to the sign-in screen? It isn't random noise as it sounds exactly the same each time I boot up.

Link to comment
Share on other sites

Glad it helped! There really should be mention on Codec Commander's github that it needs to be compiled in Xcode as that's where I was stumped.

 

I believe you can get to the directory by doing cmd + shift + G in finder, and paste the start of the path.

 

 

 

Is anyone else hearing static noises when OS X is booting up and transitioning to the sign-in screen? It isn't random noise as it sounds exactly the same each time I boot up.

About opening that folder, yes, you're right. You can either open it form terminal using "open [relative path to the directory]" or, if you're already in Finder, by pressing Cmd + Shift + G and pasting the path to the directory. It will work either way.

 

About the static noise, not sure we're talking about the same thing but I think that's when the sound is initialized and hearing that sound/noise is normal. Well, not perfect, but normal as in everyone has it. But of course I might be wrong, especially since I'm not 100% sure we're talking about the same thing, so don't quote me on that. :))

Link to comment
Share on other sites

Toleda, first of all, thank you for all the work making this guides!

 

So, I'm trying to make my ALC887 (ALC888b) work, but I'm having no luck!

 

Here's the debug info:

 

Yosemite 10.10 / ASUS P8H61M LE BR Rev3 / Core i5 2400 / GeForce GT220 1GB

CLOVER: Devices/Audio/Inject/1 (tried 2 and 3 too)

IOREG DUMP

LAST BOOT LOG

AppleHDA.kext Yosemite Native since Install.

No other related kext installed

CONFIG.PLIST

 

Just a quick edit:

 

On System Information i got:

 

https://www.dropbox.com/s/kqcg9lte68b4lno/Screenshot%202014-11-04%2016.01.14.png?dl=0

 

On System Preferences:

 

https://www.dropbox.com/s/6sa34sqbbwzerbt/Screenshot%202014-11-04%2016.01.34.png?dl=0

 

Thanks!

Link to comment
Share on other sites

Hello folks,

 

I have a two part question, one is academical and the other one is more technical :)

 

  1. What are my options when it comes to enabling sound support for onboard ALC cards ?
  • One can install a card specific kext file from a well know post installation tool. Question is, does this tool modify native AppleHDA.kext file or it simply installs a kext right next to it ?
  • One can install an HDAEnabler that has been modified to have that specific card audio id inserted
  • Then you have other way where you inject audio id/HDEF information in the bootloader of Clover/Chameleon
  • Then you have a DSDT option and works in conjunction with modified AppleHDA.kext

my question is why would one select one method over the other. Can you please provide some feedback/clarification on the items listed above ? Does one method survive upgrades better than the other.

 

     2.  Second question is about the issue i am having with my ALC888 card (linux shows it as ALC1200).  Here is my system info:

 

   System Info - OSX 10.10 ,  It's an HP Pavilion Intel Core 2 Quad. I have no idea what motherboard is in this PC. Video Card Nvidia GT 240

   Procedure - I used to run Mavericks and for the sound card i used to install ALC888 Legacy v100202 kext using the well know installation tool. I have the latest version of this tool and installing this kext no longer works. DPCImanager shows absolutely no codec for the card.

 

Please see attached zip file system files.

 

Thank you so much

  

Archive-1.zip

Link to comment
Share on other sites

Here's the output:

Patch failed because the native config.plist/KernelAndKextPatches/KextsToPatch/ patches have been removed.  Add native KextsToPatch/ 2 patches to config.plist.

  1. What are my options when it comes to enabling sound support for onboard ALC cards ?
  2. Second question is about the issue i am having with my ALC888 card (linux shows it as ALC1200).  Here is my system info:

1. Enabling sound:

1a. Replaces the installed AppleHDA.kext with a codec specific AppleHDA.kext

1b. HDAEnabler1.kext injects HDEF/layout-id (one of 5 techniques), requires a codec specific AppleHDA.kext

1c. Clover/Chameleon inject HDEF/layout-id (2 of 5 techniques), requires a codec specific AppleHDA.kext

1d. dsdt/HDEF edit (1 of 5 techniques), requires a codec specific AppleHDA.kext

1e. ssdt/HDEF (1 of 5 techniques), requires a codec specific AppleHDA.kext

1f. For more information, see Realtek ALC AppleHDA Audio Injection

 

2. ALC888 problem, no dsdt/HDEF; use 1b, 1d or 1e (above) to solve

Link to comment
Share on other sites

Toleda,

 

thank you very much for replying to my questions, i want to understand why i am doing things and not just blindly follow instructions.

 

For options 1b-1c , are we actually injecting HDEF values into the AppleHDA.kext file ? If that is the case isn't it the same as 1a ? We are modifying original AppleHDA.kext ?

 

For options 1d-1e, from my limited hackintosh experience i thought the purpose of using DSDT is to not mess with kext files, we are telling OSX how to interact with the hardware. Then why are we still needing a codec specific AppleHDA.kext ?

 

 

 

For my ALC888 problem i have 3 options:

 

1b - I assume i would got to your github and get either HDAEnabler1.kext for non-DSDT systems or HDAEnabler2.kext for systems using DSDT ?  

1d - I assume i would need to look around for some DSDT patches for my card, is it just a matter of trial and error (considering that my system is not in the DSDT database for system boards)

1e - same as 1d, i still need to research the difference between DSDT and SSDT.

 

The 3 options above all mention using a codec specific AppleHDA.kext file, would it be the same file for options 1b,1d and 1e  and where one would search for this codec ?

 

Thank you so much for taking the time to explain these nuances.

Link to comment
Share on other sites

Patch failed because the native config.plist/KernelAndKextPatches/KextsToPatch/ patches have been removed.  Add native KextsToPatch/ 2 patches to config.plist.

 

toleda, I deleted the "KextsToPatch" from KernelAndKextPatches in config.plist and rerun the script, the output:

File: audio_cloverALC-100.command_v1.0.1
Verify EFI partition mounted, Finder/Devices/EFI
Password:
Confirm Realtek ALC887 (y/n): y
ALC887 Current_v..0302 (y/n): y
Clover Audio ID Injection (y/n): y
Use Audio ID: 1 (y/n): y

Download ALC887 files ...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 24502  100 24502    0     0  16643      0  0:00:01  0:00:01 --:--:-- 16634
Edit config.plist/Devices/Audio/Inject
Edit config.plist/KernelAndKextPatches/KextsToPatch
Download kext patches and merge to config.plist ...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1268  100  1268    0     0   1211      0  0:00:01  0:00:01 --:--:--  1212
Edit config.plist/SystemParameters/InjectKexts/YES
Edit config.plist/Boot/Arguments/kext-dev-mode=1
Print: Entry, ":KernelAndKextPatches:KextsToPatch:", Does Not Exist
Add: ":KernelAndKextPatches:KextsToPatch:0" Entry Already Exists
Add: ":KernelAndKextPatches:KextsToPatch:0:Comment" Entry Already Exists
Add: ":KernelAndKextPatches:KextsToPatch:0:Find" Entry Already Exists
Add: ":KernelAndKextPatches:KextsToPatch:0:Name" Entry Already Exists
Add: ":KernelAndKextPatches:KextsToPatch:0:Replace" Entry Already Exists
Install /EFI/CLOVER/kexts/10.10/realtekALC.kext
Download config kext and install ...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  3322  100  3322    0     0   3175      0  0:00:01  0:00:01 --:--:--  3175
/EFI/CLOVER/kexts/10.10/realtekALC.kext deleted
Install System/Library/Extensions/AppleHDA.kext/ALC887 zml files
Fix permissions ...
Kernel cache...
rebuilding //System/Library/Caches/com.apple.kext.caches/Startup/kernelcache
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext AppleRTL8169Ethernet.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext FakeSMC.kext
kext-dev-mode allowing invalid signature -67054 0xFFFFFFFFFFFEFA12 for kext AppleHDA.kext

Install finished, restart required.
To save a Copy to this Terminal session: Terminal/Shell/Export Text As ...
logout

And the config.plist became this:

 

https://www.dropbox.com/s/98gdt61tn7p5tve/Screenshot%202014-11-05%2014.22.57.png?dl=0

 

Is this right? I don't understand what u say with "Add native KextsToPatch/ 2 patches to config.plist."... which 2 patches?

 

Thanks.

Link to comment
Share on other sites

toleda, I deleted the "KextsToPatch" from KernelAndKextPatches in config.plist

"Add native KextsToPatch/ 2 patches to config.plist" is opposite of delete.  Made it worse, config.plist is damaged.  Rename and install the repaired config.plist, restart and run the script again.  Reply with Terminal Output, new config.plist and IOReg.

config-cp.plist.zip

Link to comment
Share on other sites

The 3 options above all mention using a codec specific AppleHDA.kext file, would it be the same file for options 1b,1d and 1e  and where one would search for this codec ?

The only Realtek codec supported natively with AppleHDA.kext is the ALC885.  For ALC888, an 888 edited AppleHDA.kext is required. Because AppleHDA configures the codec during boot, the 888 specific files are in S/L/E.  No dsdt edit can read codec files.  Two more requirements; 1. OS X requires device HDEF as the link between the hardware (codec) and software (AppleHDA) and 2. AppleHDA needs to know layout-id property to load the correct 888 specific files.  b,d and e, add HDEF if it is nor present in the native dsdt. b, c, d and e inject the specified layout-id (Audio_ID=layout-id).  As noted in Post #1: Audio ID:1 is for 5/6 audio port motherboards and Audio_ID:2 is for 3 port motherboards desiring 5.1 analog surround sound (inputs are repurposed as outputs).

 

There is no Intel system "without dsdt", these systems load the native dsdt.  'with dsdt" means the bootloader loads an edited dsdt.

 

Your choices for no dsdt/HDEF are the same as mentioned previously (1c does not apply to your system)

1b. HDAEnabler1 or HDAEnabler1 (repo)

1d. dsdt edits/Add HDEF/layout-id 1 or 2 (MaciaASL/Patch/ALCInjection/Add DSDT/HDEF/Audio ID: 1 - repo)

1e. ssdt/HDEF//layout-id 1 or 2 (repo)

 

Your choices for the 888 specific AppleHDA.kext are noted in Post #1 (1a mentioned previously)

Link to comment
Share on other sites

"Add native KextsToPatch/ 2 patches to config.plist" is opposite of delete.  Made it worse, config.plist is damaged.  Rename and install the repaired config.plist, restart and run the script again.  Reply with Terminal Output, new config.plist and IOReg.

 

Much thank you toleda. I'm a newbie with Clover, sorry for the mess...

 

Made the reparation in config.plist, rerun the script and, all works!

 

Now, the front panel audio don't work on this ALC887 (888b)?

 

Thanks!

Link to comment
Share on other sites

Toleda,

 

I think it's begging to make sense, thank you for being patient.

 

So when the system boots up it will always load AppleHDA.kext to provide sound support. Unless we are using ALC885 we will need to modify the AppleHDA.kext file so it loads our sound card specific files. Configuration of AppleHDA.kext file needs to be modified to contain HDEF and layout-id of the card we are trying to support.

 

If the above is correct, why do we need to modify the native DSDT if by default it always loads AppleHDA.kext only this time around it will load our modified one ?

Link to comment
Share on other sites

Get error my OS X 10.10 Alc892 installation. AppleHDAHardwareConfiDriver.kext has invalid signature, omiting and AppleHDA.kext has invalid signature, omiting. i am used original OS X 10.10 AppleHDA pulled from installer. Please help me to solve my problem.

 

My config

1.OSX-10.10/ intel DH77EB/ Boot ROM Version: IM131.010A.B05, SMC Version (system): 1.30f3/ intel Core i3 3.3Ghz, Nvidia GT610 2048MB

2. RealtekALC/patch in place (http://www.insanelymac.com/forum/topic/298819-yosemite-audio-realtek-alc-applehda/)

3. IO Reg attached  4.Console/All Message attached 5.S/L/E AppleHDA.kext attached

6. Terminal/Shell/Export test attached

7. Clover files attached

 

 

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...