Upload of Release version 1 with source code.
Sorry folks, still no /Extras or SMBIOS compatibility due to filesize restriction with boot1h.
Although this is Work in Progress.
+ load upto 30 SSDT tables.
+ load extra additional SSDT tables.
+ ACPI v1 and v2 and v3 support.
+ source code refined.
Thanks to everyone that uploaded their SSDT tables it's helped,
ssdtboot_chameleon2.zip 314.39KB 2835 downloads
I've now tidied up the source code and added the ability to load up to 30 SSDT tables. I'm currently testing it, If successfull I will post the bootloader and the source code tonight.
I'm having a problem with adding the SMBIOS source code diff, there seems to be a limit on the filesize of the boot file.
If I keep the filesize below 62000bytes the bootloader works, as soon as I load the SMBIOS + DSDT + SSDT patch the filesize grows to 62700bytes when you boot with this file size you get the infamous /boot0 hang.
I wonder if anyone knows anything about the boot filesize restriction?
Found out why, boot1h can only load <64k boot files!!
I've modified the very popular chameleon DSDT override bootloader so that it loads modified DSDT and SSDT tables.
This can help you:
+ Understand why you are getting DSDT compile errors, DSDT sometimes references external methods contained within the SSDT tables.
+ Fix Powermanagement.
+ Fix PStates (CPU performance management)
+ Fix CStates (Power Saving managenent)
+ Fix TStates (CPU throttling)
+ View SATA controllers ACPI functions.
This version is the debug version, I shall release a non-debug version later along with the source code.
Thanks to everyone involved with the Chameleon bootloader and DSDT patching project.
To use this bootloader.
Extract the attached to a folder.
Use Terminal to cd into the folder.
Backup your existing bootloader.
sudo cp /boot /boot.bak
Copy this bootloader to use.
sudo cp ssdtboot /boot
To extract your SSDT tables.
Usind terminal cd in to the folder that you extracted the files to and run:
This will give you decompiled SSDT tables.
The number of SSDT Tables depends on the hardware you have.
Open these files in a text editor so you can modify them.
Once you have modified the SSDT tables, run the following command in terminal in the same folder to compile them:
./iasl -sa SSDT-0.dsl
./iasl -sa SSDT-1.dsl
./iasl -sa SSDT-2.dsl
./iasl -sa SSDT-x.dsl
(where x is the table you wish to compile)
Copy the compiled files to root.
cp SSDT-x.aml /
(where x is the table you wish to copy)
once you reboot the bootloader will override your SSDT tables.
Use these tutorials for DSDT.
DSDT BIOS Patcher
You can use the following Boot argument to load the default oem SSDT tables instead of the modified ones.
(Use this at darwin boot)
To check it's working (optional) use the voodoo kernel with the following boot arguments.
Once you are in OSX
run the following within terminal.
sudo dmesg | grep ACPI
Sample of OEM SSDT Tables:
ACPI: SSDT @ 0x7f7f4440/0x0024 (v001 HP HPQNLP 0x00000001 MSFT 0x0100000E)ACPI: SSDT @ 0x7f7f4464/0x0326 (v001 HP HPQSAT 0x00000001 MSFT 0x0100000E)ACPI: SSDT @ 0x7f7f4f9d/0x025F (v001 HP Cpu0Tst 0x00003000 INTL 0x20060317)ACPI: SSDT @ 0x7f7f51fc/0x00A6 (v001 HP Cpu1Tst 0x00003000 INTL 0x20060317)ACPI: SSDT @ 0x7f7f52a2/0x04D7 (v001 HP CpuPm 0x00003000 INTL 0x20060317)
Sample of SSDT tables that have been overridden:
ACPI: SSDT @ 0x7f7f4440/0x0024 (v001 HP HPQNLP 0x00000001 MSFT 0x0100000E)ACPI: SSDT @ 0x7f7f4464/0x0326 (v001 HP HPQSAT 0x00000001 MSFT 0x0100000E)ACPI: SSDT @ 0x7f7f4f9d/0x025F (v001 HP Cpu0Tst 0x00003000 INTL 0x20060317)ACPI: SSDT @ 0x7f7f51fc/0x00A6 (v001 HP Cpu1Tst 0x00003000 INTL 0x20060317)ACPI: SSDT @ 0x1956000/0x051E (v001 HP CpuPm 0x00003000 INTL 0x20080926)
Notice line 5 (SSDT-4) e.g. 0x7f7f52a2/0x4D7 -> 0x1956000/0x051E
This address change means that the modified SSDT table has loaded successfully.
Please share your SSDT tables so we can help each other. Please upload them to this topic.
I hope this helps someone.
Voodoo kernel can be found here: