February 2, 2011

Perfecting my Hackintosh Build

I have just upgraded my Snow Leopard to from 10.6.0 to 10.6.6 successfully yesterday. It begins with the upgrade for iTunes. I was holding the Mac OS update due to the fact that I will lose all my sound settings.

As expected, after upgrading to 10.6.6, I lost my sound. My Hackintosh is muted.

The reason why I'm scared to upgrade is due to the fact that I might have lost the sound kext for my hackintosh. I have also forgotten what sound card that I'm using. Thanks to my previous post of the Hackintosh which stated my Sound Card was actually ALC 1200. I thought it was ALC888 or ALC889.

The main resource for ALC 1200 is at http://www.insanelymac.com/forum/index.php?showtopic=161430. There are 2 kind of fix provided in the page. Last time I did use the fix without having to edit DSDT from this page as well. As I didn't understand a thing in DSDT, I opted for HDAEnabler and no DSDT editing as I didn't know anything about DSDT.

All this while I didn't understand DSDT editing at all. All the guide over the Internet did not properly state what exactly needs to be done after compiling the DSDT. It was quite simple actually. Heck to those saying that DSDT editing is hard and confusing. Reading it that way made me think that it's hard.

It was known that by using the HDAEnabler, once the OS is upgraded, you will have to do the sound all over again. So this time, I'm opting for the DSDT editing. I have a few things to fix as well; eg. CMOS reset problem.

Actually DSDT editing is easy. After compiling, what do you really need to do is just to compy it to root folder and restart. As easy as that :)

DSDT Editing:

The easiest way to do DSDT editing is by using DSDTSE, which can be downloaded from http://www.osx86.es/FArchivos/FDSDTSE.zip.
  1. Extract and install DSDTSE package
  2. Once installed, browse through "/" folder and double click on dsdt.aml. A new window will be opened with an extract from the DSDT file. 
  3. HDEF fix
  4. insert this code to dsdt file
  5. Device (HDEF)
                {
                    Name (_ADR, 0x001B0000)
                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x0A)
                            {
                                "built-in",
                                Buffer (One)
                                {
                                    0x01
                                },

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

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

                                "device-type",
                                Buffer (0x11)
                                {
                                    "Realtek ALC1200"
                                },

                                "PinConfigurations",
                                Buffer (One)
                                {
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }
  6. Some board may have DTGP error while compiling. Please insert this code at the beginning of the file after the first {
  7. 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)
        }
  8. To fix my CMOS reset, I used this fix. The one in bold Red value was 4 before. So I changed it to 2.
  9.                 Device (RTC)
                    {
                        Name (_HID, EisaId ("PNP0B00"))
                        Name (ATT0, ResourceTemplate ()
                        {
                            IO (Decode16,
                                0x0070,             // Range Minimum
                                0x0070,             // Range Maximum
                                0x00,               // Alignment
                                0x02,               // Length
                                )
                        })
  10. I keep recompiling after every fix to ensure no error in the codes. After all this fixes, the compile successful with a warning. It was the _WAK warning which was fixed using this code at the end of _WAK paragraph.
  11. Method (_WAK, 1, NotSerialized)
        {       
            ............................
            Return (Package (0x02)
            {
                Zero,
                Zero
            })
        }
  12. Then my compile was successful without error and warning at all.
  13. Backup the old dsdt.aml in "/" folder and replace with the one you just compile. Normally after compiling, DSDTSE will open a new finder window with direction to the compiled DSDT.aml
AppleHDA fix:
    I downloaded the AppleHDA fix with DSDT patch file from http://www.insanelymac.com/forum/index.php?act=attach&type=post&id=80281. You mus register before you are able to download this file. Extract this file and install.

    Final thing to do is, RESTART. After restart, I have no more CMOS reset and the most important thing is, I got my sound back!

    No comments:

    Sponsor Links

    Free Iphone?
    Or Free Ipad?
    Learn how to get free gadgets

    Want to make money from Iphone/Ipad apps?
    Affiliate yourself with apps developer to make money

    Search Optimize your website
    and win free gadget?
    SEO Marketing