Audio not working - S1220

Gohn

Donator
Donator
AMD OS X Member
Joined
Jul 8, 2020
Messages
4
Hi @ all.
Thanks to all the amd-osx and hackintosh community to begin with.
The installation following the OpenCore desktop guide was flawless and almost everything worked out of the box.

I'm just having some trouble getting my audio card recognized.
I have an Asus Crosshair VI Hero motherboard and the manual says that it has a "ROG SupremeFX S1220" audio codec.
I tried to follow the "Fixing audio" guide of OpenCore but without success.

The result of the "kextstat | grep -E "AppleHDA|AppleALC|Lilu" command is :
42 7 0xffffff7f854c6000 0x29000 0x29000 as.vit9696.Lilu (1.4.5) E42CE60E-EC0B-33AE-A513-5383B81BF165 <8 6 5 3 2 1>
43 0 0xffffff7f85508000 0x145000 0x145000 as.vit9696.AppleALC (1.5.0) 2DC43BEC-BE69-32C7-8D49-FE1ED85A87D6 <42 13 8 6 5 3 2 1>
115 0 0xffffff7f82920000 0x1d000 0x1d000 com.apple.driver.AppleHDAController (283.15) 08E1F3A3-E053-38E3-A7F3-B56584157B97 <114 99 84 13 8 7 6 5 3 1>

The beginning of the result of the "cat /proc/asound/cardX/codec#0 | less" command is :
Codec: Realtek ALC1220
Address: 0
AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x10ec1220
Subsystem Id: 0x10438735
Revision Id: 0x100003
The rest of is in the attached file.

I've tried every layout-id (via the "alcid" parameter) listed in the supported codecs page of AppleALC wiki but none worked.. it starts to drive me crazy :ROFLMAO:
Does anyone have a hint about how to solve this?
Thanks in advance !


PS: On another subject I'm just sharing my experience with another weird issue concerning the audio but this time with my USB headset.
My motherboard seems to have 3 USB Host Controller :
  • AS43 : ASM1143 USB 3.1 - Unused
  • PTXH : X370 USB 3.1 xHCI - 3 USB3 ports behind used + 1 USB3 ports unused + 2 USB2 ports behind used + 1 internal used
  • XHC0 : Family 17h USB 3.0 - 3 USB3 ports behind unused and 1 USB3 used
When I connect my USB headset (Arctis 7) on the PTXH controller, i'm getting a lot of these errors :
coreaudiod HALS_IOA1Engine::EndWriting: got an error from the kernel trap, Error: 0xE00002D7
It translates physically by a crackling sound or even worse it can just stop working a few seconds.

Yet when I connect it to the XHC0 controller, no errors at all, it is working just fine...

The thing is, if I plug something to my XHC0, the sleep function stops working correctly :ROFLMAO:
I've tried to map the usbs correctly by generating an appropriate USBPorts.kext and then trying to make it sleep again without success.
 

Attachments

  • alc1220.txt
    14.2 KB · Views: 5

Gohn

Donator
Donator
AMD OS X Member
Joined
Jul 8, 2020
Messages
4
Actually, I've got my sound working and recognized correctly !
As I have two graphic cards, a AMD RX560 and a Nvidia 1080Ti, I had followed the following tutorial in order to disable my Nvidia GPU.

The thing is, weirdly enough, if I create a SSDT or do deactivate it via the config.plist as told, AppleALC, instead of patching my Realtek card, is patching the "HDAU" present on my 1080Ti gpu.
Therefore, I'm getting the GPP8/HDAU recognized as HDEF with the alc-layout injected into it instead of getting my GP18/AZUL patched.

I've removed my SSDT patch for now and the sound is working nicely with an alcid=1 parameter :)
 

Gohn

Donator
Donator
AMD OS X Member
Joined
Jul 8, 2020
Messages
4
Little update to tell that if the sound was playing nicely by removing the SSDT, I had lost the ability to sleep (without using the XHC0 port as usual).
So instead of disabling it by a SSDT, I've just created the HDAU entry in the DSDT as it wasn't shown (using the address found on IOReg) and disabled both X161 and HDAU the same way from there this way :
Code:
            Device (GPP8)
            {
                Name (_ADR, 0x00030001)  // _ADR: Address
                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        Return (AR09) /* \_SB_.AR09 */
                    }

                    Return (PD09) /* \_SB_.PD09 */
                }

                Device (X161)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                    {
                        If (!Arg2)
                        {
                            Return (Buffer (One)
                            {
                                 0x03                                             // .
                            })
                        }

                        Return (Package (0x06)
                        {
                            "name",
                            Buffer (0x09)
                            {
                                "#display"
                            },

                            "IOName",
                            "#display",
                            "class-code",
                            Buffer (0x04)
                            {
                                 0xFF, 0xFF, 0xFF, 0xFF                           // ....
                            }
                        })
                    }
                }

                Device (HDAU)
                {
                    Name (_ADR, One)  // _ADR: Address
                    Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                    {
                        If (!Arg2)
                        {
                            Return (Buffer (One)
                            {
                                 0x03                                             // .
                            })
                        }

                        Return (Package (0x06)
                        {
                            "name",
                            Buffer (0x0B)
                            {
                                "#gfx-audio"
                            },

                            "IOName",
                            "#gfx-audio",
                            "class-code",
                            Buffer (0x04)
                            {
                                 0xFF, 0xFF, 0xFF, 0xFF                           // ....
                            }
                        })
                    }
                }
            }

Now sleep works again (with the same condition) and AppleALC patches the right device.
I'm gonna try to get the sleep working on these XHC0 ports but a quick look on google tells me that it may not be achievable...
 
Back
Top Bottom
  AdBlock Detected
Sure, ad-blocking software does a great job at blocking ads, but it also blocks some useful and important features of our website. For the best possible site experience please take a moment to disable your AdBlocker.