valv Posted April 10, 2010 Share Posted April 10, 2010 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) fakesmc.kext.zipCredits: Netkas & Anv VoodooBattery.kext.zipCredits: SuperHai VoodooPS2Controller.kext.zipCredits: VoodooTeam AppleACPIPS2Nub.kext.zipCredits: VoodooTeam VoodooHDA.zipCredits: VoodooTeam & slice LegacyHdx18.kext.zip One's all kexts uncompressed to the same folder, we move to the real work Link to comment Share on other sites More sharing options...
valv Posted April 11, 2010 Author Share Posted April 11, 2010 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 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 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 Pay attention to the SMexternalclock key. U can always keep 266 as value (280 is purely for OC'ing intentions ) hope this helps Link to comment Share on other sites More sharing options...
valv Posted April 12, 2010 Author Share Posted April 12, 2010 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, 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 ... [color="#708090"]line-10038[/color] Store (Zero, Index (DerefOf (Index (Local0, 0x02)), Local2)) [color="#708090"]line-10039[/color] Sleep (0x96) [color="#708090"]line-10040[/color] Release (^^PCI0.LPC.EC0.MUT1) [color="#708090"]line-10041[/color][color="#FF0000"] Return (Local0)[/color] [color="#708090"]line-10042[/color] Store (Package (0x02) [color="#708090"]line-10043[/color] { ... I know this seems complicated at first sight, but I can help u fix yours if u cannot find out by your self. Link to comment Share on other sites More sharing options...
valv Posted April 13, 2010 Author Share Posted April 13, 2010 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 [color="#006400"][b] 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) }[/b][/color] 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 we need to add two IRQs to the ones already there. It has to end up like below Device (HPET) { Name (_HID, EisaId ("PNP0103")) Name (BUF0, ResourceTemplate () { IRQNoFlags () {0} IRQNoFlags () {8} [color="#006400"][b] IRQNoFlags () {11} IRQNoFlags () {15}[/b][/color] 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. 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 ([color="#006400"][b]BUF0[/b][/color]) } } } PIC/IPIC After locating the PIC Device, remove these lines (from the end of that section) [color="#006400"][b] IRQNoFlags () {2}[/b][/color] TIMR On this one, we also remove IRQ [b][color="#006400"] IRQNoFlags () {0}[/color][/b] USB, aka. Sleep Into the Scope (_GPE) edit Method _L03, _L04 and _L0C by adding Notify (\_SB.PWRB, 0x02) to each, like this Method (_L03, 0, NotSerialized) { Notify (\_SB.PCI0.UHC1, 0x02) [color="#006400"][b]Notify (\_SB.PWRB, 0x02)[/b][/color] } Method (_L04, 0, NotSerialized) { Notify (\_SB.PCI0.UHC2, 0x02) [color="#006400"][b]Notify (\_SB.PWRB, 0x02)[/b][/color] } Method (_L0C, 0, NotSerialized) { Notify (\_SB.PCI0.UHC3, 0x02) [color="#006400"][b]Notify (\_SB.PWRB, 0x02)[/b][/color] } Now we move on to UHC devices. there we inject device-ids to make the system think we use compatible hardware Device (UHC0) { Name (_ADR, 0x001D0000) [b][color="#006400"] Method (_DSM, 4, NotSerialized) { Store (Package (0x02) { "device-id", Buffer (0x04) { [color="#0000FF"]0x34, 0x3A, 0x00, 0x00[/color] } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0)[/color][/b] } } 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 Device (UHC5) { Name (_ADR, [color="#FF0000"]0x001A0002[/color]) 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 [color="#006400"][b]Method (_DSM, 4, NotSerialized) { Store (Package (0x11) { "device-id", Buffer (0x04) { [color="#0000FF"]0x36, 0x28, 0x00, 0x00[/color] }, "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) }[/color][/b] 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 [color="#006400"][b]Method (_L1A, 0, NotSerialized) { Notify (\_SB.PCI0.EXP5.J380, Zero) Notify (\_SB.PWRB, 0x02) }[/color][/b] After this, we jump into Device (J380) and add the code in green right after the address line, like this Device (J380) { Name (_ADR, Zero) [color="#006400"][b]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) }[/color][/b] 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 (_PSW, 1, NotSerialized) { If (LGreaterEqual (MCHD, 0x04)) { Store (Arg0, LAWK) } } [color="#006400"][b] 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) } [/b][/color] } } 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 Device (PXSX) { Name (_ADR, Zero) OperationRegion ([color="#0000FF"][b]RTLD[/b][/color], 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 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. 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 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) [color="#006400"][b]Notify (SLPB, 0x80)[/b][/color] } 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 ThermalZone (TZ01) { Method (_HOT, 0, Serialized) { [color="#FF0000"][b] If (LGreaterEqual (OSYS, 0x07D6)) {[/b][/color] If (LEqual (\_SB.PCI0.LPC.EC0.QUAD, One)) { Return (0x0E94) } Else { If (LEqual (TJMX, 0x64)) { Return (0x0EC6) } } If (LEqual (TJMX, 0x55)) { Return (0x0E30) } [b][color="#FF0000"]}[/color][/b] Return (Zero) } Method (_CRT, 0, Serialized) { [b][color="#FF0000"] If (LLess (OSYS, 0x07D6)) {[/color][/b] If (LEqual (\_SB.PCI0.LPC.EC0.QUAD, One)) { Return (0x0E94) } Else { If (LEqual (TJMX, 0x64)) { Return (0x0EC6) } } If (LEqual (TJMX, 0x55)) { Return (0x0E30) } [b][color="#FF0000"]}[/color][/b] 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 ... Name (TPOS, Zero) Method (_INI, 0, NotSerialized) { [b][color="#FF0000"] If (CondRefOf (_OSI, Local0)) { If (_OSI ("Linux")) { Store (0x03E8, OSYS) Store (0x80, TPOS) } Else {[/color][/b] Store (0x07D1, OSYS) [b][color="#FF0000"] Store (0x08, TPOS) } If (_OSI ("Windows 2001 SP2")) { Store (0x07D2, OSYS) Store (0x11, TPOS) } If (_OSI ("Windows 2006")) { Store (0x07D6, OSYS) [/color][/b] Store (0x40, TPOS) } [b][color="#FF0000"] If (_OSI ("Windows 2009")) { Store (0x07D9, OSYS) } } Else { Store (0x07D0, OSYS) Store (0x04, TPOS) } }[/color][/b] OperationRegion (HBUS, PCI_Config, 0x40, 0xC0) Field (HBUS, DWordAcc, NoLock, Preserve) { ... Our code should now look like this ... Name (TPOS, Zero) Method (_INI, 0, NotSerialized) { Store (0x07D[b][color="#FF0000"]1[/color][/b], 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 Device (ACAD) { Name (_HID, "ACPI0003") [b][color="#006400"]Name (_PRW, Package (0x02) { 0x18, 0x03 })[/color][/b] 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 Device (LPC) { Name (_ADR, 0x001F0000) [b][color="#006400"] 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) } [/color][/b] 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: Device (SBUS) { Name (_ADR, 0x001F0003) [color="#006400"][b] 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) }[/b][/color] OperationRegion (SMBP, PCI_Config, 0x20, 0xC0) ... nVidia GeForce 9600M GT Goto Device (VGA) and straight above Device (CRT) add this Method Method (_DOD, 0, NotSerialized) { Return (Package (0x03) { 0x00010100, 0x00010118, 0x00010121 }) } [color="#006400"][b] 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) }[/b][/color] 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 Link to comment Share on other sites More sharing options...
valv Posted April 13, 2010 Author Share Posted April 13, 2010 Reserved for topic Link to comment Share on other sites More sharing options...
RitoN Posted April 13, 2010 Share Posted April 13, 2010 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. Link to comment Share on other sites More sharing options...
valv Posted April 13, 2010 Author Share Posted April 13, 2010 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 . Link to comment Share on other sites More sharing options...
RitoN Posted April 18, 2010 Share Posted April 18, 2010 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. Link to comment Share on other sites More sharing options...
dlpass2 Posted April 19, 2010 Share Posted April 19, 2010 Valv, Can this be done with the retail DVD? Link to comment Share on other sites More sharing options...
valv Posted April 19, 2010 Author Share Posted April 19, 2010 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 Link to comment Share on other sites More sharing options...
pepeducks Posted April 26, 2010 Share Posted April 26, 2010 Can you share your DSDT. I tried to patch the volume control and sleep. But it's not work Thank you pepe Link to comment Share on other sites More sharing options...
valv Posted April 28, 2010 Author Share Posted April 28, 2010 This worked since I jumped into Vanilla release. I did nothing in DSDT related to this. Link to comment Share on other sites More sharing options...
hdx18 Posted May 1, 2010 Share Posted May 1, 2010 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! Link to comment Share on other sites More sharing options...
manmal Posted May 2, 2010 Share Posted May 2, 2010 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 Link to comment Share on other sites More sharing options...
valv Posted May 2, 2010 Author Share Posted May 2, 2010 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 Device (ACAD) { Name (_HID, "ACPI0003") [color="#8B0000"] Name (_PRW, Package (0x02) { 0x18, 0x03 })[/color] don't rename your device though, unless you know what u're doing. Link to comment Share on other sites More sharing options...
hdx18 Posted May 2, 2010 Share Posted May 2, 2010 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 Link to comment Share on other sites More sharing options...
valv Posted May 2, 2010 Author Share Posted May 2, 2010 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. Link to comment Share on other sites More sharing options...
valv Posted May 2, 2010 Author Share Posted May 2, 2010 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 Link to comment Share on other sites More sharing options...
manmal Posted May 3, 2010 Share Posted May 3, 2010 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 Device (ADP1) { Name (_HID, "ACPI0003") [color="#8B0000"] Name (_PRW, Package (0x02) { 0x18, 0x03 })[/color] don't rename your device though, unless you know what u're doing. Link to comment Share on other sites More sharing options...
valv Posted May 3, 2010 Author Share Posted May 3, 2010 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 Link to comment Share on other sites More sharing options...
manmal Posted May 3, 2010 Share Posted May 3, 2010 Hi valv, thanks for your reply. 2 questions : 1) do you have native speedstep ? If yes , why do you have dropssdt=no in your boot.plist ? 2) is your SMexternalclock=280 correct in your smbios.plist? Isn't it 266? Thanks ! Mal Link to comment Share on other sites More sharing options...
pepeducks Posted May 3, 2010 Share Posted May 3, 2010 First, Thank you so much , VALV Your technic is cool. Now my HDX is almost perfect for snow leopard. Now it can sleep and wake. ( I removed Nullcpupowermanagement.kext) The first time that it wake up. Bluetooth is working perfect. But after that when it sleep and wake. The bluetooth isn't working, and the wifi symbol ( on the top right) turn to red. It must restart to make the bluetooth work. Did you have this problem? How to fix it? Thank you, and sorry about my english. pepe Link to comment Share on other sites More sharing options...
valv Posted May 3, 2010 Author Share Posted May 3, 2010 Hi valv,thanks for your reply. 2 questions : 1) do you have native speedstep ? If yes , why do you have dropssdt=no in your boot.plist ? 2) is your SMexternalclock=280 correct in your smbios.plist? Isn't it 266? Thanks ! Mal hi Mal, to be short: 1) yes, speed-step is working fine. regarding DropSSDT key, I think u misunderstanding how it works. In fact DropSSDT=No means u load these tables. It depends though, either u load 'em from Bios or from HDD. please play with these values a little, it'll help u understand. If u still confused, give feedback into the right topic. 2) It may seem like I was mistyping the external clock value, but I ensure this and many more will be cleared later on the guide btw: why quote my post like that. no need for it guys. please think about people suffering to follow what we accomplish here . Sorry, maybe u was trying to show me something could u please edit your post . thanx Greetz, The first time that it wake up. Bluetooth is working perfect.But after that when it sleep and wake. The bluetooth isn't working, and the wifi symbol ( on the top right) turn to red. It must restart to make the bluetooth work. Did you have this problem? How to fix it? Sorry, I don't have Bluetooth actually (was planning to buy an usb dongle though). But don't worry I wrote this one on my ToDo list. we'll get to it soon. Greetz, Link to comment Share on other sites More sharing options...
pepeducks Posted May 3, 2010 Share Posted May 3, 2010 hi Mal,to be short: 1) yes, speed-step is working fine. regarding DropSSDT key, I think u misunderstanding how it works. In fact DropSSDT=No means u load these tables. It depends though, either u load 'em from Bios or from HDD. please play with these values a little, it'll help u understand. If u still confused, give feedback into the right topic. 2) It may seem like I was mistyping the external clock value, but I ensure this and many more will be cleared later on the guide btw: why quote my post like that. no need for it guys. please think about people suffering to follow what we accomplish here. sorry for being harsh, maybe u was trying to show me something. could u please edit your post. thanx Greetz, Sorry, I don't have Bluetooth actually (was planning to buy an usb dongle though). But don't worry I wrote this one on my ToDo list. we'll get to it soon. Greetz, Why you don't buy the internal bluetooth? It'll be better. http://www.impactcomputers.com/483113-001.html maybe you can find it on ebay for cheaper. Thank you Link to comment Share on other sites More sharing options...
valv Posted May 3, 2010 Author Share Posted May 3, 2010 Why you don't buy the internal bluetooth?It'll be better. http://www.impactcomputers.com/483113-001.html maybe you can find it on ebay for cheaper. Thank you It's not a matter of bucks (it remains affordable), but people over on hphdx scared me a little when it comes to antennas workout.. thank u anyway. Link to comment Share on other sites More sharing options...
Recommended Posts