Jump to content

[Solved] Help with ADI AD2000b on Mavericks


Shinji3rd2000
 Share

59 posts in this topic

Recommended Posts

Hi Zecco.

 

Please, update your Chameleon to the latest version. Then try the DSDT file attached, and install the two kext again using Kext Wizard. Remember to repair permissions and rebuild cache with Kext Wizard too after the installation but before rebooting you Mac.

 

PS: I always install AppleACPIPlatform.kext too after clean installation or upgrade, because other way the system won't boot.

Asus P6T Deluxe Patched Audio Layout-ID 99 V2 DSDT.zip

  • Like 2
Link to comment
Share on other sites

  • 4 months later...
  • 4 months later...

This works great on 10.9.0, but breaks on 10.9.2. I'm using VoodooHDA 2.8.4 instead now, but it generates too much noise.

 

What should I do to make it work on 10.9.2?

 

Motherboard: Asus P6T Deluxe V2

Audio: Onboard ADI AD2000B

did you find  a solution to the problem?

Link to comment
Share on other sites

You are trying to use the file I submitted for Asus P6T Deluxe?

 

Try installing these two kexts I'm attaching here and nothing more. It should work, these are the files I'm using now on 10.9.4

it's strange coz i have no luck with it.

 

- unzipped the 2 kext files to the desktop

- ran the kext program from the site that is not supported

- reboot

 

still no sound. should i be putting the DSDT.aml file in this thread in /Extras as well?

Link to comment
Share on other sites

I hope these pointers are helpful for anyone wishing to activate their AD2000B audio chipset/codec under OS X Mavericks 10.9.4 on their MOBO.

 

I have an Asus P5Q-E motherboard with a AD2000B audio chipset/codec, and I am currently using Chameleon bootloader v2.2svn r2266 or later, and have been able to obtain working audio under Mavericks in either of two ways:

 

A. Using Shinji3rd2000's AppleHDA.kext and HDAEnabler.kext in post #1 with HDEF section in my DSDT.aml, which I for myself always place in / but you can place it in /Extra as is more customary.

 

DSDT.aml patching

 

Place the HDEF section at the end of Device (PCI0) in the dsdt.dsl file:

 

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

                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x06)
                        {
                            "layout-id",
                            Buffer (0x04)
                            {
                                0x63, 0x00, 0x00, 0x00
                            },

                            "platformFamily",
                            Buffer (One)
                            {
                                0x00
                            },

                            "PinConfigurations",
                            Buffer (Zero) {}
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }

 

equivalent to the DSDT.aml file:

 

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

                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x06)
                        {
                            "layout-id",
                            Unicode ("c"),
                            "platformFamily",
                            Buffer (One)
                            {
                                0x00
                            },

                            "PinConfigurations",
                            Buffer (Zero) {}
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }

 

Placing AppleHDA.kext and HDAEnabler.kext in /S/L/E

 

1. Rename original 10.9.4 AppleHDA.kext as follows:

cd /System/Library/Extensions
sudo mv AppleHDA.kext AppleHDA.kext_1094_ORIG

2. Copy and paste AppleHDA.kext and HDAEnabler.kext into /S/L/E

 

3. Go to /System/Library/Caches/com.apple.kext.caches/Startup and delete the files present within Startup…

 

IOKitPersonalities_x86_64.ioplist.gz
kernelcache
KextPropertyValues_OSBundleHelper_x86_64.plist.gz
loadedkextmt.plist

 

4. In Terminal type:

sudo chown -R root:wheel /System/Library/Extensions
sudo chmod -R 755 /System/Library/Extensions
sudo touch /System/Library/Extensions
exit

5. Reboot to see in System Report under Audio:

 

post-200327-0-32213600-1407463922_thumb.png

 

B. Use oldnapalm's VoodooHDA AD1988B 7.1 kext with no need for a Device (HDEF) section to be inserted in your DSDT.aml file.

 

oldnapalm's original VoodooHDA kext patched for AD1988B (tested on his Asus P5E) works for the AD2000B chipset/codec on my Asus P5Q-E, enabling Headphones (green front) auto-detect.

 

 I have not tested the other inputs/outputs but this is what I see in the Mavericks System Report:

 

post-200327-0-57450600-1407464551.png

 

Download from here and place in /S/L/E, leaving the original 10.9.4 AppleHDA.kext as is, and then

 

1. Go to /System/Library/Caches/com.apple.kext.caches/Startup and delete the files present within Startup…

 

IOKitPersonalities_x86_64.ioplist.gz
kernelcache
KextPropertyValues_OSBundleHelper_x86_64.plist.gz
loadedkextmt.plist

 

2. In Terminal type:

sudo chown -R root:wheel /System/Library/Extensions
sudo chmod -R 755 /System/Library/Extensions
sudo touch /System/Library/Extensions
exit

3. Reboot.

  • Like 2
Link to comment
Share on other sites

Hi Verdant and all,

 

In your last post (Number 35) you list some changes/additions to make to the DSDT: I'm a bit confused because you wrote "equivalent to the DSDT.aml file", does this mean that the sets of code are interchangable or are they meant for different scenarios? Which should I use?

 

 

Place the HDEF section at the end of Device (PCI0) in the dsdt.dsl file:

 

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

                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x06)
                        {
                            "layout-id",
                            Buffer (0x04)
                            {
                                0x63, 0x00, 0x00, 0x00
                            },

                            "platformFamily",
                            Buffer (One)
                            {
                                0x00
                            },

                            "PinConfigurations",
                            Buffer (Zero) {}
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }

 

equivalent to the DSDT.aml file:

 

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

                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x06)
                        {
                            "layout-id",
                            Unicode ("c"),
                            "platformFamily",
                            Buffer (One)
                            {
                                0x00
                            },

                            "PinConfigurations",
                            Buffer (Zero) {}
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }

 

 Also, does this get pasted into the next available line at the end of Device (PCI0)?

 

Thank you

  • Like 1
Link to comment
Share on other sites

Hi, Shinj3rd2000

 

I've got a dsdt which I extracted in Windows.  Unfortunately I wasn't able to extract using DSDT Editor in Mavericks (it just didn't create the file) and MaciASL won't launch for some reason.  So I currently have a DSDT.bin renamed to .aml: it opens in DSDT Editor and I can make edits although I haven't yet. 

 

Currently I have a vanilla install of Mavericks with just IONetworkingFamily.kext Yukon edited to enable ethernet.  Other than that the install is totally vanilla with sleep working.

 

I'd be very grateful if you would make the necessary edits to my DSDT although I'd really like to learn how to do it myself...however, my coding experience is ZERO.

 

Thanks. 

Link to comment
Share on other sites

Hey Phr4c7ur3, please try to use the dsdt I've provided on post #26. Put it on Extra folder, and then install the two kexts I've uploaded on post #32 using kext beast. Reboot your hackintosh, go to System Preferences / Sound and chek what output options do you have. The sound must be working now.

Link to comment
Share on other sites

@ Phr4c7ur3

 

In my dsdt.dsl file, I entered as shown (i.e. 0x63, 0x00, 0x00, 0x00 instead of 0x0C, 0x00, 0x00, 0x00)

 

                            "layout-id",
                            Buffer (0x04)
                            {
                                0x63, 0x00, 0x00, 0x00
                            },
                            "platformFamily",

 

which when compiled, producing the dsdt.aml, the above appears as

 

                            "layout-id",
                            Unicode ("c"),
                            "platformFamily",

 

meaning that they are equivalent, i.e. do not panic when you no longer see

 

                            Buffer (0x04)
                            {
                                0x63, 0x00, 0x00, 0x00
                            },

 

 

Find in your dsdt file (.dsl or .aml)

 

 

Device (P0P4)
            {
                Name (_ADR, 0x001C0000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x09, 0x04))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR04)
                    }

                    Return (PR04)
                }
            }
        }

        Scope (\_GPE)
        {
            Method (_L09, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.P0P2, 0x02)
                Notify (\_SB.PCI0.P0P3, 0x02)
                Notify (\_SB.PCI0.P0P5, 0x02)
                Notify (\_SB.PCI0.P0P6, 0x02)
                Notify (\_SB.PCI0.P0P7, 0x02)
                Notify (\_SB.PCI0.P0P8, 0x02)
                Notify (\_SB.PCI0.P0P9, 0x02)
                Notify (\_SB.PCI0.P0P4, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

 

and place the Device (HDEF) section between the two red brackets as follows

 

                    Return (PR04)
                }
            }

 

Insert Device (HDEF) section here

 

        }
        Scope (\_GPE)

Link to comment
Share on other sites

@ Phr4c7ur3

 

In your case with Asus P6T Deluxe v2, put the Device (HDEF) between 

 

Device (USBE)
            {
                Name (_ADR, 0x001A0007)
                Device (RHUB)
                {
                    Name (_ADR, Zero)
                    Device (PRT5)
                    {
                        Name (_ADR, 0x05)
                        Name (_UPC, Package (0x04)
                        {
                            0xFF,
                            Zero,
                            Zero,
                            Zero
                        })
                    }
                }

                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x0D, 0x04))
                }
            }

 

 

and 

 

Device (P0P4)
            {
                Name (_ADR, 0x001C0000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x09, 0x04))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR04)
                    }

                    Return (PR04)
                }
            }

 

If putting it as the last entry in the Device (PCI0) section does not work for you.....

 

 

If you wish give me a download link for your dsdt.dsl or dsdt.aml file to look should you have problems with my explanations.....

Link to comment
Share on other sites

I think I've got this right?

 

 Device (USBE)

            {
                Name (_ADR, 0x001A0007)
                Device (RHUB)
                {
                    Name (_ADR, Zero)
                    Device (PRT5)
                    {
                        Name (_ADR, 0x05)
                        Name (_UPC, Package (0x04)
                        {
                            0xFF, 
                            Zero, 
                            Zero, 
                            Zero
                        })
                        Name (_PLD, Buffer (0x10)
                        {
                            /* 0000 */   0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                            /* 0008 */   0x30, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                        })
                    }
                }
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x0D, 0x04))
                }
            }
            Device (HDEF)
            {
                Name (_ADR, 0x001B0000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (Package (0x02)
                    {
                        0x0D,
                        0x05
                    })
                }
                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x06)
                        {
                            "layout-id",
                            Buffer (0x04)
                            {
                                0x63, 0x00, 0x00, 0x00
                            },
                            "platformFamily",
                            Buffer (One)
                            {
                                0x00
                            },
                            "PinConfigurations",
                            Buffer (Zero) {}
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }
            Device (P0P4)

 

if that's right do I go ahead and save as .DSL?

Link to comment
Share on other sites

@ Phr4c7ur3

 

Which DSDT app are you using for this?

Link to comment
Share on other sites

@Verdant,

 

I'm using DSDT Editor but only because MaciASL won't launch properly for me, it just sits bouncing away in the dock.  Also, as a side point, I'm unable to extract DSDT from within DSDT Editor.

Link to comment
Share on other sites

OK after making the changes to the dsdt file manually in DSDT Editor, then go to IASL in top menu and click on compile and then click on Save AML as.....and save the compiled i.e. '.aml' file as DSDT.aml in the directory of your choice, i.e. / or /Extra.....

 

Extract your original DSDT.aml file off the PC using the Ubuntu Live DVD, plug in a FAT32 formatted USB flash drive and then go to the Terminal and type either
 

cd /media/"Volume name of the USB flash drive"
sudo cat /sys/firmware/acpi/tables/DSDT > DSDT.aml

for Ubuntu 11.xx and later, or
 

cd /media/"Volume name of the USB flash drive"
sudo cat /proc/acpi/dsdt > DSDT.aml

for Ubuntu 10.xx or earlier. In either case, the extracted DSDT.aml file should have been saved on the USB flash drive, for later decompiling, patching and recompiling using iasl or iasl based tools, so send me a download link for your extracted DSDT.aml file....

 

I use DSDTSE for my DSDT patching DSDTSE.zip

 

but double check for compiling errors using DSDT Editor and MaciASL

 

 

  • Like 1
Link to comment
Share on other sites

No problem, your DSDT file has to be cleaned up and patched for DTGP........

 

If you wish give me a download link for your dsdt.dsl or dsdt.aml file

Link to comment
Share on other sites

@Verdant

 

I think that might be best...I do want to learn how to do this but I don't think I'm going to learn tonight.

 

This is the original DSDT I exported in Windows (.bin format),

 

Thank you

Link to comment
Share on other sites

 Share

×
×
  • Create New...