20 November 2009

All About DSDT and the HP Mini


Note: You should run your Mini without any dsdt.aml loaded first before running DSDT Patcher to get your "real" acpi table. 
Also, I'm no expert on this topic as I'm only beginning to learn myself but this is of potential interest to us all Mini hackintoshers - or all hackintoshers in general. :) > Source of inspiration <
Patch your DSDT:
1) Run "DSDT Patcher". Just double click the file. It'll create a dsdt.aml and a Debug folder in that same location as DSDT Patcher
2) Then copy "iasl" from the Tools folder included in DSDTPatcher_1.0.1e to /usr/bin. 
3) Then you can proceed with editing your dsdt.

Open your dsdt.dsl for editing/modding:
1) Look in the "Debug" folder that will be created when you first patched your dsdt in the same DSDT folder along with DSDT Patcher itself. Save a back up copy of this original dsdt.dsl for reference.
2) Open the file "dsdt.dsl" which TextEdit or better yet open it using Text Wrangler

MODS:


1. Sleep Needs SleepEnabler.kext
(Credit goes to 
SharkOne)
1) With your dsdt.dsl opened in Text Wrangler, find the "Device (EUSB)" and comment out that device; enclose it in "/*" and "*/" it should look something like this:


CODE: 
/*            Device (EUSB)
            {
                Name (_ADR, 0x001D0007)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x0D, 0x04))
                }
            }
*/
2) and then find "Method (_L0D, 0, NotSerialized)" and comment out the line "Notify (\_SB.PCI0.EUSB, 0x02)"; it should look like something like this:

CODE: 
            Method (_L0D, 0, NotSerialized)
            {
/*                Notify (\_SB.PCI0.EUSB, 0x02) */
                Notify (\_SB.PWRB, 0x02)
            }
3) Save changes and authenticate/unlock when prompted.
4) Launch Terminal and 
sudo -s
5) 
cd /path/to/dsdt.dsl
6) 
iasl -ta dsdt.dsl
As a result, you should have a new dsdt.aml together along with your dsdt.dsl in your "Debug" folder.
Test this dsdt.aml; place it in /Extra/ (Chameleon or EFI boot).
Warning: you should have an external booter ready in case you get a kernel panic. Use it to boot back into Mac OS X to correct things (remove the dsdt.aml if it's causing problems)

2. Power Button
credit to pentiumpc (infinitemac)
Image
This mod should get you this dialogue box when you slide the power switch - by default, the dialogue box doesn't show up.

If all went well with sleep, you can continue working on the same dsdt.dsl or you can start working on another copy of the original dsdt.dsl.
1) In Text Wrangler, look for the "Device (PWRB)" line. Change the "_HID" to "_CID". It should look like this:


CODE: 
Device (PWRB)
        {
            Name (_CID, EisaId ("PNP0C0C"))
            Name (_UID, 0xAA)
            Name (_STA, 0x0B)
        }
    }
2) Save changes and authenticate/unlock when prompted.
Note: You can move the previous dsdt.aml somewhere else to avoid confusion.
3) Launch Terminal and 
sudo -s
4) 
cd /path/to/dsdt.dsl
5) 
iasl -ta dsdt.dsl
Again, this'll give you another dsdt.aml which you can place in /Extra/ to test again.


3. Clamshell Sleep (Put the Mini to sleep when you close the lid, and wake it up when you open it) Still needs SleepEnabler.kext

CODE:
/*        Name (\LIDS, One)   */   //comment out as per code structure
        Device (LID)
        {
            Name (_HID, EisaId ("PNP0C0D"))   //LID detection
            Method (_PRW, 0, NotSerialized)
            {
               Return (Package (0x02)
               {
                  0x0B,
                  0x04
               })
              }
            Name (\LIDS, One)   //added as per code structure
            Method (_LID, 0, NotSerialized)
            {
                Store (^^SBRG.EC0.ELID, LIDS)   //LID register
                XOr (LIDS, One, Local0)
                If (Local0)   //If LID is closed
                {
                   Notify (SLPB, 0x80)   //puts system to sleep
                }
                Else
                {
                    Store (One, LIDS)
                }
                Return (LIDS)
            }
        }
    }

2 comments:

Unknown said...
This comment has been removed by the author.
Eugene said...

Great blogg you have