Jump to content

DSDT Patcher


fassl
 Share

752 posts in this topic

Recommended Posts

mackerintel : Thank you!

I'm on Windows XP and with HP Compaq 6730s!

I just want to decrease my fan speed from 50 % to 20%!

I know how to do it, but in case someting goes wrong...i want to be sure my bios will be fine

Thank you for the information!

 

Sorry I know it is Mac Board, but now I have my anwer!

No, you don't have answer you were looking for. You have the answer to the question "is overriding DSDT with Chameleon safe?" (what you asked). Answer is "not more dangerous then replacing driver". But your real question is "Is patching DSDT and reflashing BIOS dangerous?" and answer is "YES". In case of power surge, software or hardware bug during flashing you can end up with unbootable and unusable machine. Additionally after flash update if your DSDT is wrong then perhaps you won't be able to boot (you should still be able to boot without ACPI). But if your BIOS editor incorrectly inserts DSDT table then perhaps you won't be able to boot at all. Additionally changing fan-speed you risk to have an overheat. I personally recommen to have a software tool which monitors CPU's temperature and turn the fan on/off depending on it

Link to comment
Share on other sites

I do a fresh instal and now i get this in terminal

Loading Acpi table from file ./dsdt.dat

Could not get table from the file

 

 

 

 

 

 

 

 

Done, now start the Patching!

 

Could not open file ./dsdt.dsl

 

There were errors pacthing the RTC

 

logout

 

[Process completed]

Link to comment
Share on other sites

Hi! Incredible releases we are living this days... thanks to all of you involved on develope and test. ;)

 

I am using the DSDT_Patcher1.0.1c

I have found the same error as avobe on my sony laptop when getting the acpi table from ioreg, and i have found the ioreg named different my dsdt from the name on the script....

 

I had to change this on the getDSDT.sh inside tools folder in order to work.:

modified1=${ioregdump#*'"DSDT"=<'}

modified2=${modified1%%'>'*}

Into this:

modified1=${ioregdump#*'"DSDT.0"=<'}

modified2=${modified1%%'>'*}

 

After that had to force the patcher with -f but all has been ok.

 

I suggest don´t erase the ioreg.txt so if things goes wrong, you can check how the ioreg name the dsdt.

 

Thanks for all your work again!.

Link to comment
Share on other sites

I do a fresh instal and now i get this in terminal

Loading Acpi table from file ./dsdt.dat

Could not get table from the file

be sure to launch as superuser. Also say which version do you use

 

@pere: could you post your ioreg -lw0? I have suspicions that somehow your system has multiple DSDTs.

Link to comment
Share on other sites

mackerintel: Thank you for your answer and attention!

I have inctructions for another HP notebook, and I just want to fix my super-new HP 6730s notebook, because very often it stuck to 50 % fan-speed (even my themperatures are all under 40 C )!

IT IS IMPOSSIBLE TO CONTROL THE FAN WITH SOFTWARE BECAUSE THE NOTEBOOK IS very NEW AND THE PROGRAMS JUST DO NOT RECOGNIZE THE NOTEBOOK FAN(s) at all!

 

I have this table:

Name(CPFS, Package(0x6)

{

0x64,

0x46,

0x3c,

0x32,

0x0,

0x0

})

 

From dsdt.ASL

My plan was just to rewrite 0x32 (50 %) to 0x14 (20%)!and to keep 0x3c (60%);0x46(70%);0x64(100%) as safe/safety buffer!

 

And after to over-write dsdt.ASL with Command Promt - using the command:

asl /loadtable dsdt.ASL

 

That's all!

 

I use CPUID HARDWARE MONITOR for the temperatures and the fan speed!

 

This is from the original source: "Now reboot, if everything works, your notebook fan should be slower after a few minutes after things settled down after reboot. WARNING: if it doesn't work and you get a blue screen during reboot. Press F8 and choose the "use last known good" option."

 

IS dsdt.ASL table part from the BIOS or from the Windows?

I'm confused!

If i understand you correct dsdt.ASL Patching is BIOS MOD?!

 

Thank you!

And again sorry I know It is Mac Board!By the way I love MacBook Pro!

Link to comment
Share on other sites

Do i have to boot without DSDT.aml if i want to generate an new one (using newer patcher ) ?

Or can i boot with DSDT.aml (working!) and use patcher (newer one) and overwrite old one (for next boot) with generated DSDT.aml(new one) ?

EDIT: OK, i mad a diff old new and its the same (working).

Link to comment
Share on other sites

Do i have to boot without DSDT.aml if i want to generate an new one (using newer patcher ) ?

Or can i boot with DSDT.aml (working!) and use patcher (newer one) and overwrite old one (for next boot) with generated DSDT.aml(new one) ?

EDIT: OK, i mad a diff old new and its the same (working).

 

 

HI, i have the same question, must we reboot without the patched file in order the new PATCHER reads the "non patched" bios or is safe to use the new patcher with the file dsdt.aml loaded from the root in the beginning?.

 

Thanks.

 

EDIT:

 

I have found the results are different if the dsdt.aml file is placed on the root folder before try a newer patcher.

The dsdt.aml file has to be moved out from root, placed a disabler on the system again (For intelcpupm) and restarted without the .aml file.

The new patcher can now read the "clean" info from bios. (Without previous patching. :blink:

 

This should be obviuos for me, as the main goal of the dsdt.asl file is to get loaded instead the "real bios", so the system try always to read the dsdt ioreg from the loaded file. But i wanted to ask:

Is a reboot without that file necessary for try newer patches?

Thanks for the hard job.

 

Edited to make clearer my question...

Link to comment
Share on other sites

SSDT is something like additional DSDT. In the linux it's possible to reunite both tables together (by putting their disassemblies together) and then make linux discard original SSDT. This feature is not yet implemented in DSDT override (but is on my todo-list). You can dump SSDT by

 

cat /sys/firmware/acpi/tables/SSDT > ssdt

 

under ubuntu

iasl is in the package manager in ubuntu

 

I dont have SSDT, or at least I couldnt find it under cat /sys/firmware/acpi/tables/SSDT.

I guess theres something wrong with my dsdt. I cannot compile it back (not even unmodified).

dump it with:

sudo cat /proc/acpi/dsdt > dsdt.dat

decompiling:

iasl -d dsdt.dat

and compiling right after:

iasl -ta dsdt.dsl

 

gives me this output:

Error	4095 -			^ syntax error, unexpected PARSEOP_NAMESEG, expecting PARSEOP_DEFINITIONBLOCK

ASL Input:  ./dsdt_fixed.txt - 14892 lines, 584797 bytes, 0 keywords
Compilation complete. 1 Errors, 0 Warnings, 0 Remarks, 0 Optimizations

 

 

I had the same results under ubuntu and OSX, trying to do it manually, also with the patcher...

Ended up with a 4 byte empty .asl or .hex file

Can you please look at my files? I attach the .tar made by the patcher 1.0.1b; I runned a diff between this dump and the one I got from linux. they are identical...

Thanks for your help!

hp6720s_1.0.1b.tar

Link to comment
Share on other sites

This should be obviuos for me, as the main goal of the dsdt.asl file is to get loaded instead the "real bios", so the system try always to read the dsdt ioreg from the loaded file. But i wanted to ask:

Is a reboot without that file necessary for try newer patches?

Thanks for the hard job.

 

Doesn't really matter, if HPET and RTC is already fixed it shouldn't look different with newer Patchers. Also the patcher ever since has the ability to patch an other dsdt.dsl. Drag the Patcher in the Terminal, then drag what ever dsdt.dsl you want to patch in terminal and press enter. It then won't get the DSDT from ioreg, so you can point to your original dsdt.

 

greetz

Link to comment
Share on other sites

What about this:

 

./dsdt_fixed.txt   222:	 Method (_WAK, 1, NotSerialized)
Warning  1080 -						^ Reserved method must return a value (_WAK)

 

It´s an issue, can cause problems or can (should) it be fixed ?

 

Does your sleep work properly? If not you could try to add this at the end of the _WAK Method:

 

Return(Package(0x02){0x00, 0x00})  // FIX Reserved method must return a value

 

greetz

Link to comment
Share on other sites

What about this:

 

./dsdt_fixed.txt   222:	 Method (_WAK, 1, NotSerialized)
Warning  1080 -						^ Reserved method must return a value (_WAK)

 

It´s an issue, can cause problems or can (should) it be fixed ?

 

Hi, this may be the reason why some GA boards didnt give PSTATES infos (CPU Powerstates).

 

 

> Pehaps someone can fix it - i dont understand all of the solution below:

 

Solution for the WAK warning (found in the internet)

I see that the solution is to add the following line to the end of the _WAK method:

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

 

information about the _WAK method.

Arguments:

0 The value of the sleeping state (1 for S1, 2 for S2, and so on).

Result Code (2 DWORD package):

Status Bit field of defined conditions that occurred during sleep.

0x00000000 Wake was signaled and was successful

0x00000001 Wake was signaled but failed due to lack of power.

0x00000002 Wake was signaled but failed due to thermal condition.

Other Reserved

PSS If non-zero, the effective S-state the power supply really entered.

 

This value is used to detect when the targeted S-state was not entered

because of too much current being drawn from the power supply.

 

OK, so the _WAK method accepts one argument, which is the number of the sleep state that was requested. It returns its result as a package of 2 DWORDs. The first value is a code that tells whether the wake was successful (0 on success, nonzero on failure) and, if not, why. The second value is also zero on success and on failure returns the value of the sleep state that was actually entered. So basically, it's a success/failure code.

 

The first argument of the package declaration specifies the number of elements in the package, and the second is the package itself. So, the declaration above simply defines a two element package, where each of the elements is zero. This is necessary because the spec requires that the _WAK method return two values.

So, what this really boils down to is a dummy return value that satisfies the spec (thus eliminating the warnings), but doesn't really do anything. It just always returns a success condition.

---------

 

I addes my debug.tar (no errors, one warnings, working GA-EP-35-DS2, F3)

ami.tar

Link to comment
Share on other sites

Does your sleep work properly? If not you could try to add this at the end of the _WAK Method:

 

Return(Package(0x02){0x00, 0x00})  // FIX Reserved method must return a value

 

greetz

 

Sleep is not working (it was before dsdt stuff). I will try the -> Return(Package(0x02){0x00, 0x00})

Link to comment
Share on other sites

Speedstep not working on my hp530 with appleintelCPUPM, ewen with superhai or intelspeedstep kext. Takt is locked on 50%. Without appleintelCPUPM ewrithing is normal, ewen sleep working OK

 

But WHY?! AppleIntelCPU usage - even on real macs i think its not the great deal - speedstep works better , i believe.

Link to comment
Share on other sites

Don't expect the AppleIntelCPUPowerManagement.kext does anything for you! It just gets loaded, thats it. For Speedstepping you need the proper Speedstepping kexts like IntelEnhancedSpeedStep or GenericCPUPowerManagement, i don't know exactly the right name, from Superhai.

 

greetz

Link to comment
Share on other sites

What is the use then of AppleIntelCPUPM? If even on real mac's this does not a great deal.

Apple's notebooks should do speedstepping or some sort of power management. And even imac's should benefit from it.

 

Isn'nt AppleIntelCPUPM going to conflict with other CPU management kext's if loaded?

Link to comment
Share on other sites

Sleep is not working (it was before dsdt stuff). I will try the -> Return(Package(0x02){0x00, 0x00})

 

I´ve tested adding Return(Package(0x02){0x00, 0x00}) and now sleep works fine. Can next version has this thing added ?

 

Thanks

 

ps. It´s nice to see an output like this, after doing that change:

 

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

ASL Input:  ./dsdt_fixed.txt - 5621 lines, 186490 bytes, 2322 keywords
AML Output: ././dsdt.aml - 18049 bytes, 658 named objects, 1664 executable opcodes

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

Link to comment
Share on other sites

 Share

×
×
  • Create New...