Jump to content

[GUIDE]: The MacBookPro18 Project


  • Please log in to reply
498 replies to this topic

#1
valv

valv

    InsanelyMac Architect

  • Members
  • PipPipPipPipPipPipPip
  • 910 posts
  • Gender:Male
  • Location:Unrevealed Area
  • Interests:Operating Systems<br />Networking<br />Security
Hi there,
As promised, this here is what I've accomplished to get a vanilla Snow Leopard installation flawlessly working on my HDX18t 1200CTO.

First,
things working so far:
+ Graphics: (DSDT)
+ Sound: (VoodooHDA)
+ Keyboard/Trackpad: (VoodooPS2)
+ Speed-Step: (SSDTs)
+ Wifi: (Usb)
+ Ahci: (Legacy Kext)
+ Sleep/Wake: (DSDT)
+ Firewire: (DSDT) - not tested though
+ Sudden Motion Sensor: (DSDT) - virtualized
+ Ambient Light Sensor: (DSDT) - virtualized
+ Battery: (VoodooBattery)
+ Network: (DSDT)
+ everything I couldn't remember by now

Things not working yet:
+ Integrated Wifi 5100
+ Infrared controller
+ Fingerprint Reader
+ Integrated Card-reader

Prerequisites
  • An already in place installation
  • One free partition for your Vanilla Snow Leopard Installation
  • An Image of Vanilla Snow Leopard install DVD
  • Get a copy of UInstaller from pcwiz web site (we'll get to this later on)
btw, this section will be later replaced with an appropriate way to setup directly from DVD

Ready?
let's get started then

Kernel Extensions

Next, download those kexts from here and put them on the same folder (I call mine SnowXT, and put it on Desktop)

Attached File  fakesmc.kext.zip   32.9KB   327 downloadsCredits: Netkas & Anv

Attached File  VoodooBattery.kext.zip   40.8KB   412 downloadsCredits: SuperHai

Attached File  VoodooPS2Controller.kext.zip   138.11KB   491 downloadsCredits: VoodooTeam

Attached File  AppleACPIPS2Nub.kext.zip   19.25KB   362 downloadsCredits: VoodooTeam

Attached File  VoodooHDA.zip   159.09KB   336 downloadsCredits: VoodooTeam & slice

Attached File  LegacyHdx18.kext.zip   3.42KB   418 downloads

One's all kexts uncompressed to the same folder, we move to the real work

#2
valv

valv

    InsanelyMac Architect

  • Members
  • PipPipPipPipPipPipPip
  • 910 posts
  • Gender:Male
  • Location:Unrevealed Area
  • Interests:Operating Systems<br />Networking<br />Security
DSDT Extraction

The most important part of ACPI hacking is to edit your own Tables. DO NOT use one's Tables (or originals from mac) just because they worked fine on another machine. this could harm yours. By the way you cannot held me for responsible if those hacks am posting here break ur machine. Be concious what u'r editing and ask if u don't understand (it's not a shame, we all learning ;) ).

That's said, let's get our own ACPI Tables dumped.
You can accomplish this in three ways using:

The Linux Geeky Way:
(if u don't have one installed, use an ubuntu live-cd or whatever)
Next I'll suppose u chosen Ubuntu.

One's on linux, simply type this on terminal
sudo -s
apt-get install acpidump


Go uncompress the archive, and set it up (double click and follow the installation wizard).
When u'r done, on the packages manager search for "iasl" and install it
apt-get install iasl.

When done, launch a terminal and type this
dmesg | grep ACPI

u will get all your ACPI Tables adresses (we need these as we'll be dumping the tables from).
For now, interesting tables are those: SSDT(CpuPm, Cpu0IST, CpuApIST, Cpu0CST & CpuApCST), DSDT, FACP
Always on terminal, locate the first & second hex values on each line (where u see those tables) and type this
acpidump -a 0xFirstValue -l 0xSecondValue > CpuPm
acpidump -a 0xFirstValue -l 0xSecondValue > Cpu0IST
acpidump -a 0xFirstValue -l 0xSecondValue > CpuApIST
...


this gives u one of your SSDT files, but in bin format (in home folder). So let's decompile these:
iasl -d CpuPm
iasl -d Cpu0IST
iasl -d CpuApIST
...


Do this for all the tables u wishing to extract and copy them to usb/partition or elsewhere u can access 'em from OsX after reboot.

The Mont Everest:
Go get Everest Ultimate (unregistered) edition and install/unzip on windows
Launch it and click on the status bar (rights). from there u will get the possibility to dump your Tables
Attached File  Screen_shot_2010_06_24_at_12.44.40.png   338.88KB   432 downloadsAttached File  Screen_shot_2010_06_24_at_12.44.58.png   217.61KB   515 downloads

The Consolation Winner:
Download iasl build for windows
Open a terminal, and type: iasl -g Now u have a file called DSDT_XXX-XX.dsl and few .BIN files.
u'll only need the .dsl one: this is your decompiled DSDT file u'll be later editing. keep it in a safe place till then.

The ACPI-Boot Loader

Go get it from this topic. Better to stick with latest version.

my boot.plist
Attached File  bootplist.png   73.85KB   1070 downloads
these keys are available only when using the above bootloader.
Edit: pay attention to the value of SMBIOSdefaults key. This have to be changed to Yes.
Only then u can get rid of CPUInjector.kext from the above list. After reboot, your processor's model will be handled directly by the boot-loader.

my smbios.plist
Attached File  smbios.png   53.05KB   703 downloads
Pay attention to the SMexternalclock key. U can always keep 266 as value (280 is purely for OC'ing intentions :()
hope this helps

#3
valv

valv

    InsanelyMac Architect

  • Members
  • PipPipPipPipPipPipPip
  • 910 posts
  • Gender:Male
  • Location:Unrevealed Area
  • Interests:Operating Systems<br />Networking<br />Security
DSDT Fix

Ok, now that we all have DSDT extracted, go get this nifty editor from www.osx86.es and set it up. when done open your DSDT file with it, and let's start editing it.

As is this file would compile successfully, but to get rid of every warning/remark, we have to fix our file like this:

1) Type _T_0 on the search field and T_0 on the Replace field like showing here,
Attached File  replace.png   24.93KB   134 downloads
then click on Replace

2) Do a search for the string ThermalZone, and add this at the end of the _HOT Method

Return (Zero)

u'll end up with this

ThermalZone (TZ01)
{
Method (_HOT, 0, Serialized)
{
If (LEqual (\_SB.PCI0.LPCB.EC.QUAD, One))
{
Return (0x0E94)
}
Else
{
If (LEqual (TJMX, 0x64))
{
Return (0x0EC6)
}
}

If (LEqual (TJMX, 0x55))
{
Return (0x0E30)
}

Return (Zero)
}

Method (_CRT, 0, Serialized)

Now do the same for the _CRT and the _PSV Methods.

4) Next find Device (PRID) located into Device (SAT0) & Device (SAT1) Sections and add the same line at the end of the _GTM Method.

5) Below the PRID Device, u'll find these devices (P_D0), (P_D1), (SECD), (S_D0) and (S_D1).
Do locate their _GTM or _GTF Method and do the same as above.

6) For each line 806 & 820,
replace Name (BCL1, Package (0x0D)
with Name (BCL1, Package (0x0B)

7) the last one is special, delete the line in red to get rid of the last warning
line-10038                Store (Zero, Index (DerefOf (Index (Local0, 0x02)), Local2))
line-10039 Sleep (0x96)
line-10040 Release (^^PCI0.LPC.EC0.MUT1)
line-10041 Return (Local0)
line-10042 Store (Package (0x02)
line-10043 {
...
_linenums:0'>...line-10038 Store (Zero, Index (DerefOf (Index (Local0, 0x02)), Local2))line-10039 Sleep (0x96)line-10040 Release (^^PCI0.LPC.EC0.MUT1)line-10041 Return (Local0)line-10042 Store (Package (0x02)line-10043 {...
I know this seems complicated at first sight, but I can help u fix yours if u cannot find out by your self.

#4
valv

valv

    InsanelyMac Architect

  • Members
  • PipPipPipPipPipPipPip
  • 910 posts
  • Gender:Male
  • Location:Unrevealed Area
  • Interests:Operating Systems<br />Networking<br />Security
DSDT Hacks


DTGP

this one is one of the most important as it'll be needed to get later hacks (usb, sleep, sound, graphics..) working.
First search for the string _S0, something like this will show up on the editor
Name (_S0, Package (0x04)    {        Zero,         Zero,         Zero,         Zero    })    Name (_S3, Package (0x04)    {...
then copy the code in green and paste it straight above the _S0 section and/or after the _WAK Method, u'll end up with something like this
    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)
}


Name (_S0, Package (0x04)
{
Zero,
Zero,
Zero,
Zero
})
Name (_S3, Package (0x04)
{
... _linenums:0'><strong class='bbc'> 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) }</strong> Name (_S0, Package (0x04) { Zero, Zero, Zero, Zero }) Name (_S3, Package (0x04) {...

HPET

Now we'll be locating the HPET section using the editor capability as shown below
Attached File  locate.png   23.49KB   88 downloads
we need to add two IRQs to the ones already there. It has to end up like below
                      IRQNoFlags ()
{11}
IRQNoFlags ()
{15}

Memory32Fixed (ReadOnly,
0xFED00000, // Address Base
0x00000400, // Address Length
_Y10)
})
_linenums:0'>Device (HPET) { Name (_HID, EisaId ("PNP0103")) Name (BUF0, ResourceTemplate () { IRQNoFlags () {0} IRQNoFlags () {8}<strong class='bbc'> IRQNoFlags () {11} IRQNoFlags () {15}</strong> Memory32Fixed (ReadOnly, 0xFED00000, // Address Base 0x00000400, // Address Length _Y10) })

RTC - Snow CMOS Fix

Locate the RTC device, then modify BUF1 into BUF0. This way u don't have to mess with IRQs.
BUF0)
}
}
}
_linenums:0'>Device (RTC) { Name (_HID, EisaId ("PNP0B00")) Name (BUF0, ResourceTemplate () { IO (Decode16, 0x0070, // Range Minimum 0x0070, // Range Maximum 0x01, // Alignment 0x08, // Length ) }) Name (BUF1, ResourceTemplate () { IO (Decode16, 0x0070, // Range Minimum 0x0070, // Range Maximum 0x01, // Alignment 0x08, // Length ) IRQNoFlags () {8} }) Method (_CRS, 0, Serialized) { If (LEqual (HPTS, One)) { Return (BUF0) } Else { Return (<strong class='bbc'>BUF0</strong>) } } }

PIC/IPIC

After locating the PIC Device, remove these lines (from the end of that section)
                        IRQNoFlags ()
{2}
_linenums:0'><strong class='bbc'> IRQNoFlags () {2}</strong>

TIMR

On this one, we also remove IRQ
                        IRQNoFlags ()
{0}
_linenums:0'><strong class='bbc'> IRQNoFlags () {0}</strong>

USB, aka. Sleep

Into the Scope (_GPE) edit Method _L03, _L04 and _L0C by adding Notify (\_SB.PWRB, 0x02) to each, like this
Notify (\_SB.PWRB, 0x02)
}

Method (_L04, 0, NotSerialized)
{
Notify (\_SB.PCI0.UHC2, 0x02)
Notify (\_SB.PWRB, 0x02)
}

Method (_L0C, 0, NotSerialized)
{
Notify (\_SB.PCI0.UHC3, 0x02)
Notify (\_SB.PWRB, 0x02)
}
_linenums:0'>Method (_L03, 0, NotSerialized) { Notify (\_SB.PCI0.UHC1, 0x02) <strong class='bbc'>Notify (\_SB.PWRB, 0x02)</strong> } Method (_L04, 0, NotSerialized) { Notify (\_SB.PCI0.UHC2, 0x02) <strong class='bbc'>Notify (\_SB.PWRB, 0x02)</strong> } Method (_L0C, 0, NotSerialized) { Notify (\_SB.PCI0.UHC3, 0x02) <strong class='bbc'>Notify (\_SB.PWRB, 0x02)</strong> }
Now we move on to UHC devices. there we inject device-ids to make the system think we use compatible hardware
                Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x34, 0x3A, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)

}
} _linenums:0'>Device (UHC0) { Name (_ADR, 0x001D0000)<strong class='bbc'> Method (_DSM, 4, NotSerialized) { Store (Package (0x02) { "device-id", Buffer (0x04) { 0x34, 0x3A, 0x00, 0x00 } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0)</strong> } }
Done? not yet. we have to do the same thing for the remaining UHC devices.
Pay attention here, for devices UHC1 & UHC2 the _DSM method should be added into the end of the device sections and before the last bracket.
Thus, we keep the green code above (_DSM method) and change the blue string with these:
  • UHC1 --> 0x35, 0x3A, 0x00, 0x00
  • UHC2 --> 0x36, 0x3A, 0x00, 0x00
  • UHC3 --> 0x37, 0x3A, 0x00, 0x00
  • UHC4 --> 0x38, 0x3A, 0x00, 0x00
  • UHC5 --> 0x39, 0x3A, 0x00, 0x00
The last one is the trickiest (thanks to hdx18 for making me remember this one). we have to change the Address of that device, thus the device-id and the Address concord. For this, we modify the string in red
0x001A0002)
Method (_DSM, 4, NotSerialized)
{ _linenums:0'>Device (UHC5){Name (_ADR, 0x001A0002)Method (_DSM, 4, NotSerialized){
with this one 0x001D0003
Next comes the turn of EHC devices. We mod those two in a slightly different way.
For EHC1 we'll be adding the code below, at the end of the device and before the last bracket
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x11)
{
"device-id",
Buffer (0x04)
{
0x36, 0x28, 0x00, 0x00
},

"AAPL,clock-id",
Buffer (One)
{
0x0A
},

"built-in",
Buffer (One)
{
0x00
},

"device_type",
Buffer (0x05)
{
"EHCI"
},

"AAPL,current-available",
0x04B0,
"AAPL,current-extra",
0x02BC,
"AAPL,current-in-sleep",
0x03E8,
"AAPL,device-internal",
0x10,
Buffer (One)
{
0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
_linenums:0'><strong class='bbc'>Method (_DSM, 4, NotSerialized) { Store (Package (0x11) { "device-id", Buffer (0x04) { 0x36, 0x28, 0x00, 0x00 }, "AAPL,clock-id", Buffer (One) { 0x0A }, "built-in", Buffer (One) { 0x00 }, "device_type", Buffer (0x05) { "EHCI" }, "AAPL,current-available", 0x04B0, "AAPL,current-extra", 0x02BC, "AAPL,current-in-sleep", 0x03E8, "AAPL,device-internal", 0x10, Buffer (One) { 0x00 } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) }</strong>
For EHC2, we place the same code in green (from above) at its end, but we modify the string in blue to read 0x3A, 0x28, 0x00, 0x00


Firewire

Now that we understood how our DSDT is structured, we go back into Scope (_GPE), and right after the _L0C method, we add the code below
Method (_L1A, 0, NotSerialized)
{
Notify (\_SB.PCI0.EXP5.J380, Zero)
Notify (\_SB.PWRB, 0x02)
}
_linenums:0'><strong class='bbc'>Method (_L1A, 0, NotSerialized) { Notify (\_SB.PCI0.EXP5.J380, Zero) Notify (\_SB.PWRB, 0x02) }</strong>
After this, we jump into Device (J380) and add the code in green right after the address line, like this
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x0A)
{
"fwhub",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
},

"AAPL,slot-name",
Buffer (0x0F)
{
"PCI Slot@6,0,0"
},

"built-in",
Buffer (One)
{
0x01
},

"device_type",
Buffer (0x13)
{
"IEEE 1394 Open HCI"
},

"name",
Buffer (0x11)
{
"JMicron FireWire"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}


OperationRegion (PCFG, PCI_Config, Zero, 0xFF) _linenums:0'>Device (J380) { Name (_ADR, Zero) <strong class='bbc'>Method (_DSM, 4, NotSerialized) { Store (Package (0x0A) { "fwhub", Buffer (0x04) { 0x00, 0x00, 0x00, 0x00 }, "AAPL,slot-name", Buffer (0x0F) { "PCI Slot@6,0,0" }, "built-in", Buffer (One) { 0x01 }, "device_type", Buffer (0x13) { "IEEE 1394 Open HCI" }, "name", Buffer (0x11) { "JMicron FireWire" } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) }</strong> OperationRegion (PCFG, PCI_Config, Zero, 0xFF)

Ethernet

This hack can help us get rid of an other kext. Reload your DSDTable and search for Device (EXP4), and straight above this one there should be the famous Ethernet card section. So we inject this code at its end, like this
                   Method (_DSM, 4, NotSerialized)
{
Store (Package (0x08)
{
"AAPL,slot-name",
Buffer (0x0F)
{
"PCI Slot@3,0,0"
},

"built-in",
Buffer (One)
{
0x01
},

"device_type",
Buffer (0x09)
{
"Ethernet"
},

"name",
Buffer (0x24)
{
"Realtek RTL8111/8168B PCI-E Gigabit"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
}

Device (EXP4)
{ _linenums:0'>Method (_PSW, 1, NotSerialized) { If (LGreaterEqual (MCHD, 0x04)) { Store (Arg0, LAWK) } } <strong class='bbc'> Method (_DSM, 4, NotSerialized) { Store (Package (0x08) { "AAPL,slot-name", Buffer (0x0F) { "PCI Slot@3,0,0" }, "built-in", Buffer (One) { 0x01 }, "device_type", Buffer (0x09) { "Ethernet" }, "name", Buffer (0x24) { "Realtek RTL8111/8168B PCI-E Gigabit" } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) }</strong> } } Device (EXP4) {
Take care that the device we injecting to is named Device (PXSX). And since there is another device with the same name (more probably it is the wi-fi card), don't do a search for that one, instead search for Device (EXP4) like we said above. This way u are sure it is the good one to edit. If for any reason, your DSDTable is not the same as mine, u can differentiate those two devices by that string in blue
RTLD, PCI_Config, Zero, 0x02)
Field (PXCS, AnyAcc, NoLock, WriteAsZeros) _linenums:0'>Device (PXSX) { Name (_ADR, Zero) OperationRegion (<strong class='bbc'>RTLD</strong>, PCI_Config, Zero, 0x02) Field (PXCS, AnyAcc, NoLock, WriteAsZeros)
seems to reference a "Realtek" device. If we have not the same LAN cards look for something there that resembles to the name of the manufacturer of your card. Remove the r1000.kext or whatever it is named and reboot. To be sure it worked (when u cannot test connection), go to the "System Profiler" and tick on "PCI Cards". Once there, u should find something like the picture below
Attached File  Ethernet.png   88.31KB   313 downloads
And now up to fine tuning. bring "System Preferences" forth, go to "Network", select your Ethernet card and push "Advanced" (bottom rights). Now click on last tab "Ethernet". Once there, change Configuration to "manually", then change Speed to 1000baseT and Duplex to full-duplex keeping the MTU on Standard (1500). This way you gain about additional 30Mbs.
Attached File  Gigabytes.png   73.35KB   222 downloads
It still depends on the router speed though.


Lid-Sleep

Ok, this one here, would help us go further on our way to bed..
It is as easy as finding Device LID0 onto the DSDTable, and add the line in green like below
Notify (SLPB, 0x80)
}
Else
{
Store (One, LSTS)
}

If (IGDS)
{
Store (LSTS, LIDS)
Store (LSTS, ^^PCI0.OVGA.CLID)
}

Return (LSTS)
}
Else
{
If (IGDS)
{
Store (LIDS, ^^PCI0.OVGA.CLID)
}

Return (LIDS)
}
}
} _linenums:0'>Device (LID0) { Name (_HID, EisaId ("PNP0C0D")) Name (LSTS, Zero) Method (_LID, 0, NotSerialized) { If (ECOK) { If (LEqual (^^PCI0.LPC.EC0.ECLS, One)) { Store (Zero, LSTS) <strong class='bbc'>Notify (SLPB, 0x80)</strong> } Else { Store (One, LSTS) } If (IGDS) { Store (LSTS, LIDS) Store (LSTS, ^^PCI0.OVGA.CLID) } Return (LSTS) } Else { If (IGDS) { Store (LIDS, ^^PCI0.OVGA.CLID) } Return (LIDS) } } }

ThermalZone

Before we begin, go to the bios menu and verify that the option related to fan is "always on". It is always better safe than sorry.
Back into our DSDTable. Once positioned on the section labeled ThermalZone (TZ01), we remove those lines in red
                If (LGreaterEqual (OSYS, 0x07D6))
{

If (LEqual (\_SB.PCI0.LPC.EC0.QUAD, One))
{
Return (0x0E94)
}
Else
{
If (LEqual (TJMX, 0x64))
{
Return (0x0EC6)
}
}

If (LEqual (TJMX, 0x55))
{
Return (0x0E30)
}
}
Return (Zero)
}
Method (_CRT, 0, Serialized)
{
If (LLess (OSYS, 0x07D6))
{

If (LEqual (\_SB.PCI0.LPC.EC0.QUAD, One))
{
Return (0x0E94)
}
Else
{
If (LEqual (TJMX, 0x64))
{
Return (0x0EC6)
}
}

If (LEqual (TJMX, 0x55))
{
Return (0x0E30)
}
}
Return (Zero)
}

Method (_TMP, 0, NotSerialized)
... _linenums:0'>ThermalZone (TZ01) { Method (_HOT, 0, Serialized) {<strong class='bbc'> If (LGreaterEqual (OSYS, 0x07D6)) {</strong> If (LEqual (\_SB.PCI0.LPC.EC0.QUAD, One)) { Return (0x0E94) } Else { If (LEqual (TJMX, 0x64)) { Return (0x0EC6) } } If (LEqual (TJMX, 0x55)) { Return (0x0E30) } <strong class='bbc'>}</strong> Return (Zero) } Method (_CRT, 0, Serialized) {<strong class='bbc'> If (LLess (OSYS, 0x07D6)) {</strong> If (LEqual (\_SB.PCI0.LPC.EC0.QUAD, One)) { Return (0x0E94) } Else { If (LEqual (TJMX, 0x64)) { Return (0x0EC6) } } If (LEqual (TJMX, 0x55)) { Return (0x0E30) } <strong class='bbc'>}</strong> Return (Zero) } Method (_TMP, 0, NotSerialized) ...

Win 2006

Next we make a jump into Device (PCI0) section. On the _INI method we remove all the lines in red
                If (CondRefOf (_OSI, Local0))
{
If (_OSI ("Linux"))
{
Store (0x03E8, OSYS)
Store (0x80, TPOS)
}
Else
{

Store (0x07D1, OSYS)
Store (0x08, TPOS)
}

If (_OSI ("Windows 2001 SP2"))
{
Store (0x07D2, OSYS)
Store (0x11, TPOS)
}

If (_OSI ("Windows 2006"))
{
Store (0x07D6, OSYS)
Store (0x40, TPOS)
}

If (_OSI ("Windows 2009"))
{
Store (0x07D9, OSYS)
}
}
Else
{
Store (0x07D0, OSYS)
Store (0x04, TPOS)
}
}


OperationRegion (HBUS, PCI_Config, 0x40, 0xC0)
Field (HBUS, DWordAcc, NoLock, Preserve)
{
...
_linenums:0'>... Name (TPOS, Zero) Method (_INI, 0, NotSerialized) {<strong class='bbc'> If (CondRefOf (_OSI, Local0)) { If (_OSI ("Linux")) { Store (0x03E8, OSYS) Store (0x80, TPOS) } Else {</strong> Store (0x07D1, OSYS)<strong class='bbc'> Store (0x08, TPOS) } If (_OSI ("Windows 2001 SP2")) { Store (0x07D2, OSYS) Store (0x11, TPOS) } If (_OSI ("Windows 2006")) { Store (0x07D6, OSYS)</strong> Store (0x40, TPOS) }<strong class='bbc'> If (_OSI ("Windows 2009")) { Store (0x07D9, OSYS) } } Else { Store (0x07D0, OSYS) Store (0x04, TPOS) } }</strong> OperationRegion (HBUS, PCI_Config, 0x40, 0xC0) Field (HBUS, DWordAcc, NoLock, Preserve) { ...
Our code should now look like this
1, OSYS)
Store (0x40, TPOS)
}

OperationRegion (HBUS, PCI_Config, 0x40, 0xC0)
Field (HBUS, DWordAcc, NoLock, Preserve)
{
... _linenums:0'>... Name (TPOS, Zero) Method (_INI, 0, NotSerialized) { Store (0x07D<strong class='bbc'>1</strong>, OSYS) Store (0x40, TPOS) } OperationRegion (HBUS, PCI_Config, 0x40, 0xC0) Field (HBUS, DWordAcc, NoLock, Preserve) { ...
and we continue by altering the "1" (in red) with a "9".


Power Adapter Support

Sometimes when we take the power adapter off, ugly things may happen. We are going to remediate to that issue by making our Power adapters natively supported. Can we do this ? How ?
This one is one of the easiest hacks ever. Simply load your DSDTable and search for Device (ACAD). Once there, add those lines in green
Name (_PRW, Package (0x02)
{
0x18,
0x03
})
_linenums:0'>Device (ACAD) { Name (_HID, "ACPI0003") <strong class='bbc'>Name (_PRW, Package (0x02) { 0x18, 0x03 })</strong>
That's it.


Low Pin Count - ala Apple

Thankfully our notebooks have the LPC device that plays an crucial role in speed-stepping (mainly C-States). But oob, it is useless, because the device-id detected tells the system that this device isn't compatible, even though it could do the job. This is just a matter of ID. So let's try injecting a fake device-id into our DSDTable and see what happens. For this we search for that device (Device (LPC)). Once located, we add the _DSM method ("Device Specific Method" if u wanted to know) into the section of that device. With the help of that method, we can inject the fake ID. Pay attention though that not any ID would work. For that u'll need an ID already used by apple on one of its machines. It is better to used the closest ID to the one u have though. Mine is 2919 from intel, and looking at a machine that comes with an ICH9R (used by apple already), I can see the ID of the LPC device being 2916. So I'll be using that ID for my notebook. I add the lines in green Just like shown below
                Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x16, 0x29, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}

OperationRegion (PRR0, PCI_Config, 0x60, 0x04)
Field (PRR0, AnyAcc, NoLock, Preserve)
{ _linenums:0'>Device (LPC) { Name (_ADR, 0x001F0000)<strong class='bbc'> Method (_DSM, 4, NotSerialized) { Store (Package (0x02) { "device-id", Buffer (0x04) { 0x16, 0x29, 0x00, 0x00 } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) }</strong> OperationRegion (PRR0, PCI_Config, 0x60, 0x04) Field (PRR0, AnyAcc, NoLock, Preserve) {
Just to be sure the hack did work for me, I go with IORegEx, select the LPC device, and on the right pane, I look for the device-id and the compatible values there.


SMBus

Find the Device (SBUS) section, or by searching this address 0x001F0003, then add a new _DSM method at the beginning and straight after the _ADR name, like below:
                Method (_DSM, 4, NotSerialized)
{
Store (Package (0x08)
{
"name",
Buffer (0x0D)
{
"pci8086,3a30"
},

"device-id",
Buffer (0x04)
{
0x30, 0x3A, 0x00, 0x00
},

"subsystem-id",
Buffer (0x04)
{
0x70, 0x72, 0x00, 0x00
},

"subsystem-vendor-id",
Buffer (0x04)
{
0x86, 0x80, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}


OperationRegion (SMBP, PCI_Config, 0x20, 0xC0)
... _linenums:0'>Device (SBUS) { Name (_ADR, 0x001F0003)<strong class='bbc'> Method (_DSM, 4, NotSerialized) { Store (Package (0x08) { "name", Buffer (0x0D) { "pci8086,3a30" }, "device-id", Buffer (0x04) { 0x30, 0x3A, 0x00, 0x00 }, "subsystem-id", Buffer (0x04) { 0x70, 0x72, 0x00, 0x00 }, "subsystem-vendor-id", Buffer (0x04) { 0x86, 0x80, 0x00, 0x00 } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) }</strong> OperationRegion (SMBP, PCI_Config, 0x20, 0xC0) ...


nVidia GeForce 9600M GT

Goto Device (VGA) and straight above Device (CRT) add this Method
                    Method (_DSM, 4, NotSerialized)
{
Store (Package (0x24)
{
"AAPL,HasPanel",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},

"AAPL,Backlight-control",
Buffer (0x04)
{
0xEE, 0x01, 0x00, 0x00
},

"AAPL01,DualLink",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},

"AAPL01,EDID",
Buffer (0x80)
{
/* 0000 */ 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
/* 0008 */ 0x4C, 0xA3, 0x4A, 0x31, 0x00, 0x00, 0x00, 0x00,
/* 0010 */ 0x00, 0x12, 0x01, 0x03, 0x80, 0x29, 0x17, 0x78,
/* 0018 */ 0x0A, 0x87, 0xF5, 0x94, 0x57, 0x4F, 0x8C, 0x27,
/* 0020 */ 0x27, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
/* 0028 */ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
/* 0030 */ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x79, 0x3A,
/* 0038 */ 0x80, 0x20, 0x71, 0x38, 0x32, 0x40, 0x30, 0x20,
/* 0040 */ 0x26, 0x00, 0x98, 0xE6, 0x10, 0x00, 0x00, 0x19,
/* 0048 */ 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00,
/* 0050 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0xD2, 0x02,
/* 0058 */ 0x32, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x53,
/* 0060 */ 0x41, 0x4D, 0x53, 0x55, 0x4E, 0x47, 0x0A, 0x20,
/* 0068 */ 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
/* 0070 */ 0x00, 0x31, 0x38, 0x34, 0x48, 0x54, 0x30, 0x33,
/* 0078 */ 0x2D, 0x30, 0x30, 0x31, 0x0A, 0x20, 0x00, 0xD2
},

"AAPL,slot-name",
Buffer (0x0F)
{
"PCI Slot@1,0,0"
},

"@0,compatible",
Buffer (0x0B)
{
"NVDA,NVMac"
},

"@0,device_type",
Buffer (0x08)
{
"display"
},

"@0,name",
Buffer (0x0F)
{
"NVDA,Display-A"
},

"@1,compatible",
Buffer (0x0B)
{
"NVDA,NVMac"
},

"@1,device_type",
Buffer (0x08)
{
"display"
},

"@1,name",
Buffer (0x0F)
{
"NVDA,Display-B"
},

"NVCAP",
Buffer (0x14)
{
/* 0000 */ 0x05, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
/* 0008 */ 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0B,
/* 0010 */ 0x00, 0x00, 0x00, 0x00
},

"VRAM,totalsize",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x20
},

"NVPM",
Buffer (0x1C)
{
/* 0000 */ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0018 */ 0x00, 0x00, 0x00, 0x00
},

"device_type",
Buffer (0x0D)
{
"NVDA,GeForce"
},

"model",
Buffer (0x18)
{
"nVidia GeForce 9600M GT"
},

"rom-revision",
Buffer (0x26)
{
"nVidia GeForce 9600M GT OpenGL Engine"
},

"reg",
Buffer (0x78)
{
/* 0000 */ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x02,
/* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
/* 0028 */ 0x14, 0x00, 0x01, 0x42, 0x00, 0x00, 0x00, 0x00,
/* 0030 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0038 */ 0x00, 0x00, 0x00, 0x10, 0x1C, 0x00, 0x01, 0x02,
/* 0040 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0048 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
/* 0050 */ 0x24, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
/* 0058 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0060 */ 0x80, 0x00, 0x00, 0x00, 0x30, 0x00, 0x01, 0x02,
/* 0068 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0070 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}


Device (CRT)
{
Name (_ADR, 0x0100) _linenums:0'>Method (_DOD, 0, NotSerialized) { Return (Package (0x03) { 0x00010100, 0x00010118, 0x00010121 }) }<strong class='bbc'> Method (_DSM, 4, NotSerialized) { Store (Package (0x24) { "AAPL,HasPanel", Buffer (0x04) { 0x01, 0x00, 0x00, 0x00 }, "AAPL,Backlight-control", Buffer (0x04) { 0xEE, 0x01, 0x00, 0x00 }, "AAPL01,DualLink", Buffer (0x04) { 0x01, 0x00, 0x00, 0x00 }, "AAPL01,EDID", Buffer (0x80) { /* 0000 */ 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, /* 0008 */ 0x4C, 0xA3, 0x4A, 0x31, 0x00, 0x00, 0x00, 0x00, /* 0010 */ 0x00, 0x12, 0x01, 0x03, 0x80, 0x29, 0x17, 0x78, /* 0018 */ 0x0A, 0x87, 0xF5, 0x94, 0x57, 0x4F, 0x8C, 0x27, /* 0020 */ 0x27, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, /* 0028 */ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, /* 0030 */ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x79, 0x3A, /* 0038 */ 0x80, 0x20, 0x71, 0x38, 0x32, 0x40, 0x30, 0x20, /* 0040 */ 0x26, 0x00, 0x98, 0xE6, 0x10, 0x00, 0x00, 0x19, /* 0048 */ 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, /* 0050 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0xD2, 0x02, /* 0058 */ 0x32, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x53, /* 0060 */ 0x41, 0x4D, 0x53, 0x55, 0x4E, 0x47, 0x0A, 0x20, /* 0068 */ 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE, /* 0070 */ 0x00, 0x31, 0x38, 0x34, 0x48, 0x54, 0x30, 0x33, /* 0078 */ 0x2D, 0x30, 0x30, 0x31, 0x0A, 0x20, 0x00, 0xD2 }, "AAPL,slot-name", Buffer (0x0F) { "PCI Slot@1,0,0" }, "@0,compatible", Buffer (0x0B) { "NVDA,NVMac" }, "@0,device_type", Buffer (0x08) { "display" }, "@0,name", Buffer (0x0F) { "NVDA,Display-A" }, "@1,compatible", Buffer (0x0B) { "NVDA,NVMac" }, "@1,device_type", Buffer (0x08) { "display" }, "@1,name", Buffer (0x0F) { "NVDA,Display-B" }, "NVCAP", Buffer (0x14) { /* 0000 */ 0x05, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, /* 0008 */ 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0B, /* 0010 */ 0x00, 0x00, 0x00, 0x00 }, "VRAM,totalsize", Buffer (0x04) { 0x00, 0x00, 0x00, 0x20 }, "NVPM", Buffer (0x1C) { /* 0000 */ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0018 */ 0x00, 0x00, 0x00, 0x00 }, "device_type", Buffer (0x0D) { "NVDA,GeForce" }, "model", Buffer (0x18) { "nVidia GeForce 9600M GT" }, "rom-revision", Buffer (0x26) { "nVidia GeForce 9600M GT OpenGL Engine" }, "reg", Buffer (0x78) { /* 0000 */ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x02, /* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, /* 0028 */ 0x14, 0x00, 0x01, 0x42, 0x00, 0x00, 0x00, 0x00, /* 0030 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0038 */ 0x00, 0x00, 0x00, 0x10, 0x1C, 0x00, 0x01, 0x02, /* 0040 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0048 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, /* 0050 */ 0x24, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, /* 0058 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0060 */ 0x80, 0x00, 0x00, 0x00, 0x30, 0x00, 0x01, 0x02, /* 0068 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0070 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00 } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) }</strong> Device (CRT) { Name (_ADR, 0x0100)
When done, get rid of all the video injectors u 've been using till today. Reboot, and look what happens.
p.s.: Ensure u 're using same boot keys (video related) as mine.

more to come later :(

#5
valv

valv

    InsanelyMac Architect

  • Members
  • PipPipPipPipPipPipPip
  • 910 posts
  • Gender:Male
  • Location:Unrevealed Area
  • Interests:Operating Systems<br />Networking<br />Security
Reserved for topic

#6
RitoN

RitoN

    InsanelyMac Protégé

  • Members
  • PipPip
  • 71 posts
  • Gender:Male
  • Location:france
Hi, I've got about the same computer as you: a HDX16 X16-1050ef.
I installed successfully SL using snow OSX 3.6. But, there is a but, the screen resolution was locked, no sound and the network was strange (I did have an ip address but I was unable to join any server).

Then I tried Leo Hazard but it ended with a kernel panic. I'm now trying Leo Hazard 10.6.2 with other drivers using the informations provided in your post.

#7
valv

valv

    InsanelyMac Architect

  • Members
  • PipPipPipPipPipPipPip
  • 910 posts
  • Gender:Male
  • Location:Unrevealed Area
  • Interests:Operating Systems<br />Networking<br />Security

Hi, I've got about the same computer as you: a HDX16 X16-1050ef.
I installed successfully SL using snow OSX 3.6. But, there is a but, the screen resolution was locked, no sound and the network was strange (I did have an ip address but I was unable to join any server).

Then I tried Leo Hazard but it ended with a kernel panic. I'm now trying Leo Hazard 10.6.2 with other drivers using the informations provided in your post.


Maybe Now u can try a Vanilla setup. but first let us go step by step on this, as I don't want to talk about pre-built distributions found elsewhere (most have own topics, and even forums).
so be cool, this here is meant to people wishing to setup the closest vanilla os possible :) .

#8
RitoN

RitoN

    InsanelyMac Protégé

  • Members
  • PipPip
  • 71 posts
  • Gender:Male
  • Location:france

Maybe Now u can try a Vanilla setup. but first let us go step by step on this, as I don't want to talk about pre-built distributions found elsewhere (most have own topics, and even forums).
so be cool, this here is meant to people wishing to setup the closest vanilla os possible ;) .


I really would like to do that. But I don't have enough time. I looked at the DSDT thing a little bit and didn't understood much :-/ Maybe I'll try when I'll be less busy. Keep on giving us precious information.

#9
dlpass2

dlpass2

    InsanelyMac Protégé

  • Members
  • Pip
  • 5 posts
Valv, Can this be done with the retail DVD?

#10
valv

valv

    InsanelyMac Architect

  • Members
  • PipPipPipPipPipPipPip
  • 910 posts
  • Gender:Male
  • Location:Unrevealed Area
  • Interests:Operating Systems<br />Networking<br />Security

Valv, Can this be done with the retail DVD?


My friend, this is exactly what we're accomplishing over here, but in the mean time I am going step-by-step to help people understand how I got it all working (hdd setup with image of vanilla dvd from a pre-installed leo).
Sure, as further as we go into this, we'll be making it all working from a vanilla dvd. watch out.

Greetz

#11
pepeducks

pepeducks

    InsanelyMac Protégé

  • Just Joined
  • Pip
  • 9 posts
  • Gender:Male
  • Location:Florida USA
Can you share your DSDT.
I tried to patch the volume control and sleep. But it's not work

Thank you
pepe

#12
valv

valv

    InsanelyMac Architect

  • Members
  • PipPipPipPipPipPipPip
  • 910 posts
  • Gender:Male
  • Location:Unrevealed Area
  • Interests:Operating Systems<br />Networking<br />Security
This worked since I jumped into Vanilla release. I did nothing in DSDT related to this.

#13
hdx18

hdx18

    InsanelyMac Protégé

  • Members
  • Pip
  • 36 posts
Yeah! I can't wait to see your DSDT and SSDT files!
I already made some modifications to my DSDT, but I'm not sure about Speedstepping...
It seems a bit complicated!

Thanks a lot!

#14
manmal

manmal

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 439 posts
Hi valv,
thanks for this great topic.
As you suggested me i am replying here to hdx18 questions.
Talking about Battery, it still doesn't work properly here in my hdx18 machine and i am using the voodoobattery.kext here , as you suggested.
If you would be so nice to share your complete extra folder, it would be amazing. I really did everything i could to get it working properly without success and trying to see what's different between my and your extra folder might help me to understand the errors i am doing.
Thanks!
Mal

#15
valv

valv

    InsanelyMac Architect

  • Members
  • PipPipPipPipPipPipPip
  • 910 posts
  • Gender:Male
  • Location:Unrevealed Area
  • Interests:Operating Systems<br />Networking<br />Security

Hi valv,
thanks for this great topic.
As you suggested me i am replying here to hdx18 questions.
Talking about Battery, it still doesn't work properly here in my hdx18 machine and i am using the voodoobattery.kext here , as you suggested.
If you would be so nice to share your complete extra folder, it would be amazing. I really did everything i could to get it working properly without success and trying to see what's different between my and your extra folder might help me to understand the errors i am doing.
Thanks!
Mal

Dear Mal,
this is really weird. try editing the AC Adapter into your DSDT like this
            Name (_PRW, Package (0x02)
{
0x18,
0x03
})
_linenums:0'>Device (ACAD) { Name (_HID, "ACPI0003") Name (_PRW, Package (0x02) { 0x18, 0x03 })
don't rename your device though, unless you know what u're doing.

#16
hdx18

hdx18

    InsanelyMac Protégé

  • Members
  • Pip
  • 36 posts
Hi Valv,

First of all, thanks a lot for sharing your modifications...

I did everything you said, but I still get 1 warning and 2 remarks. I did it from scratch with an unmodified DSDT. Must I do something about it?
See compilation results:


Intel ACPI Component Architecture
ASL Optimizing Compiler version 20091214 [Dec 16 2009]
Copyright © 2000 - 2009 Intel Corporation
Supports ACPI Specification Revision 4.0

/Users/MacOSX/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl 806: Name (BCL1, Package (0x0D)
Remark 5048 - Initializer list shorter than declared package length ^

/Users/MacOSX/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl 820: Name (BCL2, Package (0x0D)
Remark 5048 - Initializer list shorter than declared package length ^

/Users/MacOSX/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl 9991: Store (Package (0x02)
Warning 1100 - Statement is unreachable ^

ASL Input: /Users/MacOSX/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl - 11443 lines, 405339 bytes, 5543 keywords
AML Output: /Users/MacOSX/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.aml - 47141 bytes, 981 named objects, 4562 executable opcodes

Compilation complete. 0 Errors, 1 Warnings, 2 Remarks, 40 Optimizations

#17
valv

valv

    InsanelyMac Architect

  • Members
  • PipPipPipPipPipPipPip
  • 910 posts
  • Gender:Male
  • Location:Unrevealed Area
  • Interests:Operating Systems<br />Networking<br />Security

Hi Valv,

First of all, thanks a lot for sharing your modifications...

I did everything you said, but I still get 1 warning and 2 remarks. I did it from scratch with an unmodified DSDT. Must I do something about it?
See compilation results:


Intel ACPI Component Architecture
ASL Optimizing Compiler version 20091214 [Dec 16 2009]
Copyright © 2000 - 2009 Intel Corporation
Supports ACPI Specification Revision 4.0

/Users/MacOSX/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl 806: Name (BCL1, Package (0x0D)
Remark 5048 - Initializer list shorter than declared package length ^

/Users/MacOSX/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl 820: Name (BCL2, Package (0x0D)
Remark 5048 - Initializer list shorter than declared package length ^

/Users/MacOSX/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl 9991: Store (Package (0x02)
Warning 1100 - Statement is unreachable ^

ASL Input: /Users/MacOSX/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl - 11443 lines, 405339 bytes, 5543 keywords
AML Output: /Users/MacOSX/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.aml - 47141 bytes, 981 named objects, 4562 executable opcodes

Compilation complete. 0 Errors, 1 Warnings, 2 Remarks, 40 Optimizations

EDIT: corrected and moved to third post
If u don't get it, or if it shows up more errors on compile, upload your file and I'll be correcting it for you.

#18
valv

valv

    InsanelyMac Architect

  • Members
  • PipPipPipPipPipPipPip
  • 910 posts
  • Gender:Male
  • Location:Unrevealed Area
  • Interests:Operating Systems<br />Networking<br />Security

Ok, I managed to make 2 corrections:
Name (BCL1, Package (0x0B)
Name (BCL2, Package (0x0B)
So there are no more remarks after changing 0X0D for 0X0B in BCL1 and BCL2 names.

But 1 warning remains:
dsdt.dsl 9991: Store (Package (0x02)
Warning 1100 - Statement is unreachable ^

And I don't know what to do with it. I used DSDT file from the last BIOS for HDX18.
The only modifications I made are those mentioned by valv, and the corrections in BCL1 and BCL2.

Any idea?



I saw you sent the first corrections while I was writing about it! ;)

I upload my DSDT.dsl file.

Thanks!

PS: Excuse me if I make errors while I write. I'm way better in French! ;)

pas de problème, corrected

#19
manmal

manmal

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 439 posts
Hi valv,
i changed it to this :

Device (ACAD)
{
Name (_HID, "ACPI0003")
Name (_PRW, Package (0x02)
{
0x18,
0x03
})


But i have the same behaviour... dunno how i could solve this.
Any clue?
Mal


Dear Mal,
this is really wired. try editing the AC Adapter into your DSDT like this

            Name (_PRW, Package (0x02)
{
0x18,
0x03
})
_linenums:0'>Device (ADP1) { Name (_HID, "ACPI0003") Name (_PRW, Package (0x02) { 0x18, 0x03 })
don't rename your device though, unless you know what u're doing.



#20
valv

valv

    InsanelyMac Architect

  • Members
  • PipPipPipPipPipPipPip
  • 910 posts
  • Gender:Male
  • Location:Unrevealed Area
  • Interests:Operating Systems<br />Networking<br />Security

Hi valv,
i changed it to this :

Device (ACAD)
{
Name (_HID, "ACPI0003")
Name (_PRW, Package (0x02)
{
0x18,
0x03
})


But i have the same behaviour... dunno how i could solve this.
Any clue?
Mal

ok, First off, make a backup of your chameleon boot file (dunno wich version you've been using)
next replace it with the one from the Anv's ACPI Loader topic (my sig). will look further into

Greetz





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy