Jump to content
immo

[GUIDE] Making a DSDT.aml for Dell XPS M1330, XPS M1530, and XPS M1730

2,017 posts in this topic

Recommended Posts

Thanks to everyone for all the support and helpful hints/tips!

 

I've uploaded my latest version of the DSL file for the M1330 (T8300 undervolted but just add your own _PSS values for flavour/flavor). This version also includes SMBusPCI functionality derived from lspci.txt as per immo/FMulder's excellent tips - to verify if correctly loaded search in IORegistry for SMBus and a key with SBus@xx,x (mine is 1f,3) should appear.

 

The SBUS code was adapted from Master Chief's excellent P5K PRO DSDT guide here

 

Worth a look for any aspiring dsl gurus.

Let's try and encourage that mindset into evolving our Dell DSDT's similarly!

 

Cheers

jkbuha

 

Hi Jkbuha. What is the effect of adding the SBUS code?

 

Thanks

Immo

Share this post


Link to post
Share on other sites
Advertisement
Hi Jkbuha. What is the effect of adding the SBUS code?

 

Thanks

Immo

 

In conjunction with LPC (Device (LPCB) in DSDT or modded AppleLPC kext to support your own LPC device from lspci.txt) this should provide proper C-state functionality. Once c-states are properly working, which is not my case unfortunately. I tend to be a stickler for proper device declaration :)

 

On that note, any hints and tips about how to get C-states working properly for my T8300, with MacBookPro5,1 (or should I change this??)

 

Cheers

jkbuha

Share this post


Link to post
Share on other sites
In conjunction with LPC (Device (LPCB) in DSDT or modded AppleLPC kext to support your own LPC device from lspci.txt) this should provide proper C-state functionality. Once c-states are properly working, which is not my case unfortunately. I tend to be a stickler for proper device declaration :(

 

On that note, any hints and tips about how to get C-states working properly for my T8300, with MacBookPro5,1 (or should I change this??)

 

Cheers

jkbuha

 

Sorry not working for me yet either.

 

P.S. I was thinking about the whole MacBookPro5,1 thing, and did some research, and it seems that our computers are closer to a MacBookPro3,1, as it has the same north and south bridge as the M1330 (PM965 and ICH8). My guess that the reason we get better functionality with MacBookPro5,1 is because there may be special case handling in OS-X for the MacBookPro3,1 and MacBookPro4,1 that goofs us up. OS-X is probably designed so that it will work with computers newer than it is familiar with using generic methods. This is purely a guess.

Edit: I'm beginning to doubt this theory because I really can't get speed stepping to work with anything but MacBookPro5,1. It looks more like the reverse is true and our computers need the MacBookPro5,1 special case handling.

Share this post


Link to post
Share on other sites
Edit: I'm beginning to doubt this theory because I really can't get speed stepping to work with anything but MacBookPro5,1. It looks more like the reverse is true and our computers need the MacBookPro5,1 special case handling.

 

From my own experimentation it appears that speedstep will only work natively with those cpus defined in PLimitDict=0 and StepDataDict=1 section in the ACPI_SMC_Plugin kext (MacPro4,1 is by default excluded, ergo no speedstep). More info here.

 

What I'd like to do (but cannot atm because I don't have a livecd) is to boot into Ubuntu live and see if the SSDT table locations change on runtime as detailed here. If this is true then we would need to do one or more of the following:

 

1. Change the final destination of the SSDT mapping for CPU0IST, CPU1IST etc

2. Change the mac designation from MacBookPro5,1 to MacPro4,1 in smbios.plist and insert the new designation under PLimitDict and StepDataDict. This worked partially for me (ie: no more cst errors) but the t8300 became very unresponsive once it loaded. At least some progress...

3. Add a kext in E/E to enable vanilla stepping if 2. works but speedstepping doesn't.

 

However it seems that at least one T8300 user out there has managed to implement this in some form: The King. I haven't tried to ping him/her yet but maybe we could get some advice?

 

Well that's my 0.02...!

 

Cheers

jkbuha

Share this post


Link to post
Share on other sites
From my own experimentation it appears that speedstep will only work natively with those cpus defined in PLimitDict=0 and StepDataDict=1 section in the ACPI_SMC_Plugin kext (MacPro4,1 is by default excluded, ergo no speedstep). More info here.

 

What I'd like to do (but cannot atm because I don't have a livecd) is to boot into Ubuntu live and see if the SSDT table locations change on runtime as detailed here. If this is true then we would need to do one or more of the following:

 

1. Change the final destination of the SSDT mapping for CPU0IST, CPU1IST etc

2. Change the mac designation from MacBookPro5,1 to MacPro4,1 in smbios.plist and insert the new designation under PLimitDict and StepDataDict. This worked partially for me (ie: no more cst errors) but the t8300 became very unresponsive once it loaded. At least some progress...

3. Add a kext in E/E to enable vanilla stepping if 2. works but speedstepping doesn't.

 

However it seems that at least one T8300 user out there has managed to implement this in some form: The King. I haven't tried to ping him/her yet but maybe we could get some advice?

 

Well that's my 0.02...!

 

Cheers

jkbuha

 

 

Would moving SSDT addresses even matter to us if we put our SSDT data in the DSDT.aml file and use the "DropSSDT=y" flag? From what I understand, you'd only see those addresses if you did your dump from OS-X, and from the linux dump you actually get the real content that is in the memory rather than the addresses. So by putting the real data dumped from linux into the DSDT.aml and ignoring the SSDT data in memory you work around the problem. At least that's the way I understand it.

 

Immo

Share this post


Link to post
Share on other sites
Would moving SSDT addresses even matter to us if we put our SSDT data in the DSDT.aml file and use the "DropSSDT=y" flag?

 

Ah now the DropSSDT flag explains itself :) That said, I don't think the SSDT tables are the only factor - there's a lengthy _CST method after that which may or may not need to be changed as well depending on whether we're selecting MBP5,1 MP4,1 MP3,1 or otherwise. From the look of things the ACPI_SMC_Plugin may also need to be patched depending on which is chosen. At least that's my reading of the various posts. What do you think?

 

Cheers

jkbuha

Share this post


Link to post
Share on other sites
Ah now the DropSSDT flag explains itself :P That said, I don't think the SSDT tables are the only factor - there's a lengthy _CST method after that which may or may not need to be changed as well depending on whether we're selecting MBP5,1 MP4,1 MP3,1 or otherwise. From the look of things the ACPI_SMC_Plugin may also need to be patched depending on which is chosen. At least that's my reading of the various posts. What do you think?

 

Cheers

jkbuha

 

Could very well be. BTW something else I read somewhere is IRQ conflicts can cause issues, and if I recall, our HPET and something else both are set to IRQ 2. I've read of someone fixing their issues by freeing up IRQ's 2 and 8 for the HPET. I'll look into it when I have more time.

 

Immo

Share this post


Link to post
Share on other sites
Could very well be. BTW something else I read somewhere is IRQ conflicts can cause issues, and if I recall, our HPET and something else both are set to IRQ 2. I've read of someone fixing their issues by freeing up IRQ's 2 and 8 for the HPET. I'll look into it when I have more time.

 

Immo

 

Hi,

 

I have dumped my acpi tables from a Dell XPSM1530 with the following characteristics :

 

Core2Duo T8300 2.4 GHz

3 GB DDR2

GForce 8600MGT (1680x1050)

120 GB SSD OCZ Vertex

Marvell Yukon 88E8040 + Wifi Intel 4965AGN

 

but I didn't manage to create a dsdt (actually I think I am not very good in copy/paste). So if someone would be interested to make a dsdt for people using my configuration it would help the community.

You can find my ACPI-tables.zip here

Share this post


Link to post
Share on other sites
Hi,

 

I have dumped my acpi tables from a Dell XPSM1530 with the following characteristics :

 

Core2Duo T8300 2.4 GHz

3 GB DDR2

GForce 8600MGT (1680x1050)

120 GB SSD OCZ Vertex

Marvell Yukon 88E8040 + Wifi Intel 4965AGN

 

but I didn't manage to create a dsdt (actually I think I am not very good in copy/paste). So if someone would be interested to make a dsdt for people using my configuration it would help the community.

You can find my ACPI-tables.zip here

 

Try this one by Chrysaor:

http://www.insanelymac.com/forum/index.php...t&p=1242766

Share this post


Link to post
Share on other sites

 

So I have modified superhai preboot cd (v0.4) by using Chrysaor DSDT and I managed to install SL but my resolution is in 1280x800 while it should be 1680x1050 ... However I changed resolution in plist file.

And it seems there is no 2D/3D acceleration because welcome animation at first boot is very slow.

How can I fix that ?

I have also noticed my cpu fan is getting crazy sometimes but maybe this is normal.

 

Does a DSDT specify display resolution ?

I suppose I need to create custom dsdt for my machine ...

 

UPDATE : I have started to merge dsdt and ssdt as described in tutorial. Result is here. (see myDSDT.dsl)

Now I am trying to make a diff between your versions and mine and at first glance it seems we don't use the same acpi decompiler because for instance instead of putting 0x00 or 0x01, version on this thread use String Zero and One. Of course it's not important but it make diff more complicated. So I have replaced string by their value (Zero->0x00 and One->0x01) and now I have some slight differences but I don't know what it means.

Share this post


Link to post
Share on other sites

Hi smartmobili.

 

I do not believe that the DSDT specifies the resolution at all. My guess is that you have not installed your DSDT.aml correctly. Double-check the last section of installing the DSDT, make sure that you've editted and installed the smbios.plist in the /Extra directory, and that the DSDT is called /Extra/DSDT.aml, and that you've set permissions of your /Extra folder. Also make sure that you've set up the boot flag "DropSSDT=y".

 

About the decompiler, it makes no difference. When you compile and decompile with iasl you get those Zeros and Ones.

Immo

 

So I have modified superhai preboot cd (v0.4) by using Chrysaor DSDT and I managed to install SL but my resolution is in 1280x800 while it should be 1680x1050 ... However I changed resolution in plist file.

And it seems there is no 2D/3D acceleration because welcome animation at first boot is very slow.

How can I fix that ?

I have also noticed my cpu fan is getting crazy sometimes but maybe this is normal.

 

Does a DSDT specify display resolution ?

I suppose I need to create custom dsdt for my machine ...

 

UPDATE : I have started to merge dsdt and ssdt as described in tutorial. Result is here. (see myDSDT.dsl)

Now I am trying to make a diff between your versions and mine and at first glance it seems we don't use the same acpi decompiler because for instance instead of putting 0x00 or 0x01, version on this thread use String Zero and One. Of course it's not important but it make diff more complicated.

Share this post


Link to post
Share on other sites
Hi smartmobili.

 

I do not believe that the DSDT specifies the resolution at all. My guess is that you have not installed your DSDT.aml correctly. Double-check the last section of installing the DSDT, make sure that you've editted and installed the smbios.plist in the /Extra directory, and that the DSDT is called /Extra/DSDT.aml, and that you've set permissions of your /Extra folder. Also make sure that you've set up the boot flag "DropSSDT=y".

 

About the decompiler, it makes no difference. When you compile and decompile with iasl you get those Zeros and Ones.

Immo

 

 

yes I forgot to add DropSSDT to kernel flags, that might be the reason.

By the way the tutorial is great but why don't you use DSDT Patcher utility from Koala, it seems to do everything.

 

UPDATE : So I did what you said and now I have good resolution but USB works randomly and sleep/hibernate is broken.

Share this post


Link to post
Share on other sites
yes I forgot to add DropSSDT to kernel flags, that might be the reason.

By the way the tutorial is great but why don't you use DSDT Patcher utility from Koala, it seems to do everything.

 

UPDATE : So I did what you said and now I have good resolution but I don't have USB nor sleep/hibernate ...

 

Read the guide through. Your solution is there.

 

If you or anyone has tried the Koala patcher and it works as well/better please post your results.

Share this post


Link to post
Share on other sites
Read the guide through. Your solution is there.

 

If you or anyone has tried the Koala patcher and it works as well/better please post your results.

 

Arghh I thought Chrysaor's version was already including this fix but it wasn't the case.

However other fixes are available and from what I understand it should work with nothing more.

I will check again very carefully if there is not mistake in the DSDT.dsl/

 

UPDATE : I have checked and here is the results

 

DTGP Method is not under but above _WAK method but I imagine this is not important

EHC2 and EHCI are available

NVidia Injection available

HD Audio Patching available

 

Last thing to check is what kext is included and I will do it when back home.

 

UPDATE2: Here is my kext

drwxr-xr-x 3 vincent staff 102 4 sep 16:04 AppleACPIPS2Nub.kext

drwxr-xr-x 3 vincent staff 102 4 sep 22:30 ApplePS2Controller.kext

drwxr-xr-x@ 3 vincent staff 102 17 sep 17:55 IOATAFamily.kext

drwxr-xr-x 3 vincent staff 102 4 sep 22:49 NullCPUPowerManagement.kext

drwxr-xr-x 3 vincent staff 102 5 sep 00:31 VoodooBattery.kext

drwxr-xr-x 3 vincent staff 102 4 sep 22:34 VoodooHDA.kext

drwxr-xr-x 3 vincent staff 102 21 sep 23:43 VoodooTSCSync.kext

drwxr-xr-x 3 vincent staff 102 4 sep 16:04 fakesmc.kext

 

If you have any idea why shutdown/sleep/hibernate doesn't work please let me know

Share this post


Link to post
Share on other sites
UPDATE2: Here is my kext

drwxr-xr-x 3 vincent staff 102 4 sep 16:04 AppleACPIPS2Nub.kext

drwxr-xr-x 3 vincent staff 102 4 sep 22:30 ApplePS2Controller.kext

drwxr-xr-x@ 3 vincent staff 102 17 sep 17:55 IOATAFamily.kext

drwxr-xr-x 3 vincent staff 102 4 sep 22:49 NullCPUPowerManagement.kext

drwxr-xr-x 3 vincent staff 102 5 sep 00:31 VoodooBattery.kext

drwxr-xr-x 3 vincent staff 102 4 sep 22:34 VoodooHDA.kext

drwxr-xr-x 3 vincent staff 102 21 sep 23:43 VoodooTSCSync.kext

drwxr-xr-x 3 vincent staff 102 4 sep 16:04 fakesmc.kext

 

If you have any idea why shutdown/sleep/hibernate doesn't work please let me know

 

Remove NullCPUPowerManagement.kext. This kext blocks the vanilla speed stepping and power management functions. I'll update the first post to include this (the first post mentions another kext that does the same thing). I think you'll find that speed stepping will start to work once you remove this kext.

 

Shutdown has not worked for anyone on these machines to the best of my knowledge. It'll be big news once someone gets that to work.

Share this post


Link to post
Share on other sites

hi guys, thanks to all on the effort.

However, I received an error "No match at -e line 1, <> line 873." when extracting ACPI under ubuntu 9.10 beta installed on my harddrive. I tried both sudo and root

alternatively, i've also extracted ACPI using everest under windows, then use iasl to decompile them and followed the guide to patch dsdt, but sleep / speedstep is broken.

I have a m1330 with cpu t6400 and x3100 for graphics.

Any help is sincerely appreciated.

Share this post


Link to post
Share on other sites
hi guys, thanks to all on the effort.

However, I received an error "No match at -e line 1, <> line 873." when extracting ACPI under ubuntu 9.10 beta installed on my harddrive. I tried both sudo and root

alternatively, i've also extracted ACPI using everest under windows, then use iasl to decompile them and followed the guide to patch dsdt, but sleep / speedstep is broken.

I have a m1330 with cpu t6400 and x3100 for graphics.

Any help is sincerely appreciated.

 

I suppose it's due to a bad copy/paste.

About sleep and speedstep, see my posts and you should be able to find your errors ;-)

Check kernelf flags, kexts, permissions, ...

Share this post


Link to post
Share on other sites
I suppose it's due to a bad copy/paste.

About sleep and speedstep, see my posts and you should be able to find your errors ;-)

Check kernelf flags, kexts, permissions, ...

 

Thank you for ur reply!

I have tried copy/paste more than 5 times, the result is the same. If it is because of bad copy/paste, how can I resolve it?

My other question is, are the acpi tables extracted under linux different from those extracted under windows and could this be the reason why sleep/speedstep don't work?

kernel flags: dropSSDT=Y

kexts:only left voodooHDA in S/L/E and some kexts from chameleon RC3 in E/E

permissions: I used kextutility to repair. In fact, I've also used diskutil but no avail.

Is the command dependant on version of perl?

Share this post


Link to post
Share on other sites

update oct 22 2009, 4pm

 

sleep/speedstep work now! Thanks to all.

guess i should post my findings as well.

 

hardware: m1330, T6400, X3100

 

1. do not use ubuntu 9.10 beta to extract ACPI tables, the command given in this topic will produce an error

2. do not use everest under windows 7 to extract ACPI tables, only five SSDT will be extracted while there will be six if use ubuntu 9.04 liveCD

3. if you have x3100 as graphics, follow this post to avoid black screen http://www.insanelymac.com/forum/index.php...&p=1066381; discard the nvidia patch of course

4. attached is my working DSDT.aml, in case someone needs it.

 

New update! oct 22, 2009 10am

 

Sleep works with DSDT.aml patched from ACPI tables extracted under windows. Speed step doesn't. smbios.plist is set to macbook pro 5,1.

Attached is my DSDT.aml.

Anyone who could be kind enough to take a look for me?

DSDT.aml.zip

Share this post


Link to post
Share on other sites
2. Under the "Tools" subfolder, copy "iasl" to the /sbin directory (this is the compiler/decompiler)

 

3. Decompile each of the required .aml files using the following command:

iasl -d [file.asl]

A [file].dsl file will be created in the same folder.

 

Take two. My first post seems to have disappeared! :)

 

I'm trying to use this guide to create a DSDT.aml file for my M1330. However, I seem to have hit a problem at the above step. It's probably me as I'm new to OS X/Linux but here goes.

 

When I try to run the above command, I get the following error:

root@alex-laptop:/# iasl -d SSDT_r1-PmRef-Cpu0Cst-3001-INTL-20050624.aml

-bash: /sbin/iasl: cannot execute binary file

root@alex-laptop:/# sudo iasl -d SSDT_r1-PmRef-Cpu0Cst-3001-INTL-20050624.aml

/sbin/iasl: 1: Syntax error: Unterminated quoted string

 

Any help greatly appreciated.

 

Thanks

Share this post


Link to post
Share on other sites

Hi all.

 

I have updated to Snow Leopard and learned a couple of new things, so I'll update the guide when I get the chance.

 

One thing that surprised me is that MSR Tools no longer seems to work! How do you guys verify that speed stepping is working without MSR Tools? Or is it actually working for you guys?

 

Immo

Share this post


Link to post
Share on other sites
Hi all.

 

I have updated to Snow Leopard and learned a couple of new things, so I'll update the guide when I get the chance.

 

One thing that surprised me is that MSR Tools no longer seems to work! How do you guys verify that speed stepping is working without MSR Tools? Or is it actually working for you guys?

 

Immo

 

Hi immo, i'm currently using CoolBook and it works great for checking speedstep :wacko:

Do you have STAC9228 as audio controller? Do your internal speakers work? Mine are not working, I can hear sound only from frontal jacks...

Share this post


Link to post
Share on other sites
Hi immo, i'm currently using CoolBook and it works great for checking speedstep ;)

Do you have STAC9228 as audio controller? Do your internal speakers work? Mine are not working, I can hear sound only from frontal jacks...

 

Coolbook works great thank you. Kinda miss MSR Tools though because it gave separate readouts for each core. I'll update the guide.

 

About the audio:

100% working. Internal mic too! Left jack works as headphone jack that cancels the speakers, and middle as line out that can be selected as an alternate output. Audio over HDMI does NOT work ;)

 

Use this VoodooHDA:

http://www.projectosx.com/forum/index.php?...ic=355&st=0

 

I've heard that AppleHDA conflicts with it, so I've removed it to be safe.

 

Only catch is that if it is enabled when you put your lappy to sleep, the sound will become VERY staticy when it wakes up. To work around this, use sleepwatcher to unload the kext on sleep, and reload it on wake up.

Share this post


Link to post
Share on other sites

EDIT: never mind, it was a very noob problem.

 

But I do have some questions here. What, exactly is supposed to work after this is done? I have done all the steps and here is a run down of what works and doesn't work:

 

Works:

USB

GFX

Sound (with Voodoo kext)

Webcam

Keyboard (works but is not recognized)

Battery (installed VodooBattery)

 

Doesn't work:

Speedstep

Bluetooth

Trackpad scrolling

Ethernet

 

 

This actually leads me to another question - I was under the impression that a properly made DSDT.aml would eliminiate the need for kexts. Isn't it supposed to make the hardware work with OSX? Specifically, I was wondering if the sound/battery should have at least worked with my modified kext. I'm not quire sure what went wrong with the speedstep, i'll have to give it another try. In fact, the only thing that really was fixed in my dsdt modification was the USB.

 

Question 2 : The only step I skipped was the following:

Required: Using DSDT Patcher to do Final Patches:

In the DSDT Patcher directory run the following command:

 

Do you think not using DSDT patcher was responsible for my problems? I thought that was just an optional tool to automatically apply fixes.

 

Question 3: I had to AppleIntelCPUPowerManagement (otherwise I got kernel panics). Did I do something wrong here?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×