Jump to content

DSDT Patcher


fassl
 Share

752 posts in this topic

Recommended Posts

UPDATE: Guys it looks like final 10.5.6 AppleRTC.kext doesnt panic without DSDT patch, so you probably wont need it. It paniced on new macbook and some beta 10.5.6 update though.

 

 

 

Also look up this thread: Chameleon with DSDT override function

 

@All complaining about hotter CPU's with AppleIntelCPUPowerManagement: Guys there is no need to have this kext loaded all the time, if you get hotter CPU, just remove that kext and everything is ok. Why I added this to patcher is just for security reasons on update, since i still see many people without an Disabler.kext and they just blindly update and then complain about a kernel panic during the update process. So this is just to be more secure on updating.

 

Update:

 

Version 1.0.1e

-added OSI emulation by mackerintel

-added Mute fix by mackerintel

thx for this ;)

DSDT_Patcher1.0.1e.zip

 

Most things needed to be fixed for Darwin the patcher fixes now. There may be still issues in your DSDT but since one DSDT looks very different than another this is needed to be done manually. So i think its time to release the source (yeah i know the code looks ugly but it does its job)

DSDT_Patcher_Source.zip

 

---------------

VAIO Users: pls try this patcher, i saw some Variable issues in LCD Device of VAIO DSDT, the patcher fixes this issues, maybe that will solve Internal LCD Diplay issue with QE/CI enabled. Maybe also more work is needed but actually i think we can solve your Problems in DSDT. Somebody correct me if i'm wrong. So please come here and test, thank you. I also invite more people to mess around with DSDT and come here with their findings ;)

 

Update: I made some different DSDT's but haven't yet found how to get QE/CI working on the internal display, seems more things needs to be done... Look up this thread by vaag, he got it working on his DELL, maybe you can find solution. http://forum.insanelymac.com/index.php?sho...=135184&hl=

---------------

 

 

Also, if the compiling goes wrong, it doesnt always mean the patching went wrong, some manufactorers just ship crappy DSDT's in the BIOS. You can force to compile it even if there are errors: /PATH/TO/DSDT\ Pachter -f

 

-------Original Post-----------

 

Hey there, i thought it might be better to start a new Thread for this. As you may already heard you will have Problems with the upcoming (10.5.6) Apple Update if your DSDT is messed up, and it is for sure :D.

 

Good thing is, mackerintel added DSDT override function to Chameleon: http://forum.insanelymac.com/index.php?showtopic=132757

 

What does that mean? Well you can put a modified compiled DSDT in the Root of your Booting partition, and it will try to attach this, very good for people who are afraid of flashing their BIOS. :)

 

I made a little Tool that will patch your DSDT and will (well should) let you allow to use the upcoming (10.5.6) AppleRTC.kext and AppleIntelCPUPowerManagement.kext (no disabler needed anymore) which will otherwise panic.

 

 

Pls report back if it works or not, and what is working and what not, so this tool can grow.

Readme is included in the Zip file.

 

greetz

 

P.S. I will release the source when its done

And i like to thank all Chameleon/OSX Developers, especially zef, kabyl, modbin for helping all the time, keep up the good work!

 

 

---------Old Versions-----------

Version 1.0.1d

-fixed another search Routine issue

-added -newHPET arg, for people still suffering "Package 0 didn't get a HPET" after patching. so you guys drag the Patcher in the Terminal and write -newHPET

-Patcher uses now a bash script for obtaining the DSDT since GetDSDT didn't worked for some people.

-contains _T_ Variable issues fix which caused non-compiling by mackerintel

-contains "Method local variable is not initialized (Local0)" fix

-contains CPU Aliases fix

-contains RTC fix for upcoming AppleRTC.kext

-contains HPET fix for AppleIntelCPUPowerManagement.kext

DSDT_Patcher1.0.1d.zip

 

Version 1.0.1c2

-Patcher uses now a bash script for obtaining the DSDT since GetDSDT didn't worked for some people.

-fixed CPU Aliases patching (all what pointed to the removed Alias has to be patched as well)

-added _T_ Variable issues fix which caused non-compiling by mackerintel

-contains "Method local variable is not initialized (Local0)" fix

-contains CPU Aliases fix

-contains RTC fix for upcoming AppleRTC.kext

-contains HPET fix for AppleIntelCPUPowerManagement.kext

DSDT_Patcher1.0.1c2.zip Fixed DSDT.X issue

DSDT_Patcher1.0.1c.zip

 

Version 1.0.1b

-fixed a patching routine issue which caused non-compiling dsdt

-added "Method local variable is not initialized (Local0)" fix

-contains CPU Aliases fix

-contains RTC fix for upcoming AppleRTC.kext

-contains HPET fix for AppleIntelCPUPowerManagement.kext

DSDT_Patcher1.0.1b.zip

 

Version 1.0.1a

-fixed CPU Aliases fix

-contains RTC fix for upcoming AppleRTC.kext

-contains HPET fix for AppleIntelCPUPowerManagement.kext

DSDT_Patcher1.0.1a.zip

 

Version 1.0.1

-added CPU Aliases fix

-added some device name fix

-contains RTC fix for upcoming AppleRTC.kext

-conatins HPET fix for AppleIntelCPUPowerManagement.kext

DSDT_Patcher1.0.1.zip

DSDT_Patcher.zip

  • Like 1
Link to comment
Share on other sites

i have no problems so far :D

 

Yeah so far... but in 10.5.6 there will be a new AppleRTC.kext which will panic if you haven't your RTC Device patched in your DSDT. Other than the AppleIntelCPUPowerManagement.kext you cant just delete it. So better to fix your DSDT now, than having Problems later :)

 

greetz

Link to comment
Share on other sites

You can use AppleRTC.kext from 10.5.5 but DSDT is the right way. Even my AZAL sound device I´ve managed to change it to HDEF with it.

So, I´m glad for the work of the Chameleon, DSDT guys as well as DSDT Patcher

Link to comment
Share on other sites

thanks

 

I'm trying to understand a bit more on DSDT , reading around on this very forum but..

 

What will change in future on ours osx86 with dsdt patcher possibility ?

 

I mean , we can update 10.5.6 , and will be improvements in other areas , like ACPI for example ?

Link to comment
Share on other sites

thanks

 

I'm trying to understand a bit more on DSDT , reading around on this very forum but..

 

What will change in future on ours osx86 with dsdt patcher possibility ?

 

I mean , we can update 10.5.6 , and will be improvements in other areas , like ACPI for example ?

DSDT is a part of ACPI. Actually DSDT tells OS how to interract with the hardware (simplified way of telling it). OSX has an incomplete ACPI implementation which supports only a subset of DSDT. By replacing DSDT we can declare essentially the same interface but in the way that OSX understands. This potentially can solve nearly any ACPI-related problem (except if OSX bypasses ACPI). Other usage case is emulating by the means of DSDT features or hardware components not present on your system. But this is limited to devices that use ACPI.

 

@all: does anybody know if binary protection uses ACPI? If so implementing binary protection emulator in DSDT would be a way to have a completely untouched OSX.

Link to comment
Share on other sites

DSDT is a part of ACPI. Actually DSDT tells OS how to interract with the hardware (simplified way of telling it). OSX has an incomplete ACPI implementation which supports only a subset of DSDT. By replacing DSDT we can declare essentially the same interface but in the way that OSX understands. This potentially can solve nearly any ACPI-related problem (except if OSX bypasses ACPI). Other usage case is emulating by the means of DSDT features or hardware components not present on your system. But this is limited to devices that use ACPI.

 

@all: does anybody know if binary protection uses ACPI? If so implementing binary protection emulator in DSDT would be a way to have a completely untouched OSX.

Thanks Indeed for ur awesome job mackerintel,

In the meantime I understood how this "small" :) change , will make big improvement on osx86 , especially on a big unified bootloader

So I stay tuned and ready to test.

 

Tomorrow I try it on a DS4 Mboard :)

Link to comment
Share on other sites

Well, emulating devices, i added for instance an SMC device to my DSDT, doesnt really do anything, but i have now SMC device in the IOReg:

 

	| +-o SMC  <class IOACPIPlatformDevice, registered, matched, active, busy 0, retain 8>
| | +-o SMCMotionSensor  <class SMCMotionSensor, !registered, !matched, active, busy 0, retain 4>
| |	   "CFBundleIdentifier" = "com.apple.driver.SMCMotionSensor"
| |	   "IOUserClientClass" = "SMCMotionSensorClient"
| |	   "IOClass" = "SMCMotionSensor"

 

greetz

Link to comment
Share on other sites

Well, emulating devices, i added for instance an SMC device to my DSDT, doesnt really do anything, but i have now SMC device in the IOReg:

 

	| +-o SMC  <class IOACPIPlatformDevice, registered, matched, active, busy 0, retain 8>
 | | +-o SMCMotionSensor  <class SMCMotionSensor, !registered, !matched, active, busy 0, retain 4>
 | |	   "CFBundleIdentifier" = "com.apple.driver.SMCMotionSensor"
 | |	   "IOUserClientClass" = "SMCMotionSensorClient"
 | |	   "IOClass" = "SMCMotionSensor"

 

greetz

..mmhh, probably I say an "idiot one" but I'm trying to enlight myself :) sorry in advance ..

If one day the last update release from apple , requests a SMC Sensor, I can go ahead with updating just emulating it?

Is this the meaning ?

Link to comment
Share on other sites

Well, emulating devices, i added for instance an SMC device to my DSDT, doesnt really do anything, but i have now SMC device in the IOReg:

 

	| +-o SMC  <class IOACPIPlatformDevice, registered, matched, active, busy 0, retain 8>
 | | +-o SMCMotionSensor  <class SMCMotionSensor, !registered, !matched, active, busy 0, retain 4>
 | |	   "CFBundleIdentifier" = "com.apple.driver.SMCMotionSensor"
 | |	   "IOUserClientClass" = "SMCMotionSensorClient"
 | |	   "IOClass" = "SMCMotionSensor"

 

greetz

Very nice fassl. Way to go.

@all: emulating SMC could enable the full-feature usage of unpatched PowerManagementBundle and sleep with vanilla kernels

Link to comment
Share on other sites

Very nice fassl. Way to go.

@all: emulating SMC could enable the full-feature usage of unpatched PowerManagementBundle and sleep with vanilla kernels

 

Sleep, well fixing the _WAK Device in DSDT could enable sleep, some _WAK Devices need this at the end:

Return(Package(0x02){0x00, 0x00})

thx to realityiswhere for pointing that out.

Link to comment
Share on other sites

doesnt get to compile dsdt.aml even with '-f' flag...

 

We are done patching, press any key to try to compile the fixed DSDT

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20080926 [Oct  4 2008]
Copyright (C) 2000 - 2008 Intel Corporation
Supports ACPI Specification Revision 3.0a

./dsdt_fixed.txt	 1: ACPI (Local2)
Error	4095 -			^ syntax error, unexpected PARSEOP_NAMESEG, expecting PARSEOP_DEFINITIONBLOCK

ASL Input:  ./dsdt_fixed.txt - 16271 lines, 586089 bytes, 0 keywords
AML Output: (null) - 0 bytes, 0 named objects, 0 executable opcodes

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

Compiling done, if it worked, you have now a patched DSDT in dsdt.aml
If the compiling went wrong, you could force to build it with ./DSDT\ Patcher -f (try this DSDT at your own risk)

HP-6720s:DSDT_Patcher1.0.1 dlow$

 

Is there a way to patch it manually (and compile it)?

Link to comment
Share on other sites

I ended up with a dsdt.hex file. Can I make the .aml file out of the hex?

 

@BlackCH

 

Can you post your dsdt.dsl. I am interesting to see how you manage both core to work. I have hp 530 and for now is no chance to run both core. Thare is no aliaces problem and processors in dsdt table are described in diferent way then in other comps

 

thanks

Link to comment
Share on other sites

I ended up with a dsdt.hex file. Can I make the .aml file out of the hex?

 

Nevermind, the file was actually empty. my dsdt.dsl wont compile (not even unmodified!). I tryed ./iasl -sa which gave me a .asm file but empty as well...

so I will try to do it on linux to see if I get to it.

 

@BlackCH

Can you post your dsdt.dsl. I am interesting to see how you manage both core to work. I have hp 530 and for now is no chance to run both core. Thare is no aliaces problem and processors in dsdt table are described in diferent way then in other comps

thanks

 

Dual core was working out of the box. Im just trying to get RTC/HPET fixed.... But here is my (untouched) dsdt file if you want to have a look. Maybe you could help me

dsdt.dsl_HP6720s.zip

  • Like 1
Link to comment
Share on other sites

Nevermind, the file was actually empty. my dsdt.dsl wont compile (not even unmodified!). I tryed ./iasl -sa which gave me a .asm file but empty as well...

so I will try to do it on linux to see if I get to it.

 

 

 

Dual core was working out of the box. Im just trying to get RTC/HPET fixed.... But here is my (untouched) dsdt file if you want to have a look. Maybe you could help me

 

Your dump seems to be uncomplete and/or incorrectly disassembled. Try using latest iasl and look if you have SSDT

Link to comment
Share on other sites

ASUS P5B-Deluxe..

Done mine, copied it over to the root with the new "boot", removed IntelCPUPMDisabler.kext and everything seems fine!

 

What is the function of the "dsdt_acpi12.diff" that comes with the "boot" file and where should it go!?

How can one see, test to see if it works or is the fact that I could remove IntelCPUPMDisabler.kext enough proof!?

 

SticMAN

Link to comment
Share on other sites

ASUS P5B-Deluxe..

Done mine, copied it over to the root with the new "boot", removed IntelCPUPMDisabler.kext and everything seems fine!

 

What is the function of the "dsdt_acpi12.diff" that comes with the "boot" file and where should it go!?

How can one see, test to see if it works or is the fact that I could remove IntelCPUPMDisabler.kext enough proof!?

 

SticMAN

 

As soon as your AppleIntelCPUPowerManagement.kext gets initialised without panic, the HPET patch worked.

 

greetz

Link to comment
Share on other sites

The readme says:

You need to install the Chameleon Bootloader with DSDT override from: http://forum.insanelymac.com/index.php?showtopic=132757# for this, use the newest version.
How do I check if I'm using the Chameleon bootloader? I don't think I selected when I installed iATKOS, but I'm not 100% on that... I may be using the Darwin bootloader.
Link to comment
Share on other sites

Chameleon is a modified Darwin bootloader, pretty all new distros come with Chameleon bootloader as default. Look up your Root on your OSX Partition, if there is a file called boot you should have chameleon installed.

 

greetz

Link to comment
Share on other sites

 Share

×
×
  • Create New...