|
Joined: Thu Oct 22, 2009 11:05 pm Posts: 2664 Location: Missouri, USA
Netbook(s):
MSI Wind
|
Could not locate in the caches, but I was able to rebuild 98% of it with the DSDT Patching tutorial from insanelymac, and staticanime's blog, which contained most, but not all of the patches. DSDT Patching is a process by which we adapt the DSDT table that the OS sees, to increase functionality in out hackintoshes, without adding extra kexts. This allows to keep our Winds as Vanilla as possible. First off you need a few tools: DSDT Patcher: http://www.insanelymac.com/forum/index.php?act=attach&type=post&id=38192Text Wrangler: http://pine.barebones.com/freeware/TextWrangler_3.0.dmgFirst off, you will need iasl, to de- and re- compress the dsdt.aml. - Code: Select all
cd ~/Downloads/DSDT_Patcher1.0.1e/Tools sudo cp iasl /usr/bin
now to get started. First we need to get our DSDT: - Code: Select all
sudo -s cd ~/Downloads/DSDT_Patcher1.0.1e ./DSDT\ Patcher
Just follow the instructions. It will ask for 0 for mac, 1 for Windows, etc. Click 0. When it finishes you will have a file called dsdt.aml in the DSDT_Patcher folder. Now you need to type: - Code: Select all
iasl -d dsdt.aml
This will make the file human-readable. Open it in Text Wrangler. Following are the known patches: Sleep/Hibernate on Lid close: To enable lid0 add PNLF and your _OSI to EC (more mac less hac). - Code: Select all
Scope (\_SB) //Start display { Device (PNLF) { Name (_HID, EisaId ("APP0002")) Name (_CID, "backlight") Name (_UID, 0x0A) Name (_STA, 0x0B) } } //End Display
Scope (\_SB) { Name (PWRS, 0x00) Device (PWRB)....
....and....
Scope (_SB.PCI0.SBRG) { Device (EC) { Name (_HID, EisaId ("PNP0C09")) Name (_GPE, 0x17) Name (CTID, Zero) Name (MYEC, One) Name (CTSD, Zero) Name (\PTHR, Zero) Method (_REG, 2, NotSerialized) { If (LEqual (Arg0, 0x03)) { If (LEqual (Arg1, One)) { If (_OSI ("Windows 2009")) { Store (0x03, OSVR) } Else { If (_OSI ("Darwin")) //added { Store (0x03, OSVR) } Else { If (_OSI ("Windows 2006")) { Store (0x02, OSVR) } Else { snip... ...snap } //add another closing bracket If (LEqual (Arg0, 0x03)) { Store (Arg1, MYEC) }....
USB Device Removal error on sleep fix: Find Scope (\_GPE), and modify it to look like the below (stop before OperationRegion (_SB.PCI0.SBRG.PIX0, PCI_Config, 0×60, 0×0C)) - Code: Select all
Scope (\_GPE) { Method (_L09, 0, NotSerialized) { Notify (\_SB.PCI0.P0P2, 0×02) Notify (\_SB.PCI0.P0P2.PEGP, 0×02) Notify (\_SB.PCI0.P0P4, 0×02) Notify (\_SB.PCI0.P0P5, 0×02) Notify (\_SB.PCI0.P0P6, 0×02) Notify (\_SB.PCI0.P0P7, 0×02) Notify (\_SB.PCI0.P0P8, 0×02) Notify (\_SB.PCI0.P0P9, 0×02) }
Method (_L03, 0, NotSerialized) { Notify (\_SB.PCI0.USB0, 0×02) Notify (\_SB.PWRB, 0×02) }
Method (_L04, 0, NotSerialized) { Notify (\_SB.PCI0.USB1, 0×02) Notify (\_SB.PWRB, 0×02) }
Method (_L0C, 0, NotSerialized) { Notify (\_SB.PCI0.USB2, 0×02) Notify (\_SB.PWRB, 0×02) }
Method (_L0E, 0, NotSerialized) { Notify (\_SB.PCI0.USB3, 0×02) Notify (\_SB.PWRB, 0×02) }
Method (_L0D, 0, NotSerialized) { Notify (\_SB.PCI0.EHCI, 0×02) }
Method (_L05, 0, NotSerialized) { Notify (\_SB.PCI0.MC97, 0×02) }
Method (_L0B, 0, NotSerialized) { Notify (\_SB.PCI0.P0P1, 0×02) } } } Visual Fix – Built-In Audio: Find Device (IDE0), and add the following ABOVE it - Code: Select all
Device (HDEF) { Name (_ADR, 0×001B0000)
Method (_DSM, 4, NotSerialized) { Store (Package (0×0E)
{
“codec-id”, Buffer (0×04) { 0×88, 0×08, 0xEC, 0×10 },
“layout-id”, Buffer (0×04) { 0×0C, 0×00, 0×00, 0×00 },
“AAPL,slot-name”, Buffer (0×08) { “Built-in” },
“device_type”, Buffer (0×06) { “Audio” },
“name”, Buffer (0×21) { “High Definition Audio Controller” },
“model”, Buffer (0×1E) { “Realtek ALC888 HDA Controller” },
“PinConfigurations”, Buffer (0×38) { /* 0000 */ 0xF0, 0×11, 0×11, 0×41, 0×1F, 0×40, 0×21, 0×01, /* 0008 */ 0xF0, 0×11, 0×11, 0×41, 0xF0, 0×11, 0×11, 0×41, /* 0010 */ 0xF0, 0×11, 0×11, 0×41, 0×20, 0×98, 0xA1, 0×01, /* 0018 */ 0×2F, 0×09, 0xA3, 0×99, 0xF0, 0×11, 0×11, 0×41, /* 0020 */ 0×10, 0×01, 0×13, 0×99, 0xF0, 0×11, 0×11, 0×41, /* 0028 */ 0×0D, 0×92, 0×15, 0×40, 0xF0, 0×11, 0×11, 0×41, /* 0030 */ 0xF0, 0×11, 0×11, 0×11, 0×41 }, }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } Visual Fix – Ethernet PCI cardFind Device (LAN0), and modify it to look like the below (stop before Device (P0P5)) - Code: Select all
Device (LAN0) { Name (_ADR, Zero) Method (_DSM, 4, NotSerialized) { Store (Package (0×0A) { “AAPL,slot-name”, Buffer (0×09) { “Built-in” },
“model”, Buffer (0×38) { “Realtek RTL8101E/RTL8102E PCIe Fast Ethernet controller” },
“built-in”, Buffer (One) { 0×01 },
“name”, Buffer (0×14) { “Ethernet controller” },
“device_type”, Buffer (0×09) { “Ethernet” } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } } Visual Fix – WiFi PCI CardFind Device (P0P5), and modify it to look like the below (stop before Device (P0P6)) - Code: Select all
Device (P0P5) { Name (_ADR, 0×001C0001) Method (_PRW, 0, NotSerialized) { Return (GPRW (0×09, 0×04)) }
Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR05) }
Return (PR05) }
Device (ARPT) { Name (_ADR, 0xFFFF) Method (_DSM, 4, NotSerialized) { Store (Package (0×08) { “AAPL,slot-name”, Buffer (0×0B) { “Built-In” },
“name”, Buffer (0×13) { “Network controller” },
“model”, Buffer (0×2B) { “Broadcom Corporation BCM4312 802.11 a/b/g” },
“device_type”, Buffer (0×08) { “AirPort” } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } } Visual Fix – GFX PCI CardFind Device (IGD) and modify it to look like the below (stop before Method (_DOS, 1, NotSerialized)) - Code: Select all
Device (IGD) { Name (_ADR, 0×00020000) Method (_DSM, 4, NotSerialized) { Store (Package (0×0C) { “AAPL,slot-name”, Buffer (0×09) { “Built-in” },
“AAPL,HasPanel”, Buffer (0×04) { 0×01, 0×00, 0×00, 0×00 },
“device_type”, Buffer (0×08) { “Display” },
“model”, Buffer (0×34) { “Intel 945GME Express Integrated Graphics Controller” },
“name”, Buffer (0×1A) { “VGA compatible controller” },
“Built in”, Buffer (One) { 0×01 } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } Compile Error: DTGP fixFind Method (_WAK, 1, NotSerialized) and add the following above: - Code: Select all
Method (DTGP, 5, NotSerialized) { If (LEqual (Arg0, Buffer (0×10) { /* 0000 */ 0xC6, 0xB7, 0xB5, 0xA0, 0×18, 0×13, 0×1C, 0×44, /* 0008 */ 0xB0, 0xC9, 0xFE, 0×69, 0×5E, 0xAF, 0×94, 0×9B })) { If (LEqual (Arg1, One)) { If (LEqual (Arg2, Zero)) { Store (Buffer (One) { 0×03 }, Arg4) Return (One) }
If (LEqual (Arg2, One)) { Return (One) } } }
Return (Zero) }
After performing the patches to the dsdt you will want to go back to the terminal: - Code: Select all
sudo -s cd ~/Downloads/DSDT_Patcher1.0.1e iasl dsdt.dsl
Now you just need to copy the new dsdt.aml file into the /Extra folder of Chameleon 2 and reboot.
Last edited by Dalton63841 on Fri Oct 23, 2009 7:00 pm, edited 1 time in total.
|
Dalton has been banned from the forum, due to multiple issues including plagiarism and scamming. This is indefinite, and he won't be around to solve these issues.
The Admin Team.
|
|