Jump to content

AppleALC — dynamic AppleHDA patching


vit9696
5,375 posts in this topic

Recommended Posts

Hello and thank to all of you for such a nice documentation !

 

1. Laptop model/Motherboard model- Lenovo Yoga C930
2. Codec name- Realtek ALC298
3. Layout used with the info what works for you (ideally if you try them all)- 3, 23
4. OS X versions you tried- 10.14.6

5. Kext version- v1.4.9

 

Here are current verbs :

------------------------------------------------------------------------------------------------------------------------------------------------
Verbs from ConfigData

Codec: Realtek ALC298   Address: 0   DevID: 283902616 (0x10EC0298)

NID       PinDefault     Device             Connector           Port            Location                    Color     G  P  EAPD  Original Verbs
------------------------------------------------------------------------------------------------------------------------------------------------
18 (0x12) 90A00010   In  Mic In             Unknown             Fixed           Internal N/A                Unknown   1  0  -     01271C10 01271D00 01271EA0 01271F90
20 (0x14) 90170020   Out Speaker            Other Analog        Fixed           Internal N/A                Unknown   2  0  0x2   01471C20 01471D00 01471E17 01471F90 01470C02
24 (0x18) 02811030   In  Line In            1/8" Stereo/Mono    Jack            External Front              Black     3  0  -     01871C30 01871D10 01871E81 01871F02
33 (0x21) 02211040   Out HP Out             1/8" Stereo/Mono    Jack            External Front              Black     4  0  0x2   02171C40 02171D10 02171E21 02171F02 02170C02
------------------------------------------------------------------------------------------------------------------------------------------------


NID       PinDefault     Device             Connector           Port            Location                    Color     G  P  EAPD  Modified Verbs
------------------------------------------------------------------------------------------------------------------------------------------------
18 (0x12) 90A00010   In  Mic In             Unknown             Fixed           Internal N/A                Unknown   1  0  -     01271C10 01271D00 01271EA0 01271F90
20 (0x14) 90170020   Out Speaker            Other Analog        Fixed           Internal N/A                Unknown   2  0  0x2   01471C20 01471D00 01471E17 01471F90 01470C02
24 (0x18) 02811030   In  Line In            1/8" Stereo/Mono    Jack            External Front              Black     3  0  -     01871C30 01871D10 01871E81 01871F02
33 (0x21) 02211040   Out HP Out             1/8" Stereo/Mono    Jack            External Front              Black     4  0  0x2   02171C40 02171D10 02171E21 02171F02 02170C02
------------------------------------------------------------------------------------------------------------------------------------------------

 

My laptop has speaker Left and Right working.

What's not working : Subwoofer, Internal Microphone.

Based on my research linux user successfully enable the subwoofer by doing this :

  • Set pin with ID 0x17 to "Override" with "Dock Headphone"
  • Try setting pin 0x21 to "Override" with "Headphone" to resolve the quieter headphone sound.

I've done some tries using pin configurator but I don't know how to apply my modification to appleALC.

Thanks a lot if we can find a way to make the subwoofer work ?

And That would be perfect if the internal mic could also work, but I might be dreaming ^^.

 

Best regards,

IM.

 

Edited by IMarty
Additional informations
Link to comment
Share on other sites

Hello. I am very new at this and I am trying to get my Alienware m15 R2 working well. I am trying to add support for realtek289. Currently there is only one layout id. Using this layout id gives me speaker out, and using a modified version of plug fix get me headphone out. My mute key does not work, and the microphone does not work for either the internal mic or the headphone mic. The internal mic does not regester any sound at all, and the headphone mic registers sound only with audio playing (but not my voice, the mic detects the audio being played. I have looked over many webpages and Ive tried to fix the problem by adding a layout, but I just can't seem to get it for work. Please will someone help me?

 

 I am trying too make layout 55 work with my system, does anyone with experience know how to get this working?

codec_dump.txt

HdaCodec (Realtek ALC289).txt

verbs.txt

PinConfigs.kext.zip

layout55.xml

Platforms55.xml

 

 

I don't think I created the layout or the platforms xml correctly? and I can't find a source to do it myself. 

Edited by Alectardy98
Link to comment
Share on other sites

Hello! I was wondering if it was possible to enable my laptop's subwoofer using AppleALC. I did a lot of research and found nothing.

I booted into linux and got a codec dump, and I know for a fact that the subwoofer is at Node 16 (0x10), because enabling it on linux with hdajackretask works perfectly fine.

But when opening the dump on Pin Configurator it shows as is in the image:

 

Any help will be appreciated! :)

 

I'll attach the codec dump too. IDT 92HD91BXX

 

EDIT: I'm able to get sound using layouts 12, 13, 33 and 84. But all sound really terrible due to the lack of the subwoofer.

 

Captura de Pantalla 2020-05-11 a la(s) 17.10.36.png

codec_dump.txt

Edited by EmiZanotti
Link to comment
Share on other sites

@macpeet

 

Using your version let the microphone work on the internal speaker !!!! that's amazing. The headphone microphone still does not work, but honestly having a microphone at all is just amazing. Thank you so much for the help.  Ill keep checking to see if you make another version to correct the headphone "Audio Line In Port" issue. 

 

I can't thank you enough for the help!! amazing !

Edited by Alectardy98
Link to comment
Share on other sites

@Alectardy98

 

trial1 with ID 15 is configured in ManualMode

Headphones are configured as LineOut and external Mic is configured as LineIn.
You have to switch the connections in system configuration / sound!

External combination socket only works with a 4 pin jack port headset.

Did you try everything correctly?

 

I can continue to see what I can improve.

Link to comment
Share on other sites

@IMarty @EmiZanotti @all

 

I will look at your codec_dump's in the next few days.
The layoutID's probably have to be developed first.


Speaker L + R and subwoofer are two connections.
No problem with Windows, here the driver connects. With Linux, too.
Everything is different with macOS.

 

HowTo laptop subwoofer with macOS:

 

There are only a few laptops with a subwoofer.
The existing IDs may not help.

 

One of my laptops has a subwoofer and works with my LayoutID with AppleALC.

 

Example (my codec ALC888S-VD - LayoutID 28 (1C) in AppleALC source):

 

Internal speakers (1) are configured in switch mode with HP -> sound alone is not good
internal speakers (2) subwoofer -> sound alone is not good, only bass

 

1.png.d35619b79ac14653e41c00ef6b3420ba.png

 

Then in the Utilities / Audio Midi Setup with + characters a "Create device with multiple outputs"
Select both internal connections here.

 

2.png.bc72b89a4f226a908b15212cd2fb935d.png

 

Then select "Device with multiple outputs" in System Settings / Sound.

 

Sound is now perfect with stereo L + R + subwoofer.

 

The codec for you must certainly be developed first.

Link to comment
Share on other sites

Thanks a lot for the time you spend working on my issue.

Even in linux i had to go to unaffected pin to enable it.

 

I've done the process but sadly my subwoofer does not show...

Therefor I can not see many output device : only stereo shows here... 

I have install BoomAudio to merge my audio I/O

1046088679_Capturedecran2020-05-12a18_22_27.thumb.png.c738c1c06122941c2fd5ec0c7f075c01.png

Link to comment
Share on other sites

1 hour ago, MacPeet said:

@IMarty @EmiZanotti @all

 

I will look at your codec_dump's in the next few days.
The layoutID's probably have to be developed first.


Speaker L + R and subwoofer are two connections.
No problem with Windows, here the driver connects. With Linux, too.
Everything is different with macOS.

 

HowTo laptop subwoofer with macOS:

 

There are only a few laptops with a subwoofer.
The existing IDs may not help.

 

One of my laptops has a subwoofer and works with my LayoutID with AppleALC.

 

Example (my codec ALC888S-VD - LayoutID 28 (1C) in AppleALC source):

 

Internal speakers (1) are configured in switch mode with HP -> sound alone is not good
internal speakers (2) subwoofer -> sound alone is not good, only bass

 

1.png.d35619b79ac14653e41c00ef6b3420ba.png

 

Then in the Utilities / Audio Midi Setup with + characters a "Create device with multiple outputs"
Select both internal connections here.

 

2.png.bc72b89a4f226a908b15212cd2fb935d.png

 

Then select "Device with multiple outputs" in System Settings / Sound.

 

Sound is now perfect with stereo L + R + subwoofer.

 

The codec for you must certainly be developed first.

 

First of all, thank you very much for trying to help :)

 

Where I can learn to develop for my codec? I tried modifying Platform13.xml (the one for my layout-id) and building the kext but it shows as "unknown" in system settings. I don't have the option for multiple outputs like your laptop has. I believe it is because AppleALC has only stereo coded, and I have to modify it to have multiple outputs, am I right?

Link to comment
Share on other sites

4 hours ago, MacPeet said:

@Alectardy98

 

trial1 with ID 15 is configured in ManualMode

Headphones are configured as LineOut and external Mic is configured as LineIn.
You have to switch the connections in system configuration / sound!

External combination socket only works with a 4 pin jack port headset.

Did you try everything correctly?

 

I can continue to see what I can improve.

Yes I made sure to switch the configuration and I was sure to use a 4 pin jack port headset. I made sure to try everything I could think of. If you want to give it another go that would be awesome but I'm honestly just happy that the internal mic works.

Link to comment
Share on other sites

20 minutes ago, vandroiy2012 said:

@Andres ZeroCross What are you talking about? Your resources are in ALC1220 folder right now in latest master

 

https://github.com/acidanthera/AppleALC/blob/master/Resources/ALC1220/Info.plist#L87

 

1375030707_2020-05-1312_37_56.thumb.png.9a82d25e3ec348a62037c4d296e20d3d.png

 

ALC1220 and ALCS1220A - two different codecs.


Yes, my bad. Sorry i have delete my comment above few minutes ago. Audio is working good, 

Again sorry for my mistake

  • Like 1
Link to comment
Share on other sites

quick question 
i want my spdif out to have dts/ac3 passthrough even that my gigabyte z390 pro doesn't have licences for dts/dd
how do i do it?
sound works out to internal speakers 2.0 and spdif out to receiver all 5 speakers works and no dts/ac3 encoding - i hear sound but not dts...

moc os catalina 10.15.4 opencore 0.5.8
 

Link to comment
Share on other sites

Hello,

This is going to be a support/discussion topic of AppleALC on InsanelyMac. 
AppleALC is a kernel extension allowing you to enable native apple HD audio without any filesystem modifications. It dynamically injects the necessary modifications to AppleHDA (and other kexts) including the
layouts, and makes your audio work starting from the OS installation.
 
It should be noted that AppleALC starting with version 1.1.0 requires Lilu.kext to be put in the same folder as AppleALC.kext. See this topic for more details.
 
For quite some time we are trying to obtain the necessary information about AppleALC codec compatibility. If you use something, please, consider checking the compatibility table (do not worry, it is in English), and report (here) on your codec. We are also looking for all the possible revisions of the codec, if we do not have the revisions listed for your codec please report as well. Thanks for understanding. 
 
The report is meant to contain:
1. Laptop model/Motherboard model
2. Codec name
3. Layout used with the info what works for you (ideally if you try them all)
4. OS X versions you tried
5. Autogenerated Info.plist made with the help of this utility.

 
All the details including the source code are available on github:
https://github.com/vit9696/AppleALC
Some short wiki articles explaining the usage are included.
 
As for now the project is relatively immature without practically any codec support. But it should be pretty easy to add more of them, I am hoping for the support of the "community"
If you have any issues, better report them on github for structural reasons.

Please can you help me add my right path to custom layout using MSI B450m Mortar ALC892 missing mic support but voodooHDA works but with less quality than the great AppleALC so I am sure mic support can be achieved
I tried following you wiki but I feel lost
Please can you help me
Thank you


Sent from my iPhone using Tapatalk
Hello,

This is going to be a support/discussion topic of AppleALC on InsanelyMac. 
AppleALC is a kernel extension allowing you to enable native apple HD audio without any filesystem modifications. It dynamically injects the necessary modifications to AppleHDA (and other kexts) including the
layouts, and makes your audio work starting from the OS installation.
 
It should be noted that AppleALC starting with version 1.1.0 requires Lilu.kext to be put in the same folder as AppleALC.kext. See this topic for more details.
 
For quite some time we are trying to obtain the necessary information about AppleALC codec compatibility. If you use something, please, consider checking the compatibility table (do not worry, it is in English), and report (here) on your codec. We are also looking for all the possible revisions of the codec, if we do not have the revisions listed for your codec please report as well. Thanks for understanding. 
 
The report is meant to contain:
1. Laptop model/Motherboard model
2. Codec name
3. Layout used with the info what works for you (ideally if you try them all)
4. OS X versions you tried
5. Autogenerated Info.plist made with the help of this utility.

 
All the details including the source code are available on github:
https://github.com/vit9696/AppleALC
Some short wiki articles explaining the usage are included.
 
As for now the project is relatively immature without practically any codec support. But it should be pretty easy to add more of them, I am hoping for the support of the "community"
If you have any issues, better report them on github for structural reasons.

Please can you help me add my right path to custom layout using MSI B450m Mortar ALC892 missing mic support but voodooHDA works but with less quality than the great AppleALC so I am sure mic support can be achieved
I tried following you wiki but I feel lost
Please can you help me
Thank you


Sent from my iPhone using Tapatalk
Hello,

This is going to be a support/discussion topic of AppleALC on InsanelyMac. 
AppleALC is a kernel extension allowing you to enable native apple HD audio without any filesystem modifications. It dynamically injects the necessary modifications to AppleHDA (and other kexts) including the
layouts, and makes your audio work starting from the OS installation.
 
It should be noted that AppleALC starting with version 1.1.0 requires Lilu.kext to be put in the same folder as AppleALC.kext. See this topic for more details.
 
For quite some time we are trying to obtain the necessary information about AppleALC codec compatibility. If you use something, please, consider checking the compatibility table (do not worry, it is in English), and report (here) on your codec. We are also looking for all the possible revisions of the codec, if we do not have the revisions listed for your codec please report as well. Thanks for understanding. 
 
The report is meant to contain:
1. Laptop model/Motherboard model
2. Codec name
3. Layout used with the info what works for you (ideally if you try them all)
4. OS X versions you tried
5. Autogenerated Info.plist made with the help of this utility.

 
All the details including the source code are available on github:
https://github.com/vit9696/AppleALC
Some short wiki articles explaining the usage are included.
 
As for now the project is relatively immature without practically any codec support. But it should be pretty easy to add more of them, I am hoping for the support of the "community"
If you have any issues, better report them on github for structural reasons.

Please can you help me add my right path to custom layout using MSI B450m Mortar ALC892 missing mic support but voodooHDA works but with less quality than the great AppleALC so I am sure mic support can be achieved
I tried following you wiki but I feel lost
Please can you help me
Thank you


Sent from my iPhone using Tapatalk
Hello,

This is going to be a support/discussion topic of AppleALC on InsanelyMac. 
AppleALC is a kernel extension allowing you to enable native apple HD audio without any filesystem modifications. It dynamically injects the necessary modifications to AppleHDA (and other kexts) including the
layouts, and makes your audio work starting from the OS installation.
 
It should be noted that AppleALC starting with version 1.1.0 requires Lilu.kext to be put in the same folder as AppleALC.kext. See this topic for more details.
 
For quite some time we are trying to obtain the necessary information about AppleALC codec compatibility. If you use something, please, consider checking the compatibility table (do not worry, it is in English), and report (here) on your codec. We are also looking for all the possible revisions of the codec, if we do not have the revisions listed for your codec please report as well. Thanks for understanding. 
 
The report is meant to contain:
1. Laptop model/Motherboard model
2. Codec name
3. Layout used with the info what works for you (ideally if you try them all)
4. OS X versions you tried
5. Autogenerated Info.plist made with the help of this utility.

 
All the details including the source code are available on github:
https://github.com/vit9696/AppleALC
Some short wiki articles explaining the usage are included.
 
As for now the project is relatively immature without practically any codec support. But it should be pretty easy to add more of them, I am hoping for the support of the "community"
If you have any issues, better report them on github for structural reasons.

Please can you help me add my right path to custom layout using MSI B450m Mortar ALC892 missing mic support but voodooHDA works but with less quality than the great AppleALC so I am sure mic support can be achieved
I tried following you wiki but I feel lost
Please can you help me
Thank you


Sent from my iPhone using Tapatalk
Link to comment
Share on other sites

@dr3mro

???

This is spam, isn't it?

 

@IMarty
Your Linux codec_dump brings many errors.
Everything very difficult.
I think Sub is on node 23.

try this with layoutID 15:

trial_alc298_layoutID15.zip


@EmiZanotti
Your Linux codec_dump isn't any better either.

I think subwoofer is at node 16-26-25-19.
I will continue to see tomorrow.

 

Dump.zip

 

16.thumb.png.02b44db8dfb34e4e92fa3364bef4b204.png

 

Sub is only mono. Bass box mostly installed on the right.

Edited by MacPeet
Link to comment
Share on other sites

@MacPeet yeah, on ubuntu when I override node 0x10 with "Internal Speaker (LFE)" it enables the subwoofer. 

 

This is the tutorial I followed to enable it in linux: 

STEP 6

Go to the section having pin id : 0x0d .

Change (Internal Speaker, Front side) to “Internal speaker”.

STEP 7

Go to the section having pin id: 0x0f.

Change (Not connected) to “Internal speaker”. This part is about the under-display speakers.

STEP 8

Go to the section having pin id: 0×10.

Change (Not connected) to “Internal speaker (LFE)”. This part is about the sub-woofer

 

Please let me know how can I help you with. I'm very grateful for the time you are spending to help me with this problem.

 

EDIT: I found the data sheet for IDT92HD91 https://datasheetspdf.com/pdf-file/721919/IDT/92HD91/1 Maybe it will be useful, I will look into it in a moment

 

Edited by EmiZanotti
Link to comment
Share on other sites

@MacPeet

Tanks again for you time. What you're doing is very precious for me.

Here is the process I did :

Download you files Lillu + Apple ALC => put them in L/E

Change the alc-layout-id to 0F00000 (15 in hexadecimal)

Rebuild Kext cache

Restart

Boot loop due to GFX pbm => changed intelGFXId to 0x12345678

Result is sadly nothing detected 168587292_Capturedecran2020-05-15a16_15_26.png.4e7c3fea12ff3dddba985dd0c696f250.png

I have the sound workking perfectly on Windows10, is there a process I can follow in order to "transfert" the windows lenovo drivers to macos or linux ?

Is there any way to "clean" my linux dump error ?

Link to comment
Share on other sites

@IMarty

It was just a try.
Why in L/E? Works in Clover's kexts or OC kexts too.
Where inject the layoutID at you? In DSDT, SSDT, Clover-config, OC-config?
"Boot loop due to GFX pbm => changed intelGFXId to 0x12345678" has nothing to do with audio.
Windows drivers are good for Windows. There is no such thing for Hackintosh.
Try the latest VoodooHDA! Delete AppleALC and try VoodooHDA.kext for this.
If it works, a VoodooDump can help.

 

 

@EmiZanotti

I'm looking at step 6/7/8.
The "Internal Spe aker (LFE)” option is unfortunately not available in PinConfig under macOS, only "internal speaker".
Unfortunately, the link does not help me.

Link to comment
Share on other sites

Okay so due to me and iMarty having a similar issue, I replaced AppleALC with VoodooHDA, and sound works (no subwoofer tho) but I don't know how to get a VoodooDump. I researched and fount that get dump utility is included, but I can't find it

 

I really don't want to stick with VoodooHDA though. Internal mic is super saturated and sound is really low

Edited by EmiZanotti
Link to comment
Share on other sites

@MacPeet

Well on my side VoodooHDA 2.9.2V15 is doing nothing. I have nothing... same as with your files...

I am using clover to modify the alc-id.

It looks like your Lilu.kext file generate the GFX error (with my whateverGreen maybe...) I was getting. Fixed it by coming back to the original one and rebuilding my kext cache.

Any B plan ?

I have installed hda-verb that allow me to enable/disable my speaker sound by type that cmd : hda-verb /dev/snd/hwC0D0 0x14 SET_CONNECT_SEL 0x0

Edited by IMarty
hda verb
Link to comment
Share on other sites

×
×
  • Create New...