Jump to content

AppleALC — dynamic AppleHDA patching


vit9696
5,390 posts in this topic

Recommended Posts

1 minute ago, ludufre said:

 

Changed the property <PCM>90</PCM> to <PCM>180</PCM> inside VoodooHDA.kext/Contents/Info.plist

 

About HDMI/miniDP still a mistery! 

I spent the last two days to make AppleALC work up to compiling the kext with xcode. Tried voodoohda before with sleep and headphones problem. I'm using now hdmi audio perfectly.... looks like layout id 28 is perfect. Just need to sort out that f****ng volume. Guess it would be a parameter like the one you posted!!! Just waiting someone with more knowledge than me!!!!

 

Link to comment
Share on other sites

1 minute ago, rochi said:

I spent the last two days to make AppleALC work up to compiling the kext with xcode. Tried voodoohda before with sleep and headphones problem. I'm using now hdmi audio perfectly.... looks like layout id 28 is perfect. Just need to sort out that f****ng volume. Guess it would be a parameter like the one you posted!!! Just waiting someone with more knowledge than me!!!!

 

 

Can you share the changes you made in the AppleHDA code?

 

I'd rather have low volume than run out of HDMI/DP.

 

Your headphones works too?

 

Link to comment
Share on other sites

1 minute ago, ludufre said:

 

Can you share the changes you made in the AppleHDA code?

 

I'd rather have low volume than run out of HDMI/DP.

 

Your headphones works too?

 

well! Any change I made didn't solve low volume problem. BTW i just set everything up to get for sure layout 28 e.g.: clover plist injected 28, the same in devices properties. It wasnt working and then I understood why!!! To install I followed a guide wich had a compiled aml and there was hardcoded the layout id. Changed this with maciasl everything was working.... except low volume problem.

Hdmi worked because I had preconfigured hdmi audio interface in my files so I just set the address there and that's it. For what it worths i can share with you my various kext, folders and everything, but keep in mind that you can potentially mess everything up.

Link to comment
Share on other sites

2 minutes ago, rochi said:

well! Any change I made didn't solve low volume problem. BTW i just set everything up to get for sure layout 28 e.g.: clover plist injected 28, the same in devices properties. It wasnt working and then I understood why!!! To install I followed a guide wich had a compiled aml and there was hardcoded the layout id. Changed this with maciasl everything was working.... except low volume problem.

Hdmi worked because I had preconfigured hdmi audio interface in my files so I just set the address there and that's it. For what it worths i can share with you my various kext, folders and everything, but keep in mind that you can potentially mess everything up.

 

Ok. I already have hardcoded layout-id to 28 and see it in IOReg too.

 

I'll use only the HDMI part of you upload.

 

And you still have not said if the headphones work...

Link to comment
Share on other sites

16 minutes ago, ludufre said:

 

Ok. I already have hardcoded layout-id to 28 and see it in IOReg too.

 

I'll use only the HDMI part of you upload.

 

And you still have not said if the headphones work...

Low volume in headphones but they work ( not the mic in the headphones) I'll send you my conf in pm

 

||edit

pm sent

Edited by rochi
  • Like 1
Link to comment
Share on other sites

On 1/22/2019 at 8:42 PM, Andres ZeroCross said:

Dump it from Live Linux, you can dump it without install linux. Just use Live Linux

 

Ok bro :) Thanks, I will do it very soon and I will upload it :) 

 

I saw that a new version of AppleALC has been released (v1.3.5 preview), so you can add the configuration of my IDT Audio Codec to the future versions (v1.3.6 , v1.3.7 , etc) :) I mean, it will be "forever" supported with AppleALC ??? :)

Link to comment
Share on other sites

Hello everyone! I've tried all of layout that is listed in codec supported for alc 269, none of them worked. Layout 27 is the closest to work, because it just sound for a sec and then no sound at all. I injected the id via clover. Would patch AppleHDA manually have possibility to make my audio worked?  Any help would be appreciate, here is my spec:
Acer 4739 i370M
ALC271x
Osx 10.11.6

codec_dump.txt
edited: apparently this also happened with voodoohda, need to change format in midi audio setup, but still it works just for a sec

Edited by sleepynow_x
Link to comment
Share on other sites

Hello all!

Thank you for this great kext. It made my laptop ASUS UX330UA i7 6500U 100% OsX compatible.

The only issue I have is that with AppleALC the Volume Function Keys (FN+F10/F11/F12) do not work while in previous versions of OsX (til and including High Sierra) the Volume Function Keys (FN+F10/F11/F12) were working but I used the clover AppleHDA patch method to enable audio (This is no longer an option as Apple decided to remove Layouts :( ).

So anyone can help me with some information on how to fix this issue ?

Best regards

Link to comment
Share on other sites

Hi, I need help making the audio work on my Dell Inspiron 14R 5421, using the alc3221 codec (based on alc282) under macOS Mojave (10.14.3). I've tried all layout IDs and all DSDT patches that are available on Clover patches and also used some old audio patches that were made for Mavericks/Yosemite and got the audio devices detected, but not working. 

Link to comment
Share on other sites

Hello,

 

I recently upgraded my Dell XPS 14Z (L412Z) laptop to High Sierra and moved over to the lilu.kext and it's plugins as it's much cleaner.  I noticed that the current AppleALC.kext does not currently support my codec which is the ALC259.  I'm attaching a full codec dump here in hopes that somebody smarter and faster than me could get this codec included in the next version of AppleALC.kext.  Please let me know if any additional info should provided.  Thanks!  

ALC259_codec_dump.txt

Link to comment
Share on other sites

3 hours ago, hogfan said:

Hello,

 

I recently upgraded my Dell XPS 14Z (L412Z) laptop to High Sierra and moved over to the lilu.kext and it's plugins as it's much cleaner.  I noticed that the current AppleALC.kext does not currently support my codec which is the ALC259.  I'm attaching a full codec dump here in hopes that somebody smarter and faster than me could get this codec included in the next version of AppleALC.kext.  Please let me know if any additional info should provided.  Thanks!  

ALC259_codec_dump.txt

image.png.218a4868c012955f69660e98657c243f.png
Your codec is 0x10EC0269 Revision 0x100100. It's ALC269. Try various layoutID with appleALC.kext. Check here https://github.com/acidanthera/AppleALC/tree/master/Resources/ALC269

You will get sound with that. It's not ALC259

Link to comment
Share on other sites

Hi,

 

the recent changes to AppleALC broke audio on my Dell M4800.  the older AppleACL-test with CodecLookup.plist method works.

here are diffs between working and non-working (latest) repos.

$ diff -rq AppleALC-vit9696 AppleALC-test|grep -v git|differ
diff AppleALC-vit9696/AppleALC/kern_alc.cpp AppleALC-test/AppleALC/kern_alc.cpp
diff AppleALC-vit9696/AppleALC/kern_alc.hpp AppleALC-test/AppleALC/kern_alc.hpp
diff AppleALC-vit9696/AppleALC/kern_resources.cpp AppleALC-test/AppleALC/kern_resources.cpp
diff AppleALC-vit9696/AppleALC/kern_resources.hpp AppleALC-test/AppleALC/kern_resources.hpp
diff AppleALC-vit9696/AppleALC.xcodeproj/project.xcworkspace/xcuserdata/tluck.xcuserdatad/UserInterfaceState.xcuserstate AppleALC-test/AppleALC.xcodeproj/project.xcworkspace/xcuserdata/tluck.xcuserdatad/UserInterfaceState.xcuserstate
diff AppleALC-vit9696/ResourceConverter/main.mm AppleALC-test/ResourceConverter/main.mm
Only AppleALC-test/Resources/CodecLookup.plist

ALC_logs.zip

 

log zip has the kernel logs snippets for working and failed situation.

It finds 4 controllers to scan/patch on working version 

But then only 3 and it fails to find a suitable codec.

 

Note: this box has an AMD card for the external ports (HDAU) and ALC292 for analog.

 

what else can I provide to debug?

 

Note: the latest ver works on my T420 HD3000.

 

 

 

 

 

Edited by tluck
Link to comment
Share on other sites

14 minutes ago, tluck said:

Hi,

 

the recent changes to AppleALC broke audio on my Dell M4800.  the older AppleACL-test with CodecLookup.plist method works.

here are diffs between working and non-working (latest) repos.


$ diff -rq AppleALC-vit9696 AppleALC-test|grep -v git|differ
diff AppleALC-vit9696/AppleALC/kern_alc.cpp AppleALC-test/AppleALC/kern_alc.cpp
diff AppleALC-vit9696/AppleALC/kern_alc.hpp AppleALC-test/AppleALC/kern_alc.hpp
diff AppleALC-vit9696/AppleALC/kern_resources.cpp AppleALC-test/AppleALC/kern_resources.cpp
diff AppleALC-vit9696/AppleALC/kern_resources.hpp AppleALC-test/AppleALC/kern_resources.hpp
diff AppleALC-vit9696/AppleALC.xcodeproj/project.xcworkspace/xcuserdata/tluck.xcuserdatad/UserInterfaceState.xcuserstate AppleALC-test/AppleALC.xcodeproj/project.xcworkspace/xcuserdata/tluck.xcuserdatad/UserInterfaceState.xcuserstate
diff AppleALC-vit9696/ResourceConverter/main.mm AppleALC-test/ResourceConverter/main.mm
Only AppleALC-test/Resources/CodecLookup.plist

ALC_logs.zip

 

log zip has the kernel logs snippets for working and failed situation.

It finds 4 controllers to scan/patch on working version 

But then only 3 and it fails to find a suitable codec.

 

Note: this box has an AMD card for the external ports (HDAU) and ALC292 for analog.

 

what else can I provide to debug?

 

 

 

 

 


Try to reBuild AppleALC (1.3.5) and still work fine with my CA0132.
image.png.561fbedd26b0d308311ab06147407c2a.png

Link to comment
Share on other sites

more info ... something doesn't seem right in the new GrabCodecs - can't find the analog codec

 

i changed the logic to scan enter registry vs (ctlr-detect location)

... and then it at least finds a codec (albeit not an the ALC292) but either the Intel HDMI codec (2807) or AMD (AA01)

 

storing codec info for 8086:2807:100000

or reboot and got this:

storing codec info for 1002:AA01:100300
found unsupported AMD codec 0xAA01 revision 0x100300
failed to find a suitable codec, we have nothing to do

 

if i hard code the VendorID in appendCodecs it works.

 

$ ioreg -xl|grep IOHDACodecV

    | |   |         |   "IOHDACodecVendorID" = 0x1002aa01

    | |   |     |   "IOHDACodecVendorID" = 0xffffffff80862807

    | |   |     |   "IOHDACodecVendorID" = 0x10ec0292

 

//auto iterator = IORegistryIterator::iterateOver(ctlr->detect, gIOServicePlane, kIORegistryIterateRecursively);
auto iterator = IORegistryIterator::iterateOver(gIOServicePlane, kIORegistryIterateRecursively);
if (iterator) {
IORegistryEntry *codec = nullptr;
while ((codec = OSDynamicCast(IORegistryEntry, iterator->getNextObject())) != nullptr) {
if (codec->getProperty("IOHDACodecVendorID")) {
DBGLOG("alc", "found analog codec %s for %X:%X", safeString(codec->getName()), ctlr->vendor, ctlr->device);
appendCodec(this, codec);
break;
}
}

 

Edited by tluck
Link to comment
Share on other sites

Now my ALC269-VB having no sound output at all after this commit, even after kernelcache && prelinkedkernel rebuilt.

I've been placing AppleALC on Clover's kexts dir since long time ago, having no problem previously. Thanks.

(I'm using 10.11.6, 10.13.6 & 10.14.4 Beta 1). I'm still able to rolling back with older version, though.

Link to comment
Share on other sites

43 minutes ago, Badruzeus said:

Now my ALC269-VB having no sound output at all after this commit, even after kernelcache && prelinkedkernel rebuilt.

I've been placing AppleALC on Clover's kexts dir since long time ago, having no problem previously. Thanks.

(I'm using 10.11.6, 10.13.6 & 10.14.4 Beta 1). I'm still able to rolling back with older version, though.


I compile new kext with new commit. Still working fine and no problem

image.thumb.png.97abea696aa8007d266006cb7f5e5c02.png
 

  • Thanks 1
Link to comment
Share on other sites

2 minutes ago, Andres ZeroCross said:

I compile new kext with new commit. Still working fine and no problem

OK, plz attach your latest precompiled AppleALC (release) for me to test.. not sure where's the problem that make it didn't work; using Xcode 8.2.1 to compile here. Thanks.

Link to comment
Share on other sites

17 minutes ago, Andres ZeroCross said:

As your wish...

Cool, it works (efi\clover\kexts\other). My ALC269-VB Audio Output is back again. Thanks.

I've to recheck my compilation; I just noticed that Lilu is also updated to v1.3.3 which I forgot using this new debug kext when building latest AppleALC (though, vit9696 ever said that we don't need doing it but.. who know?).

 

MacBook-Pro:~ badruzeus$ kextstat | egrep "AppleALC|Lilu"
   25    7 0xffffff7f82c79000 0x20000    0x20000    as.vit9696.Lilu (1.3.3) 07E95C83-F850-300E-AA77-29C63A82F776 <7 5 4 3 2 1>
   26    0 0xffffff7f82c99000 0xff000    0xff000    as.vit9696.AppleALC (1.3.5) F02FB15A-0652-37DB-8B24-A537E96DEE09 <25 12 7 5 4 3 2 1>
MacBook-Pro:~ badruzeus$ 



Screenshot 10.png

Edited by Badruzeus
Link to comment
Share on other sites

4 minutes ago, Badruzeus said:

Cool, it works (efi\clover\kexts\other). My ALC269-VB Audio Output is back again. Thanks.

I've to recheck my compilation; I just noticed that Lilu is also updated to v1.3.3 which I forgot using this new debug kext when building latest AppleALC (though, vit9696 ever said that we don't need doing it but.. who know?).

 

 


MacBook-Pro:~ badruzeus$ kextstat | egrep "AppleALC|Lilu"

   25    7 0xffffff7f82c79000 0x20000    0x20000    as.vit9696.Lilu (1.3.3) 07E95C83-F850-300E-AA77-29C63A82F776 <7 5 4 3 2 1>

   26    0 0xffffff7f82c99000 0xff000    0xff000    as.vit9696.AppleALC (1.3.5) F02FB15A-0652-37DB-8B24-A537E96DEE09 <25 12 7 5 4 3 2 1>

MacBook-Pro:~ badruzeus$ 

 

Screenshot 10.png


I always check latest debug lilu.kext (In release version of github) before compiling any plugin kext of lilu. :D

I am using Lilu.kext v 1.3.1 not 1.3.3

Edited by Andres ZeroCross
  • Like 1
Link to comment
Share on other sites

well the new code is not working for me on my Dell (that has 3 audio devices), but it works on other machines (they only have 1 device). the grabCodecs tries to find properties

IOHDACodecVendorID and IOHDACodecRevisionID... but the new iterator method of searching IOREG only finds in the non-analog devices?  even though there are 3 devices to find. 

 

I made it work by expanding the IOREG search to beyond the current controller and find any instance of IOHDACodecVendorID/IOHDACodecRevisionID

and then I stuff these properties in HDEF so they will be found (vs device below it) since they are not found by the iterator otherwise. 

 

the attached log shows all the devices the iterator finds. Strange that it only finds one IOHDACodecDevice - bug in the iterator?

 

$ ioreg -xl|egrep "IOHDACodecD|odecV|odecRev"|grep -v Kit

    | |   |       +-o IOHDACodecDevice@0,1,0  <class IOHDACodecDevice, id 0x1000003d4, registered, matched, active, busy 0 (110 ms), retain 7>

    | |   |         |   "IOHDACodecVendorID" = 0x1002aa01

    | |   |         |   "IOHDACodecRevisionID" = 0x100300

    | |   |         +-o IOHDACodecDriver  <class IOHDACodecDriver, id 0x1000003d7, !registered, !matched, active, busy 0 (110 ms), retain 5>

    | |   |           |   "IOClass" = "IOHDACodecDriver"

    | |   |           |   "IOProviderClass" = "IOHDACodecDevice"

    | |   |   +-o IOHDACodecDevice@3,0  <class IOHDACodecDevice, id 0x1000003e1, registered, matched, active, busy 0 (65 ms), retain 7>

    | |   |     |   "IOHDACodecVendorID" = 0xffffffff80862807

    | |   |     |   "IOHDACodecRevisionID" = 0x100000

    | |   |     +-o IOHDACodecDriver  <class IOHDACodecDriver, id 0x1000003e3, !registered, !matched, active, busy 0 (64 ms), retain 5>

    | |   |       |   "IOClass" = "IOHDACodecDriver"

    | |   |       |   "IOProviderClass" = "IOHDACodecDevice"

    | |   | |   "IOHDACodecRevisionID" = 0x100001

    | |   | |   "IOHDACodecVendorID" = 0x10ec0292

    | |   |   +-o IOHDACodecDevice@1B,0  <class IOHDACodecDevice, id 0x1000003ea, registered, matched, active, busy 0 (423 ms), retain 7>

    | |   |     |   "IOHDACodecVendorID" = 0x10ec0292

    | |   |     |   "IOHDACodecRevisionID" = 0x100001

log

Link to comment
Share on other sites

On 1/21/2019 at 6:37 PM, Andres ZeroCross said:

Try this,,, 

 

Revert back to your previous ones,, your codec and AlexAMD is same ALC256 but different layoutID. Both of you make me confuse.

Take another day,,, Alex make fast response,, so i will help him first

Can we continue ?

A reminder. Audio is working without codecommander and ssdt , both internal and speakers. Problem is that , randomly (cannot reproduce it , seems to happen when system idle ?) speakers makes a noise and cpu gets high. Only way to stop this is to reboot.

Link to comment
Share on other sites

good news -  with today's updates after 1651 retries, it finds the analog Codec info!

latest version works for me.

(I was wondering if it was a matter of timing?)

    ...

     alc @ failed to find IOHDACodecVendorID, retrying 1649

     alc @ failed to find IOHDACodecVendorID, retrying 1650

     alc @ failed to find IOHDACodecVendorID, retrying 1651

     alc @ (DBG) platformLoadCallback 2 0 1 14530 1

     alc @ (DBG) resource-request arrived platform

     alc @ (DBG) checking codec 10EC:292:100001

     alc @ (DBG) selecting from 3 files

     alc @ (DBG) comparing 0 layout C/12

     alc @ (DBG) comparing 1 layout 12/12

...

 

  • Like 1
Link to comment
Share on other sites

×
×
  • Create New...