Jump to content

[GUIDE] Snow Leopard with 100% vanilla /S/L/E - Comprehensive DSDT patching guide


Silencers
 Share

125 posts in this topic

Recommended Posts

hi guys.

I am a noob on this topid, so there is something that I don't understand about the guide here. Since you extract ACPI tables, they are in .bin files, and what you do to make these file .dsl files? Thanks very much fro your help.

Link to comment
Share on other sites

hi guys.

I am a noob on this topid, so there is something that I don't understand about the guide here. Since you extract ACPI tables, they are in .bin files, and what you do to make these file .dsl files? Thanks very much fro your help.

 

Good point. Here are basic steps:

 

1. Rename all extracted tables to *.aml

2. Open each *.aml file with DSDTSE and then save as *.dsl

 

That's the beauty of DSDTSE, it can open binary *.aml files and decompile them automatically.

Link to comment
Share on other sites

After a while working with my DSDT, I found out that there is no Device(SATA), Device (AHCI), and Device (EHCI) in my DSDT at all.Properly I did something worng, or they hide themself in other ACPI Dumps. If any one cuold spark a light, I'd appreciated.

Link to comment
Share on other sites

After a while working with my DSDT, I found out that there is no Device(SATA), Device (AHCI), and Device (EHCI) in my DSDT at all.Properly I did something worng, or they hide themself in other ACPI Dumps. If any one cuold spark a light, I'd appreciated.

 

Check all ACPI tables, sometimes some SATA code is placed in SSDT. Maybe in your case more code is moved there. Also check DSDT's of other people with the same hardware.

Link to comment
Share on other sites

Looks like a fantastic guide - well done!

I am trying to put some of these fixes into my DSDT, mainly the 'enable brightness slider' and 'native AHCI support'.

However, I don't have the 'GPCT method' and I was wondering if anyone knew where (or if!) I should put the edits?

Thanks.

Link to comment
Share on other sites

Looks like a fantastic guide - well done!

I am trying to put some of these fixes into my DSDT, mainly the 'enable brightness slider' and 'native AHCI support'.

However, I don't have the 'GPCT method' and I was wondering if anyone knew where (or if!) I should put the edits?

Thanks.

 

PNLF device (brightness slider) can be added on the same level as, for example, LNKA device, or above your _WAK method.

Link to comment
Share on other sites

I've attached the text. I hope that helps.

 

Do you have any problems with vanilla IOATAFamily? If you don't then you don't need to make any DSDT patches to SATA.

 

If you do have KPs, then you can add the following code to your SATA device above line Name (GMPT, Zero).

 

Field (CFG2, DWordAcc, NoLock, Preserve)
{
PRIT,   16, 
SECT,   16
}
Method (_INI, 0, NotSerialized)
{
Store (0xE307, PRIT)
Store (0xC000, SECT)
}

 

Then you should add \_SB.PCI0.SATA._INI () in the beginning of your _WAK method.

Link to comment
Share on other sites

Thanks again.

No I don't have any KPs at all, I just want to 'tidy up' some of the kexts in E/E. At the moment, I need a AHCI injector, and I thought that your edit will allow me to remove it.

Nope, AHCI injector is another fix. The fix I've shown you is only if you need to use patched IOATAFamily.kext. AHCIinjector.kext is rather easy to remove. Open it's Info.plist, and post here. I will show you the DSDT fix for that.

Link to comment
Share on other sites

Thanks again.

I've attached the text from the AHCI injector. If I don't use this, I get all my drives showing on the desktop with yellow/orange icons.

The only kexts I use now are: fakesmc, IOAHCIBlockStoreageInjector, NullCPUPowerManagement, OpenHaltRestart and SleepEnabler.

Do you think any of your fixes would remove any more of them?

AHCI.rtf

Link to comment
Share on other sites

I tried putting the PNLF text in just before _WAK, but still no show for the brightness slider!

 

I will later check my own DSDT to see if I advised placement of PNLF device correctly. But for the brightness slider to work you need to have proper support for your video. For example, I can have QE/CI support with vanilla ATI drivers (no resolution switch), but brightness slider won't work. If I use old version of ATINDRV, then I will have brightness slider. The DSDT is a mere patch to allow this brightness slider to apear IF it is supported by your video drivers.

Link to comment
Share on other sites

I will later check my own DSDT to see if I advised placement of PNLF device correctly. But for the brightness slider to work you need to have proper support for your video. For example, I can have QE/CI support with vanilla ATI drivers (no resolution switch), but brightness slider won't work. If I use old version of ATINDRV, then I will have brightness slider. The DSDT is a mere patch to allow this brightness slider to apear IF it is supported by your video drivers.

Thanks again. All I can say is that I get full QE/CI support, and only use GraphicsEnabler in Chameleon options. It's a GTX285.

Can I ask a basic question, to install the AsereBLN bootloader, do the 3 files (boot, boot0 and boot1h all go to the Chameleon boot partition? (Not where SL is installed.) I usually use a Chameleon installer to do the work!!!

Link to comment
Share on other sites

Thanks again. All I can say is that I get full QE/CI support, and only use GraphicsEnabler in Chameleon options. It's a GTX285.

Can I ask a basic question, to install the AsereBLN bootloader, do the 3 files (boot, boot0 and boot1h all go to the Chameleon boot partition? (Not where SL is installed.) I usually use a Chameleon installer to do the work!!!

 

If you have latest Chameleon (RC4) you can only copy 'boot' file to overwrite your old Chameleon 'boot' (usually in the root of the partition you boot from).

 

Regarding brightness enabler, this might not work for you. I've played with my mate's HP dv6599en, and he also has full QE/CI support with GraphicsEnabler, but I couldn't get the brightness slider to work, probably something was missing on the video driver level.

 

Thanks again.

I've attached the text from the AHCI injector. If I don't use this, I get all my drives showing on the desktop with yellow/orange icons.

The only kexts I use now are: fakesmc, IOAHCIBlockStoreageInjector, NullCPUPowerManagement, OpenHaltRestart and SleepEnabler.

Do you think any of your fixes would remove any more of them?

 

I've checked your AHCI.rtf, and it is a simple Legacy kext. You can combine it with any other legacy kexts to make single kext. I've described how to do it, simply copy/paste everything under IOKITPersonalities from AHCI.kext's Info.plist to your general legacy kext.

 

Fakesms.kext is essential, you need it to make OSX work on non-Apple hardware.

 

IOAHCIBlockStoreageInjector.kext - this can be fixed with DSDT patch. But you can first disable it and see if your SATA dists turn orange in finder. If not, you don't need to fix anything there. The only thing this kext does - makes OSX to recognize your SATA disks as internal. If you have proper Intel chipset (ICH7,8,9) it should work for you without any fixes.

 

NullCPUPowerManagement.kext and SleepEnabler.kext - if you make your vanilla SpeedStep work, you don't need those kexts. Vanilla SpeedStep is tricky though.

 

OpenHaltRestart.kext - depends on your hardware, but when you use AsereBLN's booter with 'RestartFix=Yes' in com.apple.Boot.plist, you should try to disable this kext to see if shutdown and restart work.

Link to comment
Share on other sites

If you have latest Chameleon (RC4) you can only copy 'boot' file to overwrite your old Chameleon 'boot' (usually in the root of the partition you boot from).

 

Regarding brightness enabler, this might not work for you. I've played with my mate's HP dv6599en, and he also has full QE/CI support with GraphicsEnabler, but I couldn't get the brightness slider to work, probably something was missing on the video driver level.

 

 

 

I've checked your AHCI.rtf, and it is a simple Legacy kext. You can combine it with any other legacy kexts to make single kext. I've described how to do it, simply copy/paste everything under IOKITPersonalities from AHCI.kext's Info.plist to your general legacy kext.

 

Fakesms.kext is essential, you need it to make OSX work on non-Apple hardware.

 

IOAHCIBlockStoreageInjector.kext - this can be fixed with DSDT patch. But you can first disable it and see if your SATA dists turn orange in finder. If not, you don't need to fix anything there. The only thing this kext does - makes OSX to recognize your SATA disks as internal. If you have proper Intel chipset (ICH7,8,9) it should work for you without any fixes.

 

NullCPUPowerManagement.kext and SleepEnabler.kext - if you make your vanilla SpeedStep work, you don't need those kexts. Vanilla SpeedStep is tricky though.

 

OpenHaltRestart.kext - depends on your hardware, but when you use AsereBLN's booter with 'RestartFix=Yes' in com.apple.Boot.plist, you should try to disable this kext to see if shutdown and restart work.

Thanks again for your valuable info.

 

Another basic question for you, how do I copy the boot file as I can't just drag it because it is hidden? Again, I've just used installers for this in the past. Is it something to do with sudo command in Terminal?

 

With the AHCI thing, the text I posted is the AHCIBlockStorageInjector.kext and my icons do go Orange without it. I have ICH10 chipset, so why doesn't it work without the injector?

Link to comment
Share on other sites

Another basic question for you, how do I copy the boot file as I can't just drag it because it is hidden? Again, I've just used installers for this in the past. Is it something to do with sudo command in Terminal?

 

This should do the trick for you:

sudo -s
cd /folder_where_you_unpacked_AsereBLN
cp /boot /boot.original
cp ./boot /

Or try looking for installer with AsereBLN booter

 

With the AHCI thing, the text I posted is the AHCIBlockStorageInjector.kext and my icons do go Orange without it. I have ICH10 chipset, so why doesn't it work without the injector?

Here's DSDT patch:

Device (SATA)
{
Name (_ADR, 0x001F0002)
Name (_SUN, 0x02) // This line will allow this device to show in profiler
				  // 0x02 - it has to be unique across all devices - search for _SUN de before applying the patch
Method (_DSM, 4, NotSerialized)
{
	Store (Package ()
		{
			"device-id", 
			Buffer ()
			{
				0x29, 0x28, 0x00, 0x00 // Hack the ID to ICH8M (8086:2829)
			},

			"device_type", 
			Buffer ()
			{
				"AHCI Controller"
			}, 

			"model", 
			Buffer ()
			{
				"ICH8M hack (ICH9|ICH8-R SATA/AHCI Controller)" // write whatever you like
			}, 

			"name", 
			Buffer ()
			{
				"ICH8M hack (ICH9|ICH8-R SATA/AHCI Controller)" // write whatever you like
			}
		}, Local0)
	DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
	Return (Local0)
}
}

Link to comment
Share on other sites

Thanks again. You're very patient!

I just get a compile error. Screenshot below.

Any ideas?

 

You cannot have two SATA devices in your DSDT! You need to insert _DSM function and Name (_SUN, 0x02) line into your existing SATA device.

Link to comment
Share on other sites

Sorry, I'm obviously making a total mess of this!

I have inserted your complete text into the existing SATA entry, and still get the same sort of compilation error. Screen below.

Do I have to replace anything, or just paste in your text?

post-448042-1269379220_thumb.jpg

Link to comment
Share on other sites

Sorry, I'm obviously making a total mess of this!

I have inserted your complete text into the existing SATA entry, and still get the same sort of compilation error. Screen below.

Do I have to replace anything, or just paste in your text?

Well, I suggest you not to apply this fix, the kext solution is good enough. The problem you have is because of some curly brackets not closed properly, and it requires some development skills to track them down.

 

As I said, you shouldn't copy/paste all of the code in my example, but only need to use _DSM method and Name(_SUN) line, and then you need to check if _SUN id is truly unique.

Link to comment
Share on other sites

Well, I suggest you not to apply this fix, the kext solution is good enough. The problem you have is because of some curly brackets not closed properly, and it requires some development skills to track them down.

 

As I said, you shouldn't copy/paste all of the code in my example, but only need to use _DSM method and Name(_SUN) line, and then you need to check if _SUN id is truly unique.

Just copying the lines you suggested just gives the same compile error.

Thanks for all your help, but I guess we can give up on that!

Link to comment
Share on other sites

 Share

×
×
  • Create New...