Jump to content

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


immo
 Share

2,030 posts in this topic

Recommended Posts

Hi Immo, thank you for doing and sharing this guide. I'm testing it right now, but I think you should correct this in Step One (Number 6):

 

Step One: Dumping the ACPI Tables

...

6. Dump the tables and store them in ACPI-Tables.zip (thank you zhell)

 

mkdir ACPI && dmesg | perl -we '$n=0; while (<>) { if (($t,$a,$l,$o) = (/^[^a-zA-Z]*ACPI: ([-._A-Z0-9]{4,4}) +([0-9A-F]{8,8}), ([0-9A-F]{4,4})+(?:\s*\(([^)]+))?/)) { $o && $o=~s/[^-._a-zA-Z0-9]+/-/g; ($cmd="acpidump -a $a -l $l > \"ACPI/${t}".($o?"_$o":"").".aml\""); print "Running command: \"$cmd\"\n"; system($cmd); ++$n; } } die("No match") unless $n;' && zip -r ACPI-Tables.zip ACPI

...

 

If you run this command, it will bump many errors. In order to get flawless results you must first become root with command "sudo su" and then run the command from zhell (I supose). Hope it helps. If you already knew and posted it, my apologies.

 

Actually you want "sudo -s" OR "su" as they effectively do the same thing but are two different commands. Both will give you root privileges for the rest of the session though.

Link to comment
Share on other sites

re: c-states issue

i may be onto something with the LPCB device, if you look at a standard MBP4,1 DSDT the LNKA,B,C,D,E,G,H devices are under the LPCB device, however on the M1530 they are just under the PCI0 not within the LPCB device (which is known as ISAB on the M1530), i tried quickly to move it under the ISAB area but my initial attempts prevented the system from booting at all, giving me the same symptoms that I get from attempting to boot with the relatively unchanged MacBookPro4,1 DSDT. Perhaps a function of the LPCB that OSX is looking for is this, and it is not in the expected location in our DSDT.

 

the other strange thing is these MB2,3,4 devices that we have that seem to share similar characteristics with the apple HPET device i think the CID or HID value, I'm not sure what these in fact are?

Link to comment
Share on other sites

Actually you want "sudo -s" OR "su" as they effectively do the same thing but are two different commands. Both will give you root privileges for the rest of the session though.

 

In Ubunutu you need to use sudo su because su asks you for an administrator password, and you don't actually know that password with Ubuntu. Didn't know the sudo -s one.

Link to comment
Share on other sites

re: c-states issue

i may be onto something with the LPCB device, if you look at a standard MBP4,1 DSDT the LNKA,B,C,D,E,G,H devices are under the LPCB device, however on the M1530 they are just under the PCI0 not within the LPCB device (which is known as ISAB on the M1530), i tried quickly to move it under the ISAB area but my initial attempts prevented the system from booting at all, giving me the same symptoms that I get from attempting to boot with the relatively unchanged MacBookPro4,1 DSDT. Perhaps a function of the LPCB that OSX is looking for is this, and it is not in the expected location in our DSDT.

 

the other strange thing is these MB2,3,4 devices that we have that seem to share similar characteristics with the apple HPET device i think the CID or HID value, I'm not sure what these in fact are?

 

Interesting point. The LPCB device declaration is essential for CST to function - and same as yours my M1330 LNK devices are declared elsewhere in the ACPI, ie not under LPCB/ISAB. Could you email me the vanilla MBP4,1 (and MP4,1 if you have it) so I could try and patch them in?

 

Thanks

jkbuha

Link to comment
Share on other sites

Interesting point. The LPCB device declaration is essential for CST to function - and same as yours my M1330 LNK devices are declared elsewhere in the ACPI, ie not under LPCB/ISAB. Could you email me the vanilla MBP4,1 (and MP4,1 if you have it) so I could try and patch them in?

 

Thanks

jkbuha

 

Now that could prove interesting to say the least. Any chance of uploading? Or forwarding? I spose I can always setup 9 PSS entries and look at changing to a MBP4,1...

Link to comment
Share on other sites

Now that could prove interesting to say the least. Any chance of uploading? Or forwarding? I spose I can always setup 9 PSS entries and look at changing to a MBP4,1...

 

 

DSDT's for mbp4,1 and mb3,1 here...

 

mb31 mbp41-DSDT

 

I've been trying this.

Now my Laptop sleeps once when rebooting and then wakes up. weird. It seems to send a set powerstate to 0 command to my LPCB device when booting?? This was due to an extremely modified DSDT. It's now fixed.

 

17/11/2009 20:23:43 kernel LPCB[0xffffff8009919900]::setPowerState(0, 0xffffff8009919900)

 

__

AB

Link to comment
Share on other sites

I'm going to redo my DSDT file, and have a few questions about which patches I should apply.

 

I don't have Nvidia graphics, just the onboard Intel X3100 graphics, so should I add the following patches, or leave them out?

Required: DTGP Method

This method is required for the USB fix and the NVidia injection to work. If you use don't use these you don't need it.

Insert this method under the _WAK method.

Which USB fix is this referring to?

 

Optional: NVidia Injection (also required for clamshell and sleep)

I've not put this one in before, and sleep has never worked properly.

 

I'll do the following:

Required for Snow Leopard: Fix USB Devices Randomly Not Working - Added 2009/20/14
Optional: HD Audio Patching
I'll also remove AppleHDA and add the updated VoodooHDA kext.
Optional: Adding SBUS Device (Added 2009/10/22)
Optional: IDE Fix (added 2009/11/17)

 

Once I've done this, I'll update my smbios.plist and com.apple.Boot.plist files. For now I'm just going to use the ones from Superhai's 0.4 boot CD.

 

Thanks for the help.

Link to comment
Share on other sites

I'm going to redo my DSDT file, and have a few questions about which patches I should apply.

 

I don't have Nvidia graphics, just the onboard Intel X3100 graphics, so should I add the following patches, or leave them out?

 

Which USB fix is this referring to?

 

 

I've not put this one in before, and sleep has never worked properly.

 

I'll do the following:

 

I'll also remove AppleHDA and add the updated VoodooHDA kext.

 

 

 

Once I've done this, I'll update my smbios.plist and com.apple.Boot.plist files. For now I'm just going to use the ones from Superhai's 0.4 boot CD.

 

Thanks for the help.

 

 

Basically all apply except for the NVidia patch. There have been others in the thread who have got their DSDTs working with Intel graphics, so check out the additional patches they used.

Link to comment
Share on other sites

Hi, can somebody help me? I'm getting these error messages, I would appreciate some guidance.

 

a) VID: family specific matching fails (multiple times)

 

:) kernel panic "No HPETs available...CPU(s) configured incorrectly" AppleIntelCPUPowerManagement (although I did use -newHPET and got successful message)

 

I already made my DSDT.aml twice :) . I used the DTGP, USB Drive Sleep, Nvidia Injection, and HD Audio fixes for the DSDT Tables.

Link to comment
Share on other sites

Hi, can somebody help me? I'm getting these error messages, I would appreciate some guidance.

 

a) VID: family specific matching fails (multiple times)

 

;) kernel panic "No HPETs available...CPU(s) configured incorrectly" AppleIntelCPUPowerManagement (although I did use -newHPET and got successful message)

 

I already made my DSDT.aml twice :( . I used the DTGP, USB Drive Sleep, Nvidia Injection, and HD Audio fixes for the DSDT Tables.

 

Would you mind posting your DSDT? It sounds like either it is not loading the DSDT, or the HPET wasn't replaced properly (something the patcher should have taken care of for you). Also make sure it's installed it in /Extra/DSDT.aml (I believe it is case sensitive), and check that the permissions are correct.

 

Immo

Link to comment
Share on other sites

Hi, can somebody help me? I'm getting these error messages, I would appreciate some guidance.

 

a) VID: family specific matching fails (multiple times)

 

;) kernel panic "No HPETs available...CPU(s) configured incorrectly" AppleIntelCPUPowerManagement (although I did use -newHPET and got successful message)

 

I already made my DSDT.aml twice ;) . I used the DTGP, USB Drive Sleep, Nvidia Injection, and HD Audio fixes for the DSDT Tables.

 

 

I had the same problem that's why i'm using the Brett Dsdt's.

 

If someone could help us finding what is causing this error...

 

E-XD,

 

Which Bios are using?

 

A09 or A12?

 

Josh.

Link to comment
Share on other sites

Thanks for the quick reply. Testor and Immo, the path in my com.apple.Boot.plist is "<string>/Extra/DSDT.aml</string>", its correct, isn't it? The file name is "DSDT.aml" and permissions are correct, I used "sudo chown -R root:wheel /Extra/DSDT.aml" and "sudo chmod -R 755 /Extra/DSDT.aml".

 

Immo, my DSDT.dsl and DSDT.aml are below.

 

Overshoot my BIOS is A14.

myDSDT.zip

Link to comment
Share on other sites

Thanks for the quick reply. Testor and Immo, the path in my com.apple.Boot.plist is "<string>/Extra/DSDT.aml</string>", its correct, isn't it? The file name is "DSDT.aml" and permissions are correct, I used "sudo chown -R root:wheel /Extra/DSDT.aml" and "sudo chmod -R 755 /Extra/DSDT.aml".

 

Immo, my DSDT.dsl and DSDT.aml are below.

 

Overshoot my BIOS is A14.

 

E-XD, I can't tell you why, but it looks like the HPET is the original Dell one, not the new one. It seems like the patcher didn't work. I'm curious if maybe you copied the DSDT.dsl to the patcher folder before patching? If you did this, try giving it a name other than DSDT.dsl.

 

Alternatively do the patches manually. The patcher changes the RTC device and the HPET; simply copy and paste from someone else's working DSDT. I was thinking of adding how to patch these manually to the guide, but since you download the patcher to get the compiled iasl and the DSDT dumper, why not use it.

 

Immo

Link to comment
Share on other sites

E-XD, I can't tell you why, but it looks like the HPET is the original Dell one, not the new one. It seems like the patcher didn't work. I'm curious if maybe you copied the DSDT.dsl to the patcher folder before patching? If you did this, try giving it a name other than DSDT.dsl.

 

Alternatively do the patches manually. The patcher changes the RTC device and the HPET; simply copy and paste from someone else's working DSDT. I was thinking of adding how to patch these manually to the guide, but since you download the patcher to get the compiled iasl and the DSDT dumper, why not use it.

 

Immo

 

 

Thanks Immo, although its a shame... for me haha :P , How can I manually patch my DSDT? Do you know anyone who has a DSDT for my M1330's configuration?

 

Nvidia 8400 GS 128MB, Sigmatel 9228, Core 2 Duo T7250(2.0 GHz), WLAN Broadcom 4315, Broadcom 5096... I don't know what other parts are relevant for this procedure :wacko: (pretty much everything I suppose).

 

If I use your DSDT for M1330 with any CPU and NVidia graphics with all fixes listed in this guide (2009/11/17), you think it will work? Or its just not worth the try?

Link to comment
Share on other sites

from what i can read about hpet the code for m1330 looks like this PLS SOMEBODY CONFIRM IT BEFORE USING THING:
		Device (HPET)
				{
					Name (_HID, EisaId ("PNP0103"))
					Name (ATT3, ResourceTemplate ()
					{
						IRQNoFlags ()
							{0}
						IRQNoFlags ()
							{8}
						Memory32Fixed (ReadWrite,
							0xFED00000,		 // Address Base
							0x00000400,		 // Address Length
							)
					})
					Name (ATT4, ResourceTemplate ()
					{
					})
					Method (_STA, 0, NotSerialized)
					{
						Return (0x0F)
					}
					Method (_CRS, 0, NotSerialized)
					{
						Return (ATT3)
					}
				}
			}

I've finally got mine working. My HPET looks like this:

 

				Device (HPET)
			{
				Name (_HID, EisaId ("PNP0103"))
				Name (_CID, EisaId ("PNP0C01"))
				Name (BUF0, ResourceTemplate ()
				{
					Memory32Fixed (ReadOnly,
						0xFED00000,		 // Address Base
						0x00000400,		 // Address Length
						)
				})
				Method (_STA, 0, NotSerialized)
				{
					If (LGreaterEqual (OSID (), 0x10))
					{
						Return (0x0F)
					}

					Return (0x00)
				}

				Method (_CRS, 0, NotSerialized)
				{
					Return (BUF0)
				}
			}
		}

 

The problem is that my DSDT was never loading. I have to force it to load every time by typing:

DSDT=/Extra/DSDT.aml

Otherwise I get a KP.

 

This is my com.apple.Boot.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SMbiosvendor</key>
<string>Apple Inc.</string>
<key>SMbiosversion</key>
<string>MBP51.88Z.0074.B00.0810241236</string>
<key>SMboardmanufacter</key>
<string>Dell Inc.</string>
<key>SMboardproduct</key>
<string>XPS M1330</string>
<key>SMexternalclock</key>
<string>200</string>
<key>SMfamily</key>
<string>Mac</string>
<key>SMmanufacter</key>
<string>Apple Inc.</string>
<key>SMmaximalclock</key>
<string>2100</string>
<key>SMmemmanufacter_1</key>
<string>Dell Inc.</string>
<key>SMmemmanufacter_2</key>
<string>Dell Inc.</string>
<key>SMmempart_1</key>
<string>DDR2 SDRAM</string>
<key>SMmempart_2</key>
<string>DDR2 SDRAM</string>
<key>SMmemserial_1</key>
<string>00FF0000</string>
<key>SMmemserial_2</key>
<string>000736TU</string>
<key>SMmemspeed</key>
<string>667</string>
<key>SMmemtype</key>
<string>19</string>
<key>SMproductname</key>
<string>MacBookPro5,1</string>
<key>SMserial</key>
<string>FBCD12345678</string>
<key>SMsystemversion</key>
<string>1.0</string>
<key>SMboardid</key>
<string>Mac-F42D86C8</string>
<key>SMboarduuid</key>
<string>00000000-0000-0001-8000-001E4C6405B5</string>
<key>SMmembankloc_1</key>
<string>BANK</string>
<key>SMmemdevloc_1</key>
<string>DIMM_A</string>
<key>SMmembankloc_2</key>
<string>BANK</string>
<key>SMmemdevloc_2</key>
<string>DIMM_B</string>
</dict>
</plist>

 

This is my smbios.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Kernel</key>
<string>mach_kernel</string>
<key>Kernel Flags</key>
<string>arch=x86_64</string>
<key>Rescan</key>
<string>Yes</string>
<key>Graphics Mode</key>
<string>1280x800x32</string>
<key>Timeout</key>
<string>0</string>
<key>SMBIOSdefaults</key>
<string>No</string>
<key>DSDT</key>
<string>rd(0,0)/Extra/DSDT.aml</string>
</dict>
</plist>

 

Any ideas why my DSDT is not being picked up by Chameleon?

 

What's working

 

Dual boot with W7

Shutdown

Sound - used HDEF patch with VoodooHDA as per link and removed AppleHDA

Speedstepping shown using Coolbook 2.16

Wireless using a Dell 1505 that replaced my Intel 4965AGN

USB

 

What's not working

Sleep. If I navigate Apple -> Sleep the screen freezes. I then have to press the power button, which brings up a question asking me if I want to Shutdown, Sleep, Cancel or Restart.

 

Attached is my DSDT.

DSDT.aml.zip

Link to comment
Share on other sites

No, I only have W7 and SL. I have a third partition, but that's formatted as NTFS and is just a data partition. Here's the out put from diskutil list:

 

/dev/disk0

#: TYPE NAME SIZE IDENTIFIER

0: GUID_partition_scheme *500.1 GB disk0

1: EFI 209.7 MB disk0s1

2: Microsoft Basic Data 50.0 GB disk0s2

3: Apple_HFS OSX 40.0 GB disk0s3

4: Microsoft Basic Data DATA 409.8 GB disk0s4

 

I used the Chameleon package to install, maybe that's missed something? I didn't have to repair my W7 install this time.

Link to comment
Share on other sites

from what i can read about hpet the code for m1330 looks like this PLS SOMEBODY CONFIRM IT BEFORE USING THING:
		Device (HPET)
				  {
					  Name (_HID, EisaId ("PNP0103"))
					  Name (ATT3, ResourceTemplate ()
					  {
						  IRQNoFlags ()
							  {0}
						  IRQNoFlags ()
							  {8}
						  Memory32Fixed (ReadWrite,
							  0xFED00000,		 // Address Base
							  0x00000400,		 // Address Length
							  )
					  })
					  Name (ATT4, ResourceTemplate ()
					  {
					  })
					  Method (_STA, 0, NotSerialized)
					  {
						  Return (0x0F)
					  }
					  Method (_CRS, 0, NotSerialized)
					  {
						  Return (ATT3)
					  }
				  }
			  }

 

The above will work on any PC/Laptop Config.

 

_STA should always return 0xf so that it "gets switched on".

_CRS should return

 

{

IRQNoFlags ()

{0}

IRQNoFlags ()

{8}

Memory32Fixed (ReadWrite,

0xFED00000, // Address Base

0x00000400, // Address Length

)

}

 

which it does in your HPET code above by returning the method named ATT3.

 

....Go for it :blush: ....

 

__

AB

Link to comment
Share on other sites

<string>rd(0,0)/Extra/DSDT.aml</string> should be <string>/Extra/DSDT.aml</string> in your com.apple.Boot.plist

 

Thanks. I'll try that shortly.

 

However, I updated to 10.6.2 this morning, and I now have a KP based on VoodooHDA. <_<

 

I rebooted using -v -s, and copied the kext to /S/L/E, but I still have the KP. Not sure if the message is the same both times, but this is the current message:

 

error: failed to open PCI device

 

Lots of stuff

 

Kernel Extensions in backtrace (with dependancies)

org.voodo.driver.VoodooHDA(0.2.35)@0xffffff7f80bb5000->0xffffff7f80bd0ff

dependancy: com.apple.iokit.IOAudioFamily(1.7.2fc1)@0xffffff7f80b9a000

dependancy: com.apple.iokit.IOPCIFamily(2.6)@0xffffff7f80604000

 

There might be errors in the numbers above as I typed that out.

Any ideas? I'll have a hunt around in the mean time.

Link to comment
Share on other sites

Thanks. I'll try that shortly.

 

However, I updated to 10.6.2 this morning, and I now have a KP based on VoodooHDA. :(

 

I rebooted using -v -s, and copied the kext to /S/L/E, but I still have the KP. Not sure if the message is the same both times, but this is the current message:

 

error: failed to open PCI device

 

Lots of stuff

 

Kernel Extensions in backtrace (with dependancies)

org.voodo.driver.VoodooHDA(0.2.35)@0xffffff7f80bb5000->0xffffff7f80bd0ff

dependancy: com.apple.iokit.IOAudioFamily(1.7.2fc1)@0xffffff7f80b9a000

dependancy: com.apple.iokit.IOPCIFamily(2.6)@0xffffff7f80604000

 

There might be errors in the numbers above as I typed that out.

Any ideas? I'll have a hunt around in the mean time.

 

Delete AppleHDA.kext and your kext caches. 10.6.2 places a new one there, and it conflicts with VoodooHDA. You can then place your VoodooHDA back in /Extra/Extensions.

Link to comment
Share on other sites

Hi Guys,

 

I'm really starting getting crazy with this DSDT ....

 

I can't create one without the AppleIntelCpu Kernel Panic.

 

It always says "No HPET found... CPu not configured correctly..." and hangs

 

Can someone figure out what is my DSDT problem please. I've attached it to this post.

 

What i can say :

 

- XPS 1530

- CPU T9300

- Bios A09

- Created with Ubuntu 9.04

- All patched added

- HPET and RTC patch added both with the dsdt patcher first, and then added by copying the sections from Brett's DSDT but it did the same (In the dsdt i attached, i copied the sections from Brett's DSDT)

- iasl compile the dsl with no errors, just 1 warning about wmi1

 

Thanks for having a look. It will be greatly appreciated.

 

Josh.

DSDT.dsl.zip

Link to comment
Share on other sites

Hi Guys,

 

I'm really starting getting crazy with this DSDT ....

 

I can't create one without the AppleIntelCpu Kernel Panic.

 

It always says "No HPET found... CPu not configured correctly..." and hangs

 

Can someone figure out what is my DSDT problem please. I've attached it to this post.

 

What i can say :

 

- XPS 1530

- CPU T9300

- Bios A09

- Created with Ubuntu 9.04

- All patched added

- HPET and RTC patch added both with the dsdt patcher first, and then added by copying the sections from Brett's DSDT but it did the same (In the dsdt i attached, i copied the sections from Brett's DSDT)

- iasl compile the dsl with no errors, just 1 warning about wmi1

 

Thanks for having a look. It will be greatly appreciated.

 

Josh.

 

When Chameleon has loaded, type DSDT=/Extra/<yourDSDT>.aml and see if that makes a difference. I have to do that as mine isn't picked up at the moment.

 

Delete AppleHDA.kext and your kext caches. 10.6.2 places a new one there, and it conflicts with VoodooHDA. You can then place your VoodooHDA back in /Extra/Extensions.

 

I tried that and that got rid of the KP, except that my VoodooHDA is in /S/L/E as I got errors when it was in /E/E.

However, when Aqua is supposed to load, the screen goes white and then just switches off. I've had this before when trying different things, but don't know what causes it.

I'm going to reinstall and see if I can replicate this. At least I know what to do after upgrading to 10.6.2 now.

 

Edit: The reason for the black screen is 10.6.2 uses 64bit drivers for the X3100 graphics, and something doesn't work. More information here.

Link to comment
Share on other sites

are you shure that you are loading the DSDT.aml file?

 

Yes i am.

I'm already using a DSDT.aml file, the Brett's one, which is gaving me some troubles with sleep and cpu burning.

 

Sometimes my Laptop just reboot when putting it to sleep, sometimes not.

Also, sometimes my laptop starts to be very hot and it hangs (i think it's caused by the temperature sensor which halt the system when the temp is too high)

 

About loading the one i uploaded, i simply type : DSDT=/Extra/[testdsdt.aml] when the bootloader prompt me to choose the boot mode.

 

The file is placed in /Extra and the permissions are ok.

 

I really think it's related to HPET but i can't be sure.

 

If you guys have others ideas?!...

 

Thanks in advance.

 

Josh.

Link to comment
Share on other sites

Yes i am.

I'm already using a DSDT.aml file, the Brett's one, which is gaving me some troubles with sleep and cpu burning.

 

Sometimes my Laptop just reboot when putting it to sleep, sometimes not.

Also, sometimes my laptop starts to be very hot and it hangs (i think it's caused by the temperature sensor which halt the system when the temp is too high)

 

About loading the one i uploaded, i simply type : DSDT=/Extra/[testdsdt.aml] when the bootloader prompt me to choose the boot mode.

 

The file is placed in /Extra and the permissions are ok.

 

I really think it's related to HPET but i can't be sure.

 

If you guys have others ideas?!...

 

Thanks in advance.

 

Josh.

 

I couldn't get any DSDT made with Ubuntu to work (probably me rather than Ubuntu as I'm new to Linux). However, as soon as I made one with getDSDT.sh and no SSDT tables it started working. Have you tried that yet?

Link to comment
Share on other sites

 Share

×
×
  • Create New...