Help - Search - Members - Calendar
Full Version: What method works best for ALC888 sound....?
InsanelyMac Forum > OSx86 Project > Hardware Components and Drivers > Sound
Pages: 1, 2
kitmac
voodohda, efi strings, or tarugas patch....???

voodoo seems to work nicely until you put the machine to sleep.
Sound distortion upon wake .....

Tarugas patch gives me a KP as soon it patches applehda.kext

Not too familiar with the efi string method for sound.....
zoliky
I have the same motherboard, EP35-DS3L.
To be honest, ALCxxx sound quality sucks, even after patching (DSDT, taruga, etc...)

I'm searching for an USB sound adapter / alternative.
HBP112358
QUOTE (zoliky @ Aug 24 2009, 03:54 PM) *
I have the same motherboard, EP35-DS3L.
To be honest, ALCxxx sound quality sucks, even after patching (DSDT, taruga, etc...)

I'm searching for an USB sound adapter / alternative.


a good sounding USB dongle that is cheap


that said, I have found that it sometimes has issues with Mic input, but I think thats a bad mic not the dongle.

Good luck and happy listening
kramer2k
I'm using DSDT for Audio / GFX / Lan - Audio works with VoodooHDA. But sleep is still a problem. It sleeps fine, but when it wakes up, it freaks out and gives me the ole' beach ball of death.
kitmac
QUOTE (kramer2k @ Aug 24 2009, 09:40 PM) *
I'm using DSDT for Audio / GFX / Lan - Audio works with VoodooHDA. But sleep is still a problem. It sleeps fine, but when it wakes up, it freaks out and gives me the ole' beach ball of death.


thats weird..... blink.gif
R u using the 64bit sleepenabler..... It works for me in my extras folder
Does your sound come back fine or do you get the distortion........?
zoliky
I attached two kext 'AppleHDA.kext' and 'HDAEnabler.kext' for leopard. I like them better than DSDT and VoodooHDA!
If someone port the "AppleHDA.kext" for SL 64bit.. I would be very grateful!

- Altough the sound quality is not as good as DSDT, the output volume is much higher.
- Completly noise-free.



cparm
QUOTE (zoliky @ Aug 25 2009, 10:52 AM) *
I attached two kext 'AppleHDA.kext' and 'HDAEnabler.kext' for leopard. I like them better than DSDT and VoodooHDA!
If someone port the "AppleHDA.kext" for SL 64bit.. I would be very grateful!

- Altough the sound quality is not as good as DSDT, the output volume is much higher.
- Completly noise-free.





lol, this is my patched applehda, i can recognize it because of the codecverb, and some ".other" little things biggrin.gif

if this one work for you in 32bit, u can use vanilla snow leopard applehda , and my legacy kext, with dsdt or the kabyl HDAenabler for 64bit

here is my dsdt HDEF section:

CODE
Device (HDEF)
            {
                Name (_ADR, 0x001B0000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (Package (0x02)
                    {
                        0x0D,
                        0x05
                    })
                }

                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x0C)
                        {
                            "codec-id",
                            Buffer (0x04)
                            {
                                0x88, 0x08, 0xEC, 0x10
                            },

                            "layout-id",
                            Buffer (0x04)
                            {
                                0x78, 0x03, 0x00, 0x00
                            },

                            "device-type",
                            Buffer (0x07)
                            {
                                "ALC888"
                            },

                            "PinConfigurations",
                            Buffer (0x28)
                            {
                                /* 0000 */    0x50, 0x41, 0x01, 0x01, 0x50, 0x40, 0x21, 0x02,
                                /* 0008 */    0x30, 0x01, 0x10, 0x90, 0x20, 0x60, 0x01, 0x01,
                                /* 0010 */    0x70, 0x20, 0x01, 0x01, 0xA0, 0x90, 0xA1, 0x02,
                                /* 0018 */    0x10, 0x30, 0x81, 0x01, 0x40, 0x90, 0xA1, 0x01,
                                /* 0020 */    0x60, 0x61, 0x4B, 0x01, 0xF0, 0x01, 0xCB, 0x01
                            },

                            "reg",
                            Buffer (0x28)
                            {
                                /* 0000 */    0x00, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                /* 0010 */    0x00, 0x00, 0x00, 0x00, 0x10, 0xD8, 0x00, 0x02,
                                /* 0018 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                /* 0020 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00
                            },

                            "platformFamily",
                            Buffer (One)
                            {
                                0x00
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }


Click to view attachment
johan
i use the voodohda 64 bit version

works for me

kitmac
QUOTE (johan @ Aug 25 2009, 12:16 PM) *
i use the voodohda 64 bit version

works for me


Yea it works for me too but do you get sound distotion after you wake the computer?
johan
i don't wake .. reboot always
zoliky
cparm method works great! I don't really like the number of kexts (3 is too much in my opinion) but works great!
kitmac
QUOTE (HBP112358 @ Aug 24 2009, 07:23 PM) *

a good sounding USB dongle that is cheap


that said, I have found that it sometimes has issues with Mic input, but I think thats a bad mic not the dongle.

Good luck and happy listening


I took your advice... got the same exact dongle.... problem solved!!!!! biggrin.gif
blackosx
For the EP45-DS3L I swear by DSDT (Koalala's ACPI Patcher - Selecting Realtek ALC888-0, and checking HDEF box) then adding one of these attached LegacyHDA's, from tmongkol's thread, in to /E/E. Easy as that smile.gif
Snow
All you guys have 5.1 sound?

Can't seem to get a straight answer anywhere as to whether it supports 5.1 or not lol

blackosx
QUOTE (Snow @ Aug 26 2009, 12:03 PM) *
All you guys have 5.1 sound?

I haven't got any audio hardware near my hack to test that.
dabla
I've done the DSDT patch with audio, network and graphics (last 2 work perfectly) for my EP35-DS4, which has a Realtek ALC889A chipset. I've tried with all possible HDAEnabler's ect without luck, also with the 3 kext's from cparm's package mentioned above without luck. The only way I'm able to get sound is via ALCinject.kext located under /S/L/E (with -x32). I thought the DSDT patch just made injetors unnecessary? What am I doing wrong?
derpuma
@dabla

I can confirm your exp. I have had the same problems. dsdt without probs - no legacy kexts work!
Only ALCInject worked... for me too.
dabla
Hi derpuma, actually i can change volume of my different outputs via ALCinject but I can't get/hear any sound... so I'm still messing around...
zoliky
dabla, the DSDT is for ALC888
zoliky
QUOTE (kitmac @ Aug 26 2009, 10:13 AM) *
I took your advice... got the same exact dongle.... problem solved!!!!! biggrin.gif

You are lucky!
I don't know how can I obtain "Syba" products in Europe sad.gif
Cheezmen
Gah, with these kexts and dsdt i get stuttery sound sad.gif
dabla
QUOTE (zoliky @ Aug 26 2009, 08:03 PM) *
dabla, the DSDT is for ALC888


I have generated a DSDT for the ALC889A, so I don't understand what you mean?
dabla
For those having sound issues with ALC889A on Gigabyte boards, tapper00 found a dsdt solution without extra kext:

http://www.insanelymac.com/forum/index.php...t&p=1237530
jinnggoff
I dont know will works for you...
Here is my edited applehda snow leopard x64 for alc888
works best to me in Gigabyte P31-ds3l
Click to view attachment
zoliky
I'm ordered the SYBA USB Adapter (aka. Delock in Europe).

USA: http://www.newegg.com/Product/Product.aspx...N82E16812186046
Europe: http://www.delock.de/produkte/suche/Delock...r_71_61645.html

UPDATE
The USB Adapter works like a charm: http://twitpic.com/fyg8x / http://twitpic.com/fyga3
If you don't have 10USD to buy this adapter, you don't need a hackintosh tongue.gif Go and use Windows biggrin.gif
nate911
jinnggoff & cparm - both of your kexts work well, but dies after reboot.

Any ideas would be appeciated -thanks!
callumj09
Hey, wondering if anyone can help me out here. I have a GA-EX58-UD3R (Gigabyte) which as far as I believe uses the ALC888 codec (ICH10R chipset) and so far none of the kexts available from this thread have worked, that is, unless I've installed them to the wrong place... I'm using 32-bit Snow Leopard.

Where should the kexts be installed to? I assume they should all go to S/L/E, but then again I'm not entirely sure. I have also tried VoodooHDA.kext which doesn't work correctly for my board - so that option is ruled out.

I had a perfectly working set of kexts when I was running 10.5.8 so I'm quite annoyed that they haven't continued to work, but I thought I would upload them for anyone that's really eager to lend a hand in figuring this out.

https://dl.getdropbox.com/u/790162/UD3R_10.5_audio_kexts.zip

The above download is not Snow Leopard related, so please don't download for that reason!

I have looked into patching AppleHDA.kext for SL and patching DSDT (as cparm's post details) which I am way too much of a novice for.

If anyone could offer any help/guidance at all and I would be infinitely greatful. I could especially use some advice from people with the same board!

Thanks in advance!
spammon
QUOTE (cparm @ Aug 25 2009, 05:11 PM) *
lol, this is my patched applehda, i can recognize it because of the codecverb, and some ".other" little things biggrin.gif

if this one work for you in 32bit, u can use vanilla snow leopard applehda , and my legacy kext, with dsdt or the kabyl HDAenabler for 64bit


You sir rock! I got it working. I had a few issues but I will show you my HDEF based on your snippit. You must put this in the entire area. I got errors with the code you gave but I figured it out. For the noobs like me:
CODE
            Device (HDEF)
            {
                Name (_ADR, 0x001B0000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (Package (0x02)
                    {
                        0x0D,
                        0x05
                    })
                }

              Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x0C)
                        {
                            "codec-id",
                            Buffer (0x04)
                            {
                                0x88, 0x08, 0xEC, 0x10
                            },

                            "layout-id",
                            Buffer (0x04)
                            {
                                0x78, 0x03, 0x00, 0x00
                            },

                            "device-type",
                            Buffer (0x07)
                            {
                                "ALC888"
                            },

                            "PinConfigurations",
                            Buffer (0x28)
                            {
                                /* 0000 */    0x50, 0x41, 0x01, 0x01, 0x50, 0x40, 0x21, 0x02,
                                /* 0008 */    0x30, 0x01, 0x10, 0x90, 0x20, 0x60, 0x01, 0x01,
                                /* 0010 */    0x70, 0x20, 0x01, 0x01, 0xA0, 0x90, 0xA1, 0x02,
                                /* 0018 */    0x10, 0x30, 0x81, 0x01, 0x40, 0x90, 0xA1, 0x01,
                                /* 0020 */    0x60, 0x61, 0x4B, 0x01, 0xF0, 0x01, 0xCB, 0x01
                            },

                            "reg",
                            Buffer (0x28)
                            {
                                /* 0000 */    0x00, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                /* 0010 */    0x00, 0x00, 0x00, 0x00, 0x10, 0xD8, 0x00, 0x02,
                                /* 0018 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                /* 0020 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00
                            },

                            "platformFamily",
                            Buffer (One)
                            {
                                0x00
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }

                Method (DTGP, 5, NotSerialized)
                {
                    If (LEqual (Arg0, Buffer (0x10)
                            {
                                /* 0000 */    0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
                                /* 0008 */    0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
                            }))
                    {
                        If (LEqual (Arg1, One))
                        {
                            If (LEqual (Arg2, Zero))
                            {
                                Store (Buffer (One)
                                    {
                                        0x03
                                    }, Arg4)
                                Return (One)
                            }

                            If (LEqual (Arg2, One))
                            {
                                Return (One)
                            }
                        }
                    }

                    Store (Buffer (One)
                        {
                            0x00
                        }, Arg4)
                    Return (Zero)
                }
            }


Thanks again for getting me onboard sound!

QUOTE (callumj09 @ Sep 2 2009, 01:25 AM) *
Hey, wondering if anyone can help me out here. I have a GA-EX58-UD3R (Gigabyte) which as far as I believe uses the ALC888 codec (ICH10R chipset) and so far none of the kexts available from this thread have worked, that is, unless I've installed them to the wrong place... I'm using 32-bit Snow Leopard.

Where should the kexts be installed to? I assume they should all go to S/L/E, but then again I'm not entirely sure. I have also tried VoodooHDA.kext which doesn't work correctly for my board - so that option is ruled out.

I had a perfectly working set of kexts when I was running 10.5.8 so I'm quite annoyed that they haven't continued to work, but I thought I would upload them for anyone that's really eager to lend a hand in figuring this out.

https://dl.getdropbox.com/u/790162/UD3R_10.5_audio_kexts.zip

The above download is not Snow Leopard related, so please don't download for that reason!

I have looked into patching AppleHDA.kext for SL and patching DSDT (as cparm's post details) which I am way too much of a novice for.

If anyone could offer any help/guidance at all and I would be infinitely greatful. I could especially use some advice from people with the same board!

Thanks in advance!


I would use cparm's files and the code he posted to patch your dsdt.aml file. If you need help patching let me know I can point you in the right direction. I did not use VoodooHDA and working with vanilla AppleHDA.kext

Put these in your S/L/E folder and rebuild your kextcache with Kext Utility.

  • LegacyAppleHDAHardwareConfigDriver.kext
  • LegacyHDAController.kext
  • LegacyHDAPlatformDriver.kext
  • LegacyHDA.kext (not sure about this one)


Good Luck!
MACinized
here's from my dsdt:
CODE
            Device (AZAL)
            {
                Name (_ADR, 0x001B0000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (Package (0x02)
                    {
                        0x05,
                        0x05
                    })
                }
            }

            Name (BUFA, ResourceTemplate ()
            {
                IRQ (Level, ActiveLow, Shared, )
                    {3,4,5,6,7,9,10,11,12,14,15}
            })
            Name (BUFB, ResourceTemplate ()
            {
                IRQ (Level, ActiveLow, Shared, )
                    {}
            })
            CreateWordField (BUFB, One, IRQV)

anyone who can help me how to proceed?

i'm using jinnggoff's patched applehda matched w/ the hdaenabler. sounds work better than voodoohda where audio is already shown as built-in and it doesn't get distorted after waking up from sleep. mic-in still won't work though.

@jinnggoff

do u have ur mic-in working?
HaX0r Jim Duggan
I don't even have the AZAL section in my DSDT.. no idea what to do. Anyone know about this?
undo_undo
How does this dongle work? Is it Plug and Play? Does it require any kexts? Does it work on SL 64bit?

Thanks

QUOTE (kitmac @ Aug 26 2009, 10:13 AM) *
I took your advice... got the same exact dongle.... problem solved!!!!! biggrin.gif
defn
QUOTE (cparm @ Aug 25 2009, 04:11 PM) *
lol, this is my patched applehda, i can recognize it because of the codecverb, and some ".other" little things biggrin.gif

...


Oops -- Sorry cparm -- I made a mistake. My audio works after adding the Legacy kexts to S/L/E. However, I can't help but notice that the sound is very harsh, kind of like it is being overdriven. Any ideas?


Thanks in advance!
callumj09
QUOTE (spammon @ Sep 2 2009, 03:44 AM) *
I would use cparm's files and the code he posted to patch your dsdt.aml file. If you need help patching let me know I can point you in the right direction. I did not use VoodooHDA and working with vanilla AppleHDA.kext

Put these in your S/L/E folder and rebuild your kextcache with Kext Utility.

  • LegacyAppleHDAHardwareConfigDriver.kext
  • LegacyHDAController.kext
  • LegacyHDAPlatformDriver.kext
  • LegacyHDA.kext (not sure about this one)


Good Luck!


Hey, I've just tried patching my DSDT using iaslMe but it's giving me errors. I did exactly what was said (search for AZAL, replace etc.) and added in the Device (HDEF) section... Here's the log.

CODE
Intel ACPI Component Architecture
ASL Optimizing Compiler version 20080926 [Oct  4 2008]
Copyright (C) 2000 - 2008 Intel Corporation
Supports ACPI Specification Revision 3.0a

/Users/Callum/Desktop/DSDT.dsl   227:     Method (_WAK, 1, NotSerialized)
Warning  1080 -  Reserved method must return a value ^  (_WAK)

---

/Users/Callum/Desktop/DSDT.dsl  5080:                     DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Error    4063 -                        Object does not exist ^  (DTGP)

---

ASL Input:  /Users/Callum/Desktop/DSDT.dsl - 5657 lines, 182353 bytes, 2216 keywords
Compilation complete. 1 Errors, 1 Warnings, 0 Remarks, 20 Optimizations


Apparently this part:

CODE
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)


Can anyone help me on this?
jinnggoff
you forgot to add Method DTGP tongue.gif
just add under HDEF, for example,
CODE
        
    Device (HDEF)
   {
    .....
   }

   Method (DTGP, 5, NotSerialized)
      {
        If (LEqual (Arg0, Buffer (0x10)
                {
                    /* 0000 */    0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
                    /* 0008 */    0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
                }))
        {
            If (LEqual (Arg1, One))
            {
                If (LEqual (Arg2, Zero))
                {
                    Store (Buffer (One)
                        {
                            0x03
                        }, Arg4)
                    Return (One)
                }

                If (LEqual (Arg2, One))
                {
                    Return (One)
                }
            }
        }

        Store (Buffer (One)
            {
                0x00
            }, Arg4)
        Return (Zero)
    }
MACinized
QUOTE (callumj09 @ Sep 4 2009, 09:53 PM) *
Hey, I've just tried patching my DSDT using iaslMe but it's giving me errors. I did exactly what was said (search for AZAL, replace etc.) and added in the Device (HDEF) section... Here's the log.

CODE
Intel ACPI Component Architecture
ASL Optimizing Compiler version 20080926 [Oct  4 2008]
Copyright (C) 2000 - 2008 Intel Corporation
Supports ACPI Specification Revision 3.0a

/Users/Callum/Desktop/DSDT.dsl   227:     Method (_WAK, 1, NotSerialized)
Warning  1080 -  Reserved method must return a value ^  (_WAK)

---

/Users/Callum/Desktop/DSDT.dsl  5080:                     DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Error    4063 -                        Object does not exist ^  (DTGP)

---

ASL Input:  /Users/Callum/Desktop/DSDT.dsl - 5657 lines, 182353 bytes, 2216 keywords
Compilation complete. 1 Errors, 1 Warnings, 0 Remarks, 20 Optimizations


Apparently this part:

CODE
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)


Can anyone help me on this?

so u "natively" have both Device (AZAL) and Device (HDEF) in your dsdt?
mitko17
QUOTE (kitmac @ Aug 24 2009, 10:42 PM) *
voodohda, efi strings, or tarugas patch....???

voodoo seems to work nicely until you put the machine to sleep.
Sound distortion upon wake .....

Tarugas patch gives me a KP as soon it patches applehda.kext

Not too familiar with the efi string method for sound.....



Here is what I found and use and there is no the crisp sound at the beginning

http://www.mediafire.com/download.php?gihnyzggy1z

it just work perfet, BUT first remove the same filename kext, before install this ones


cheers
MACinized
QUOTE (mitko17 @ Sep 5 2009, 12:49 PM) *
Here is what I found and use and there is no the crisp sound at the beginning

http://www.mediafire.com/download.php?gihnyzggy1z

it just work perfet, BUT first remove the same filename kext, before install this ones


cheers

this causes kp on snowleo.
kitmac
QUOTE (MACinized @ Sep 5 2009, 03:56 AM) *
this causes kp on snowleo.


Yup same here..... censored2.gif
nathan7
cparm's method works for me on Snow 64, sleep and all. Thanks cparm.
kitmac
QUOTE (nathan7 @ Sep 7 2009, 05:10 PM) *
cparm's method works for me on Snow 64, sleep and all. Thanks cparm.


can u post a link to this cparm method..........???
Aesop69
I had a hard time finding a working ALC888
My dsdt does not have AZA

I removed the AppleHDA from S/L/E and replaced with the one from this file.
http://www.insanelymac.com/forum/index.php...t=#entry1253650

I Also used the HDenabler from this file but nothing else.

worked for single line out only but i have sound now, better then none.
dacheat
QUOTE (Aesop69 @ Sep 7 2009, 06:12 PM) *
I had a hard time finding a working ALC888
My dsdt does not have AZA

I removed the AppleHDA from S/L/E and replaced with the one from this file.
http://www.insanelymac.com/forum/index.php...t=#entry1253650

I Also used the HDenabler from this file but nothing else.

worked for single line out only but i have sound now, better then none.


Try these. They work VERY well for my ALC1200 and the ALC888 is supposed to be almost (if not ) exactly the same.
Apparently a lot of other UNIX distro's use the same kernel module for both devices.


I get the following using these kexts. Sound is better than it was in Leopard.. in fact.. its superior to anything I have had running on the board (ASUS P6T-non-Deluxe)
Intel High Definition Audio:

Device ID: 0x10438357
Audio ID: 12
Available Devices:
S/P-DIF Out:
Connection: Internal
Line Out:
Connection: 1/8-Inch Jack
External Microphone:
Connection: 1/8-Inch Jack
Headphone:
Connection: 1/8-Inch Jack
S/P-DIF Out:
Connection: Combo
S/P-DIF In:
Connection: Combo
Dith
I've been trying to get my ALC888 (EX58-UD3R) to work using DSDT. However some things are still unclear to me, I've patched the DSDT with several Device (HDEF) lay-outs and tried multiple kexts to get it working but none resulted in working audio under Snow Leopard.

I hope someone here can direct me to information involved on discovering codec-id, layout-id, device-type, pinconfiguration addresses and layout information under Device (HDEF).

I assume my issue is caused by trying DSDT meant for other motherboards, I just have no clue on how to gather all this information myself.

CODE
                  "codec-id",
                            Buffer (0x04)
                            {
                                0x88, 0x08, 0xEC, 0x10
                            },

                       "layout-id",
                            Buffer (0x04)
                            {
                                0x78, 0x03, 0x00, 0x00
                            },

                    "device-type",
                            Buffer (0x07)
                            {
                                "ALC888"
                            },

                            "PinConfigurations",
                            Buffer (0x28)
                            {
                                /* 0000 */    0x50, 0x41, 0x01, 0x01, 0x50, 0x40, 0x21, 0x02,
                                /* 0008 */    0x30, 0x01, 0x10, 0x90, 0x20, 0x60, 0x01, 0x01,
                                /* 0010 */    0x70, 0x20, 0x01, 0x01, 0xA0, 0x90, 0xA1, 0x02,
                                /* 0018 */    0x10, 0x30, 0x81, 0x01, 0x40, 0x90, 0xA1, 0x01,
                                /* 0020 */    0x60, 0x61, 0x4B, 0x01, 0xF0, 0x01, 0xCB, 0x01
                            },

                            "reg",
                            Buffer (0x28)
                            {
                                /* 0000 */    0x00, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                /* 0010 */    0x00, 0x00, 0x00, 0x00, 0x10, 0xD8, 0x00, 0x02,
                                /* 0018 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                /* 0020 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00
                            },
callumj09
QUOTE (Dith @ Sep 10 2009, 06:45 PM) *
I've been trying to get my ALC888 (EX58-UD3R) to work using DSDT. However some things are still unclear to me, I've patched the DSDT with several Device (HDEF) lay-outs and tried multiple kexts to get it working but none resulted in working audio under Snow Leopard.

I hope someone here can direct me to information involved on discovering codec-id, layout-id, device-type, pinconfiguration addresses and layout information under Device (HDEF).

I assume my issue is caused by trying DSDT meant for other motherboards, I just have no clue on how to gather all this information myself.

CODE
                  "codec-id",
                            Buffer (0x04)
                            {
                                0x88, 0x08, 0xEC, 0x10
                            },

                       "layout-id",
                            Buffer (0x04)
                            {
                                0x78, 0x03, 0x00, 0x00
                            },

                    "device-type",
                            Buffer (0x07)
                            {
                                "ALC888"
                            },

                            "PinConfigurations",
                            Buffer (0x28)
                            {
                                /* 0000 */    0x50, 0x41, 0x01, 0x01, 0x50, 0x40, 0x21, 0x02,
                                /* 0008 */    0x30, 0x01, 0x10, 0x90, 0x20, 0x60, 0x01, 0x01,
                                /* 0010 */    0x70, 0x20, 0x01, 0x01, 0xA0, 0x90, 0xA1, 0x02,
                                /* 0018 */    0x10, 0x30, 0x81, 0x01, 0x40, 0x90, 0xA1, 0x01,
                                /* 0020 */    0x60, 0x61, 0x4B, 0x01, 0xF0, 0x01, 0xCB, 0x01
                            },

                            "reg",
                            Buffer (0x28)
                            {
                                /* 0000 */    0x00, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                /* 0010 */    0x00, 0x00, 0x00, 0x00, 0x10, 0xD8, 0x00, 0x02,
                                /* 0018 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                /* 0020 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00
                            },


The audio works fine for me on an EX58-UD3R, in fact, it's great quality. I even listen to music on it.

Look back a couple of pages at my posts. I used cparm's ALC888 DSDT solution. You need to use all three kexts he has provided in that post, and SL's original AppleHDA all in S/L/E, patch your DSDT and it should work fine. Hope that helps!
Dith
QUOTE (callumj09 @ Sep 10 2009, 11:48 PM) *
The audio works fine for me on an EX58-UD3R, in fact, it's great quality. I even listen to music on it.

Look back a couple of pages at my posts. I used cparm's ALC888 DSDT solution. You need to use all three kexts he has provided in that post, and SL's original AppleHDA all in S/L/E, patch your DSDT and it should work fine. Hope that helps!


Yeah I tried it. It's good to hear someone with the board has it going, it gives me hope! biggrin.gif
I'm going to give it another try and start from scratch!

At least I know I don't have to lookup all that information.
AppleIIGuy
I gave up on working ALC888 on my UD3r and bought a Griffin Firewave
Dith
QUOTE (callumj09 @ Sep 10 2009, 11:48 PM) *
The audio works fine for me on an EX58-UD3R, in fact, it's great quality. I even listen to music on it.

Look back a couple of pages at my posts. I used cparm's ALC888 DSDT solution. You need to use all three kexts he has provided in that post, and SL's original AppleHDA all in S/L/E, patch your DSDT and it should work fine. Hope that helps!


I tried it once more without results.

Redid my whole Snow Leopard installation and rebuild the DSDT from scratch once more.
Now I'm up and running with audio, thanks callum and cparm biggrin.gif
Would still love to know why it wouldn't work earlier as I'm pretty sure my current config is the same as the previous.

I have attached my DSDT.dsl which is using cparm's modified Device (HDEF) section, it also includes the CMOS reset fix. I'm not completely familiar with interchanging DSDT's on the same motherboard but it would be advised to build your own. This is working on EX58-UD3R with ALC888.

Required tool: DSDT_Patcher1.0.1e

In short the instructions are as following, partly provided by the "How to patch DSDT with LAN and HDEF functions".
Since I'm using Digital_Dreamers script to install Snow Leopard I ran the DSDT patcher option from the script.
I took dsdt_fixed.txt from X58_Mobo_Patcher_Installer/~extra/DSDT_Patcher/Debug/ directory and renamed it to DSDT.dsl.

If you do not have the script you will need to do the following yourself:
Download DSDT Patcher and unpack, open a terminal and navigate to the directory.
Execute:
CODE
./DSDT\ Patcher -newHPET
and press 0, you should now have a dsdt_fixed.txt in your Debug directory, rename to DSDT.dsl.

Open up DSDT.dsl and search for the line
CODE
Notify (\_SB.PCI0.USB0, Zero)

Make this section look as following(basically you add the Return (Package (0x02) { ... }:
CODE
        Notify (\_SB.PCI0.USB0, Zero)
        Notify (\_SB.PCI0.USB1, Zero)
        Notify (\_SB.PCI0.USB2, Zero)
        Notify (\_SB.PCI0.USB3, Zero)
        Notify (\_SB.PCI0.USB4, Zero)
        Notify (\_SB.PCI0.USB5, Zero)
        Return (Package (0x02)
                {
                     0x00,
                     0x00
                })


Now search for AZAL and replace it with HDEF. In my case there are 2 instances.
First one:
CODE
            Notify (\_SB.PCI0.AZAL, 0x02)

Change this to:
CODE
            Notify (\_SB.PCI0.HDEF, 0x02)


Second one:
CODE
            Device (AZAL)
            {
                Name (_ADR, 0x001B0000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (Package (0x02)
                    {
                        0x0D,
                        0x05
                    })
                }
            }


Replace with the following:
CODE
            Device (HDEF)
            {
                Name (_ADR, 0x001B0000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (Package (0x02)
                    {
                        0x0D,
                        0x05
                    })
                }

                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x0C)
                        {
                            "codec-id",
                            Buffer (0x04)
                            {
                                0x88, 0x08, 0xEC, 0x10
                            },

                            "layout-id",
                            Buffer (0x04)
                            {
                                0x78, 0x03, 0x00, 0x00
                            },

                            "device-type",
                            Buffer (0x07)
                            {
                                "ALC888"
                            },

                            "PinConfigurations",
                            Buffer (0x28)
                            {
                                /* 0000 */    0x50, 0x41, 0x01, 0x01, 0x50, 0x40, 0x21, 0x02,
                                /* 0008 */    0x30, 0x01, 0x10, 0x90, 0x20, 0x60, 0x01, 0x01,
                                /* 0010 */    0x70, 0x20, 0x01, 0x01, 0xA0, 0x90, 0xA1, 0x02,
                                /* 0018 */    0x10, 0x30, 0x81, 0x01, 0x40, 0x90, 0xA1, 0x01,
                                /* 0020 */    0x60, 0x61, 0x4B, 0x01, 0xF0, 0x01, 0xCB, 0x01
                            },

                            "reg",
                            Buffer (0x28)
                            {
                                /* 0000 */    0x00, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                /* 0010 */    0x00, 0x00, 0x00, 0x00, 0x10, 0xD8, 0x00, 0x02,
                                /* 0018 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                /* 0020 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00
                            },

                            "platformFamily",
                            Buffer (One)
                            {
                                0x00
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }

   Method (DTGP, 5, NotSerialized)
      {
        If (LEqual (Arg0, Buffer (0x10)
                {
                    /* 0000 */    0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
                    /* 0008 */    0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
                }))
        {
            If (LEqual (Arg1, One))
            {
                If (LEqual (Arg2, Zero))
                {
                    Store (Buffer (One)
                        {
                            0x03
                        }, Arg4)
                    Return (One)
                }

                If (LEqual (Arg2, One))
                {
                    Return (One)
                }
            }
        }

        Store (Buffer (One)
            {
                0x00
            }, Arg4)
        Return (Zero)
    }


Unrelated to the audio but a must if you're going to run Snow Leopard is the CMOS Reset Fix. If you're using Digital_Dreamers install script this is already done, this should only be necessary if you manually run DSDT Patcher.

Search dsdt.dsl for
CODE
Device (RTC)

Change the 0x04 you can see under Name (ATT0, ResourceTemplate () and under Name (ATT1, ResourceTemplate () to 0x02

Final result in my case:
CODE
                Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (ATT0, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x00,               // Alignment
                            0x02,               // Length
                            )
                    })
                    Name (ATT1, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x00,               // Alignment
                            0x02,               // Length
                            )
                    })
                    Method (_CRS, 0, NotSerialized)


Save and close DSDT.dsl
Open up a terminal and navigate to the directory, make sure you have the iasl executable from DSDT Patcher in the same directory and execute the command: ./iasl -sa DSDT.dsl

If everything went oke you should have no errors. Now copy DSDT.aml to your desired location, in my case this is /Extra. Place the included kext files in /S/L/E or /Extra, rebuild caches and reboot.

Kexts and Device (HDEF) thanks to CPARM and thanks to tmongkol for the patching instructions.
callumj09
Glad to see you got it working. And that's a great guide by the way, nice work!
thiathias
I have a question : if i add the part of your dsdt related to audio :
CODE
   Device (HDEF)
            {
                Name (_ADR, 0x001B0000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (Package (0x02)
                    {
                        0x0D,
                        0x05
                    })
                }

                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x0C)
                        {
                            "codec-id",
                            Buffer (0x04)
                            {
                                0x88, 0x08, 0xEC, 0x10
                            },

                            "layout-id",
                            Buffer (0x04)
                            {
                                0x78, 0x03, 0x00, 0x00
                            },

                            "device-type",
                            Buffer (0x07)
                            {
                                "ALC888"
                            },

                            "PinConfigurations",
                            Buffer (0x28)
                            {
                                /* 0000 */    0x50, 0x41, 0x01, 0x01, 0x50, 0x40, 0x21, 0x02,
                                /* 0008 */    0x30, 0x01, 0x10, 0x90, 0x20, 0x60, 0x01, 0x01,
                                /* 0010 */    0x70, 0x20, 0x01, 0x01, 0xA0, 0x90, 0xA1, 0x02,
                                /* 0018 */    0x10, 0x30, 0x81, 0x01, 0x40, 0x90, 0xA1, 0x01,
                                /* 0020 */    0x60, 0x61, 0x4B, 0x01, 0xF0, 0x01, 0xCB, 0x01
                            },

                            "reg",
                            Buffer (0x28)
                            {
                                /* 0000 */    0x00, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                /* 0010 */    0x00, 0x00, 0x00, 0x00, 0x10, 0xD8, 0x00, 0x02,
                                /* 0018 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                /* 0020 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00
                            },

                            "platformFamily",
                            Buffer (One)
                            {
                                0x00
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }

   Method (DTGP, 5, NotSerialized)
      {
        If (LEqual (Arg0, Buffer (0x10)
                {
                    /* 0000 */    0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
                    /* 0008 */    0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
                }))
        {
            If (LEqual (Arg1, One))
            {
                If (LEqual (Arg2, Zero))
                {
                    Store (Buffer (One)
                        {
                            0x03
                        }, Arg4)
                    Return (One)
                }

                If (LEqual (Arg2, One))
                {
                    Return (One)
                }
            }
        }

        Store (Buffer (One)
            {
                0x00
            }, Arg4)
        Return (Zero)
    }

is this related to only alc888 or it depends on your motherboard too ?
in fact, will this fix work on a different gigabyte mobo but with alc888 sound chipset ?
Dith
QUOTE (callumj09 @ Sep 11 2009, 04:05 PM) *
Glad to see you got it working.


DSDT/Kexts seem to have improved the volume as well compared to my 10.5.7 install. Slightly louder now so I don't have to crank up the speakers as much anymore.

QUOTE (callumj09 @ Sep 11 2009, 04:05 PM) *
And that's a great guide by the way, nice work!

Thanks! It was just a matter of gathering all the information. The credited people in my post did all the hard work. smile.gif
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.