Problem with dual (ALC1220) audio codecs

juniorz

New member
Joined
Aug 31, 2020
Messages
16
I know this is not a common situation, but I want to ask this out and in case some people have a similar problem in the future can find it easier.

This problem exists when you have two audio codecs on your motherboard. There are few mobos with this setting. I thought the reason for that is to use one for the back IO and another one for the front IO to get better SNR or something. But this will cause a problem for both Hackintosh and Linux(probably, not sure.)

For me, I have the MSI MEG X570 GODLIKE. Here is the Back IO
backio.jpg
with a traditional set audio jacks(right part,5 3.5mm and 1 S/PDIF) and another 6.3 mm headphone port.


dual_audio.png
From this diagram, we can clearly see how those two alc1220 works. One controls the rear audio jack and another for front jacks and the 6.3mm jack.

IORegistryExplorer also shows two alc1220 clearly.
iopic.png

The problem for this kind of setting is the AppleALC.kext can not set two layouts for this, which makes the audio output very unstable. For now, I can confirm none of the layout-id in AppleALC works for this setting. Layout-id=1 works sometimes. If I install the official driver in windows, that will damage the whole audio output in macOS(a cold boot will partly work).

I don't find any solution for this dual audio codecs setting. I notice some Linux people managed to make a similar system work(Gigabyte GA-AX370-Gaming 5) in Linux by modifying the driver, but not for Hackintosh. I also try to modify AppleALC but no luck. I'm not sure this kext suppose to work with two codecs.

Anyway, any help is welcome and I will update this if I found any solution.
 

Gigamaxx

Donator
Donator
Joined
Dec 4, 2020
Messages
103
I know this is not a common situation, but I want to ask this out and in case some people have a similar problem in the future can find it easier.

This problem exists when you have two audio codecs on your motherboard. There are few mobos with this setting. I thought the reason for that is to use one for the back IO and another one for the front IO to get better SNR or something. But this will cause a problem for both Hackintosh and Linux(probably, not sure.)

For me, I have the MSI MEG X570 GODLIKE. Here is the Back IO
View attachment 2163
with a traditional set audio jacks(right part,5 3.5mm and 1 S/PDIF) and another 6.3 mm headphone port.


View attachment 2164
From this diagram, we can clearly see how those two alc1220 works. One controls the rear audio jack and another for front jacks and the 6.3mm jack.

IORegistryExplorer also shows two alc1220 clearly.
View attachment 2165

The problem for this kind of setting is the AppleALC.kext can not set two layouts for this, which makes the audio output very unstable. For now, I can confirm none of the layout-id in AppleALC works for this setting. Layout-id=1 works sometimes. If I install the official driver in windows, that will damage the whole audio output in macOS(a cold boot will partly work).

I don't find any solution for this dual audio codecs setting. I notice some Linux people managed to make a similar system work(Gigabyte GA-AX370-Gaming 5) in Linux by modifying the driver, but not for Hackintosh. I also try to modify AppleALC but no luck. I'm not sure this kext suppose to work with two codecs.

Anyway, any help is welcome and I will update this if I found any solution.
Give this a try, maybe use layout ID 7 for one and 1 for the other. The guide is easier than it looks. I see you asked about it on the thread give it a go and report any issues there. If you have trouble use the cloverbUSB to generate the codecs, label them and I can assemble later for you.

 
Last edited:

juniorz

New member
Joined
Aug 31, 2020
Messages
16
Give this a try, maybe use layout ID 7 for one and 1 for the other. The guide is easier than it looks. I see you asked about it on the thread give it a go and report any issues there. If you have trouble use the cloverbUSB to generate the codecs, label them and I can assemble later for you.

HI, there. I read your guide for creating your own AppleALC.kext. But the I'm not sure AppleALC can support two layout id at the same time. Both audio codecs are at same PCIE path. How can I tell the kext which codec is which and use two different layout ids?
 

Gigamaxx

Donator
Donator
Joined
Dec 4, 2020
Messages
103
HI, there. I read your guide for creating your own AppleALC.kext. But the I'm not sure AppleALC can support two layout id at the same time. Both audio codecs are at same PCIE path. How can I tell the kext which codec is which and use two different layout ids?
One codec is ALC1220, the other is ESS, ES9018 for the large headphone jack on the rear IO. Focus in the 1220 and maybe use a SSDT to deactivate the other or check bios to see if you can disable the ES9018.

Using IOReg explorer select the first and second HDA devices as shown in the pic below. Record the device ID as shown in blue.

Screen Shot 2020-12-31 at 7.39.05 AM.png
 
Last edited:

juniorz

New member
Joined
Aug 31, 2020
Messages
16
One codec is ALC1220, the other is ESS, ES9018 for the large headphone jack on the rear IO. Focus in the 1220 and maybe use a SSDT to deactivate the other or check bios to see if you can disable the ES9018.

Using IOReg explorer select the first and second HDA devices as shown in the pic below. Record the device ID as shown in blue.

View attachment 2203
From the IOReg information, both of them are ALC1220. The only difference is CodecAddress. One is 0 and another is 1.

I'm also thinking about disabling one codec, but look like I have to make a choice between front IO and Rear IO. I'm using a speaker now. So maybe I will keep the rear IO. However, I'm not sure how to disable the codec. I do disable the NV graphic card by config.plist. With the same PCIE address, I don't know how to do that.
 

Attachments

  • codec1.png
    codec1.png
    52.3 KB · Views: 7
  • codec2.png
    codec2.png
    50.5 KB · Views: 7

Gigamaxx

Donator
Donator
Joined
Dec 4, 2020
Messages
103
From the IOReg information, both of them are ALC1220. The only difference is CodecAddress. One is 0 and another is 1.

I'm also thinking about disabling one codec, but look like I have to make a choice between front IO and Rear IO. I'm using a speaker now. So maybe I will keep the rear IO. However, I'm not sure how to disable the codec. I do disable the NV graphic card by config.plist. With the same PCIE address, I don't know how to do that.
The front and rear are on the same codec. I believe the other you are seeing is the e9018. Post your IOReg and collect the Codec. We can compare the codec to a known codec.
It may also be possible if you pull the raw codec to edit out or even activate the e9018.

Open up IOReg and save it, then Compress it and post it.
 

juniorz

New member
Joined
Aug 31, 2020
Messages
16
The front and rear are on the same codec. I believe the other you are seeing is the e9018. Post your IOReg and collect the Codec. We can compare the codec to a known codec.
It may also be possible if you pull the raw codec to edit out or even activate the e9018.

Open up IOReg and save it, then Compress it and post it.
Here it is.

As the diagram I showed first, looks like one codec controls the rear IO and another controls the front IO and the big headphone jack.

Thanks for your help.
 

Attachments

  • X570Godlike_hackintosh.ioreg.zip
    8.5 MB · Views: 10

juniorz

New member
Joined
Aug 31, 2020
Messages
16
The front and rear are on the same codec. I believe the other you are seeing is the e9018. Post your IOReg and collect the Codec. We can compare the codec to a known codec.
It may also be possible if you pull the raw codec to edit out or even activate the e9018.

Open up IOReg and save it, then Compress it and post it.
Have you got a chance to check my IOreg to say which codec controls the front and which controls the rear IO?
 

Gigamaxx

Donator
Donator
Joined
Dec 4, 2020
Messages
103
Have you got a chance to check my IOreg to say which codec controls the front and which controls the rear IO?
It is corrupted or so it’s says when I try to open it. is it the IOJones version? I use the old original IOReg.


Do you have a USB that you can put clover on and get the raw codec to upload? It’s real easy you don’t have to worry about making it boot just hit the F key and then boot to a kernel panic. Pull the USB out and boot normally then connect the USB and mount the USB EFI. That may show the 2 codecs if there are two and also the HDAU for the dedicated graphics.
 

juniorz

New member
Joined
Aug 31, 2020
Messages
16
It is corrupted or so it’s says when I try to open it. is it the IOJones version? I use the old original IOReg.


Do you have a USB that you can put clover on and get the raw codec to upload? It’s real easy you don’t have to worry about making it boot just hit the F key and then boot to a kernel panic. Pull the USB out and boot normally then connect the USB and mount the USB EFI. That may show the 2 codecs if there are two and also the HDAU for the dedicated graphics.
Thanks for trying. I'm using IORegistryExplorer Version 3.0.2 (14).
But anyway, I kind of giving up to make these dual codecs work. I just figure out I will only use BT audio device on this Hackintosh. And including AppleAlc.kext even make the audio output unstable.
 

Middleman

Member
Joined
Jan 29, 2021
Messages
57
Thanks for trying. I'm using IORegistryExplorer Version 3.0.2 (14).
But anyway, I kind of giving up to make these dual codecs work. I just figure out I will only use BT audio device on this Hackintosh. And including AppleAlc.kext even make the audio output unstable.
I think I've found your answer.

According to a post by ARGAMX on the TM site, he had mentioned that if you have a dual codec system and macOS breaks audio, to use alctsel=1 in the boot-args.

Code:
DeviceProperties
| --- > Add
| --- > PciRoot(0x32)/Pci(0x0,0x0)/Pci(0x0,0x0)(Adjust to your device)
| ----> alctsel | Data | 01000000

 

LaytonX

New member
Joined
Jun 30, 2021
Messages
6
Thanks for trying. I'm using IORegistryExplorer Version 3.0.2 (14).
But anyway, I kind of giving up to make these dual codecs work. I just figure out I will only use BT audio device on this Hackintosh. And including AppleAlc.kext even make the audio output unstable.
Hey! Were you able to make audio work at all on your board? I'm looking to just get audio from the 6.3mm jack on macOS side.
 
Top Bottom