Jump to content

[Guide] Dell Latitude D630/D830


Air
 Share

91 posts in this topic

Recommended Posts

Snow Leopard Guide for D630 and D830 Laptops

 

As a foreword, I’m something of a noob and don’t write drivers/code/anything besides this guide and some Java, so if you have anything to add or correct, feel free to tell me and I’ll update. Also if your computer explodes from this or Apple comes to your door and smacks you around for OSX86, I take no responsibility. This guide is for educational purposes only.

 

Prereqs:

- a working Leopard installation: you will be installing fresh on a different hard drive, but you will need to install everything from a working Leopard OS. If you can’t get it working on your own PC, you can always connect your hard drive to a real mac and do it from there

- retail Snow Leopard installation DVD

 

Note that this guide is for the 32-bit kernel, but if you have a D630/830, I see no reason for you to need 64-bit as we have fairly old computers. In SL, 64 bit apps will still work with a 32-bit kernel.

 

**Step 1** Partitioning

Partition the drive you will install SL onto in GUID. It’s possible to do this in MBR, but I like GUID because that’s how real macs do it. It also lets you add, delete, and resize partitions easily with no damage to existing data. For ease of instructions, I named my volume SL, so if you name it something else, replace “SL” in this guide with the name of your drive.

 

**Step 2** Base Installation

Boot into you working leopard OS, then mount the DVD image. On the “Go” tab of the menubar, select “Go to Folder” and type in /Volumes/Mac OS X Install DVD/System/Installation/Packages. If your image is any other name, replace “Mac OS X Install DVD” with it. Click on “OSInstall.mpkg” and install SL onto your target drive.

 

Note: if you’re doing this MBR, there is a patched OSInstall out there that you can replace into the image, but this requires you to copy the whole installation DVD to another drive and fix it from there and that’s all really tedious and not fun. But it’s possible if you really need MBR, ie if you’re going to dual boot with XP. Windows 7 plays friendly with GUID though, so don’t worry about that.

 

Note2: I deselected all the extra packages and only kept the essential SL installer. If you get errors installing, try doing it with the base package only.

 

**Step 3** Bootloader

Macs use EFI, which is basically the Mac equivalent of BIOS. The following bootloader will emulate EFI for you so you can boot up OSX.

 

Install Chameleon PC EFI v9 (from the bootloader2.dmg) on the target drive. Open up terminal and type in

 

Sudo –s

(asks for your password)

cp /Volumes/Snow\ Alternative/boot /Volumes/SL

 

This copies the SL-friendly boot file into the root of your SL drive.

 

Use Chameleon Bootloader (google it!)! And put <key>GraphicsEnabler</key><string>Yes</string> in the boot.plist in your Extra folder for native graphics support! So cool. Yeah pretty much, thanks to msingh for telling us about this. So much better than NVKush, which at least on a D630 results in lots of choppiness and lag.

 

**Step 4** UUID Fix

Open up disk utility, select your SL drive, then click info and copy down the UUID. Open up the PlatformUUID kext in my attachment and replace my UUID with yours.

 

Open the smbios file and similarly replace my UUID with yours.

 

Yeah I have no idea what this does. Sorry. It might not even be necessary, but people tell me to do it and my OSX works because of it, so I’m grateful.

 

**Step 5** Fundamental extensions

The kexts in this folder are the most important in getting OSX to boot on a PC. Don’t know much about the details, but things like fakesmc help decrypt software that Apple encrypts that apparently only Apple hardware can decrypt. Other kexts help prevent kernel panics that happen on PCs for whatever various reasons.

 

Drag the “Extensions” folder and kextutility app I have enclosed onto your desktop, then drag the extensions folder onto kextutility. An extensions.mkext file is created. Drag both this mkext file and the Extensions folder into the “Extras” folder of your SL drive.

 

**Step 6** Specific extensions

The “kexts” folder is responsible for making the hardware specifically on your Dell Latitude work.

 

Drag the contents of my “kexts” folder to SL/System/Library/Extensions. Note that the IOATAfamily kext is going to get replaced, as the Snow Leopard appleintelpiixata plugin will make your kernel panic. Go to terminal and type

 

Sudo –s

Chown –R root:wheel *

Chmod –R 755 *

 

This repairs the permissions for your SL extensions.

 

**Step 7** Booting up

Now boot your Latitude, and as the progress bar in the BIOS nears the end, hit F8. You will see options for booting into your SL partition, so type –v to monitor for kernel panics and other problems. Everything should go smoothly though, and you’ll be welcomed by, well, the welcome screen, and you’ll be good to go from there.

 

Extra notes:

Graphics are kind of laggy at startup, so if anyone has a solution for NVIDIA Quadro NVS 135m, I’d love to hear it. Oh yeah and as you Leopard people probably already know, NVKush breaks your restart/shutdown, so when you shut down, you have to manually power off once your screen goes black. Don’t worry though, your hard drive has already stopped by then so no damage is done.

 

If some kexts aren’t working, put kextutility onto your snow drive also and just click it. It will automatically repair extensions. Alternatively, you can reinstall the kexts by dragging them onto the kextutility app, and it’ll install everything for you automatically.

 

Everything works except the battery meter, so if anyone can figure that out too that would be great. It’s not too much of a problem for me though since I removed my battery and stay plugged in all the time.

 

Also, if someone comes up with kexts/hardware solutions for 64-bit, I’d also love to hear that.

 

If your computer doesn’t recognize your trackpad/keyboard at first, just plug in some external USBs and repair permissions with kextutility once you’re in.

 

Thanks to

Roneil4, whose guide helped me get Leopard on my system for the first time. You can find his guide here:

http://www.insanelymac.com/forum/index.php?showtopic=86600

 

Netkas, for being a god and doing a bunch of crazy OSX86 things (the fakesmc kext and PC EFI being two of many) that I’ll never understand for my life.

 

DiaboliK, for writing NVKush.

 

Whoever wrote all our other drivers and apps, sorry I don’t know who you are :)

 

Apple, for switching to Intel and giving us OSX.

 

You, for helping all future noobs down the road, because I know you will!

 

 

 

Enjoy Snow Leopard!

 

 

 

UPDATE: Here are some 64-bit kexts if you're interested!

http://www.insanelymac.com/forum/index.php?showtopic=183362

D630_SL.zip

Link to comment
Share on other sites

**Step 6** Specific extensions

The “kexts” folder is responsible for making the hardware specifically on your Dell Latitude work.

 

Drag the contents of my “kexts” folder to SL/System/Library/Extensions. Note that the IOATAfamily kext is going to get replaced, as the Snow Leopard appleintelpiixata plugin will make your kernel panic. Go to terminal and type

 

Sudo –s

Chown –R root:wheel *

Chmod –R 755 *

 

This repairs the permissions for your SL extensions.

 

Just confirming. This method does not leave S/L/E untouched in the spirit of boot-132, right ?

Link to comment
Share on other sites

nope. I tried doing that by shoving everything into the extras folder, but it didn't seem to work so i got lazy and just put all the hardware-specific kexts into S/L/E. you could try putting everything into extras though and repairing, it might work.

Link to comment
Share on other sites

Thanks to

Roneil4, whose guide helped me get Leopard on my system for the first time. You can find his guide here:

http://www.insanelymac.com/forum/index.php?showtopic=86600

 

Netkas, for being a god and doing a bunch of crazy OSX86 things (the fakesmc kext and PC EFI being two of many) that I’ll never understand for my life.

 

DiaboliK, for writing NVKush.

 

04152viki, for writing legacySTAC9205.kext ?

Link to comment
Share on other sites

DSDT HPET-Fix, works without Disabler&NullCPUPowerManagement

if USB-problem without Disabler&NullCPUPowerManagement, instal this IOPCIFamily.kext.zip

or use DSDT fix for USB problem:(use legacy IOPCIFamily.kext)

add this in Device (HPET):

 

IRQNoFlags ()

(11)

IRQNoFlags ()

(15)

 

				Device (HPET)
				  {
					  Name (_HID, EisaId ("PNP0103"))
					  Name (_CID, EisaId ("PNP0C01"))
					  Name (BUF0, ResourceTemplate ()
					  {
						  IRQNoFlags ()
							  {0}
						  IRQNoFlags ()
							  {8}
						  IRQNoFlags ()
							  {11}
						  IRQNoFlags ()
							  {15}
						  Memory32Fixed (ReadWrite,
							  0xFED00000,		 // Address Base
							  0x00000400,		 // Address Length
							  )
					  })
					  Name (ATT4, ResourceTemplate ()
					  {
					  })
					  Method (_STA, 0, NotSerialized)
					  {
						  Return (0x0F)
					  }

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

 

use native speedstep with native AppleIntelCPUPowerManagement (works without Disabler&NullCPUPowerManagement)

 

MacBook3_1.zip

 

 

 

DSDT HDEF-Fix STAC9205

 

before

		Method (_L0D, 0, NotSerialized)
		  {
			  Store (SMI (0xC6, Zero), Local0)
			  If (And (Local0, One))
			  {
				  Notify (\_SB.PCI0.AZAL, 0x02)
			  }

after

		Method (_L0D, 0, NotSerialized)
		  {
			  Store (SMI (0xC6, Zero), Local0)
			  If (And (Local0, One))
			  {
				  Notify (\_SB.PCI0.HDEF, 0x02)
			   }

before

			Device (AZAL)
			  {
				  Name (_ADR, 0x001B0000)
				  Name (_PRW, Package (0x02)
				  {
					  0x0D, 
					  0x03
				  })
			  }

after

			Device (HDEF)
			  {
				  Name (_ADR, 0x001B0000)
				  Method (_PRW, 0, NotSerialized)
				  {
					  Return (Package (0x02)
					  {
						  0x0D, 
						  0x03
					  })
				  }

				  Method (_DSM, 4, NotSerialized)
				  {
					  Store (Package (0x08)
						  {
							  "codec-id", 
							  Buffer (0x04)
							  {
								  0xA0, 0x76, 0x84, 0x83
							  }, 

							  "layout-id", 
							  Buffer (0x04)
							  {
								  0x0C, 0x00, 0x00, 0x00
							  }, 

							  "device-type", 
							  Buffer (0x09)
							  {
								  "STAC9205"
							  }, 

							  "PinConfigurations", 
							  Buffer (0x30)
							  {
								  /* 0000 */	0x40, 0x10, 0x21, 0x01, 0x20, 0x10, 0x81, 0x01, 
								  /* 0008 */	0x10, 0x01, 0xA0, 0x90, 0x30, 0x01, 0x10, 0x90, 
								  /* 0010 */	0xF0, 0x00, 0xF0, 0x40, 0xF1, 0x00, 0xF0, 0x40, 
								  /* 0018 */	0xF2, 0x00, 0xF0, 0x40, 0xF3, 0x00, 0xF0, 0x40, 
								  /* 0020 */	0xF4, 0x00, 0xF0, 0x40, 0xF5, 0x00, 0xF0, 0x40, 
								  /* 0028 */	0xF6, 0x00, 0xF0, 0x40, 0xF7, 0x00, 0xF0, 0x40
							  }
						  }, Local0)
					  DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
					  Return (Local0)
				  }
			  }

 

Native Sleep without Clamshelldisplay.kext

			Device (PNLF)
			  {
				  Name (_HID, EisaId ("APP0002"))
				  Name (_CID, "backlight")
				  Name (_UID, 0x0A)
				  Name (_STA, 0x0B)
			  }

can look so

		Scope (\_SB)
		{
			Device (LID)
			{
				Name (_HID, EisaId ("PNP0C0D"))
				Method (_LID, 0, NotSerialized)
				{
					Store (SMI (0x84, Zero), Local0)
					Return (Local0)
				}

				Name (_PRW, Package (0x02)
				{
					0x1C, 
					0x03
				})
				Method (_PSW, 1, NotSerialized)
				{
					PSW (Arg0, 0x02)
				}
			}

			Device (PNLF)
			{
				Name (_HID, EisaId ("APP0002"))
				Name (_CID, "backlight")
				Name (_UID, 0x0A)
				Name (_STA, 0x0B)
			}

 

if somebody needs DSDT-Fix for Blackscreen x3100?

Sorry for my bad english (If someone can speak German/Russian)

 

DTGP-Fix

 

	Method (DTGP, 5, NotSerialized)
{
	If (LEqual (Arg0, Buffer (0x10)
			{
				/* 0000 */	0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44, 
				/* 0008 */	0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
			}))
	{
		If (LEqual (Arg1, One))
		{
			If (LEqual (Arg2, Zero))
			{
				Store (Buffer (One)
					{
						0x03
					}, Arg4)
				Return (One)
			}

			If (LEqual (Arg2, One))
			{
				Return (One)
			}
		}
	}

	Store (Buffer (One)
		{
			0x00
		}, Arg4)
	Return (Zero)
}

Link to comment
Share on other sites

oh wow thanks viki, i've been looking for someone who knows their DSDT stuff. but first I have to research exactly how that works. i also put you into my thanks list, didn't know it was you who wrote legacystac (which is great btw).

Link to comment
Share on other sites

Eric,

Do you also have the extensions/kext files just for leopard? Would be grateful if you can put a link for that as well in a thread.

 

thanks,

 

Yeah actually, the hardware-specific kexts are all the same since they're for 32-bit. the kexts you find in my SL package are ones that worked on my leopard installation.

Link to comment
Share on other sites

Thanks, Just to be doubly sure:

Would the procedure for updating the kexts (both from the Extensions folder and the kext folder) be exactly same for leopard and for snow leopard ?

 

If there are any differences, do let us know

 

well for leopard, people use the app Kext Helper B7 to install the kexts, rather than kext utility. maybe kext utility works for leopard too, but to be safe i'd use kext helper b7.

Link to comment
Share on other sites

well for leopard, people use the app Kext Helper B7 to install the kexts, rather than kext utility. maybe kext utility works for leopard too, but to be safe i'd use kext helper b7.

 

What is a good replacement card for the Intel 4965 in Dell D830 ? Or does iwldarwin work ?

Link to comment
Share on other sites

What is a good replacement card for the Intel 4965 in Dell D830 ? Or does iwldarwin work ?

 

i got a dell 1390 from ebay for like 17 dollars, it's natively recognized by os x. you probably won't have much luck with iwidarwin, it recognizes networks, but can't connect to them.

Link to comment
Share on other sites

if somebody needs DSDT-Fix for Blackscreen x3100?

 

I have a Toshiba laptop with a GMA 965 X3100 graphics card. Installed 10.6 (SL) and the external monitor works fine, but the internal LCD of the laptop is always black. I have spent months trying to get this X3100 to work in Leopard but never could. I am running a custom DSDT with 10.6 that fixes many other problems, but I can never figure out the X3100 problem. I have also added a custom EFI string for the X3100 to com.apple.Boot.plist but it does not seem to work.

 

Any help would be much appreciated.

 

Thanks...

Ray

Link to comment
Share on other sites

i got a dell 1390 from ebay for like 17 dollars, it's natively recognized by os x. you probably won't have much luck with iwidarwin, it recognizes networks, but can't connect to them.

 

Thanks for the hint. I have an atheros wireless card in another laptop (Acer Travelmate 2420) that I am not using. It used to work perfectly with iDeneb on that laptop.

 

Its just that I do not think it can be used in the D830 as I cannot find a place to plug it into. Any ideas ?

 

PS : Can the presence of the 4965 card possibly have something to do with my inability to even boot the retail Leopard or Snow Leopard DVD on this ?

Link to comment
Share on other sites

hmm i dunno if wireless cards are made in different shapes, but you should be able to just pop the 4965 out and pop the atheros in. it just requires some internal tinkering, nothing too difficult, although if your fingers aren't small it could be a frustration.

 

i don't think the 4965 will interfere with the boot process though, my leopard installed fine with a noncompatible wireless in (the 3945 or something, the 3--- version). only software and kexts will make the kernel panic.

Link to comment
Share on other sites

hmm i dunno if wireless cards are made in different shapes, but you should be able to just pop the 4965 out and pop the atheros in. it just requires some internal tinkering, nothing too difficult, although if your fingers aren't small it could be a frustration.

 

i don't think the 4965 will interfere with the boot process though, my leopard installed fine with a noncompatible wireless in (the 3945 or something, the 3--- version). only software and kexts will make the kernel panic.

 

It is not that easy. The form factor of the atheros (which is a mini-PCI card) and the 4965 are very different. I have never seen a wireless card that looks like the 4965. It has three power connections (most cards have 1-2). Plus, its shape is totally different.

Link to comment
Share on other sites

It is not that easy. The form factor of the atheros (which is a mini-PCI card) and the 4965 are very different. I have never seen a wireless card that looks like the 4965. It has three power connections (most cards have 1-2). Plus, its shape is totally different.

 

hmm not sure how to help you there then, the 1390 fits nicely into the latitude though, you might as well get that since it's only 17 bucks and works pretty well.

Link to comment
Share on other sites

Probably you can use EFI-string and original drivers to make this video card work. I havn't test yet but I have my D630 work with Leopard now.

 

Is that the Nvidia NVS Quadro 135/140M ?

 

If so, could you (or someone else) post the EFI string ?

Link to comment
Share on other sites

Hi,

 

I've gotten snow leopard working on my Dell D830 with NVIDIA 140M card. The NVIDIA driver is the best I've seen so far with HW acceleration (QE/CI) working, external display, and even detection of an external display if connected after bootup; something I couldn't manager with Leo in previous attempts.

 

I've not completely researched everything yet, but after a fresh install, I can run in 64 bit mode, and these are the state of things:

What's not working:

- Sleep

- Battery indicator

- Wireless

- Shutdown/reboot is not working due to the nvidia drivers.

- sound: MIC in

 

Some notes:

- The boot loader only loads 50% of the time. I typically have to power on, wait for the bootloader to load to load, and press ctrl-alt-delete. The 2nd time around it boots OS X, but without presenting a command line.

- Another issue is that kext caching doesn't work. I can only boot with the -f parameter, which I had to put in /Volumes/SL/Library/Preferences/SystemConfiguration/com.apple.Boot.plist since I don't know how to get a command line for the kernel params while booting. I'll try some different versions of cameleon etc see if I can fix that. The kernel panics at a really early stage if I don't use -f

- Sound wasn't working out of the box. I had to delete IntelHDA.kext and use a 64 bit version of VoodooHDA.kext. Mute works as well as line out but the MIC in doesn't work.

 

Thanks for the guide! Excellent work.

 

Will

Link to comment
Share on other sites

Hi,

 

I've gotten snow leopard working on my Dell D830 with NVIDIA 140M card. The NVIDIA driver is the best I've seen so far with HW acceleration (QE/CI) working, external display, and even detection of an external display if connected after bootup; something I couldn't manager with Leo in previous attempts.

 

I've not completely researched everything yet, but after a fresh install, I can run in 64 bit mode, and these are the state of things:

What's not working:

- Sleep

- Battery indicator

- Wireless

- Shutdown/reboot is not working due to the nvidia drivers.

- sound: MIC in

 

Some notes:

- The boot loader only loads 50% of the time. I typically have to power on, wait for the bootloader to load to load, and press ctrl-alt-delete. The 2nd time around it boots OS X, but without presenting a command line.

- Another issue is that kext caching doesn't work. I can only boot with the -f parameter, which I had to put in /Volumes/SL/Library/Preferences/SystemConfiguration/com.apple.Boot.plist since I don't know how to get a command line for the kernel params while booting. I'll try some different versions of cameleon etc see if I can fix that. The kernel panics at a really early stage if I don't use -f

- Sound wasn't working out of the box. I had to delete IntelHDA.kext and use a 64 bit version of VoodooHDA.kext. Mute works as well as line out but the MIC in doesn't work.

 

Thanks for the guide! Excellent work.

 

Will

 

Sounds like your D830 is a similar spec to mine. I switched to using chameleon RC3 which has support for SL but I have used RC2 as well without issue (I'm booting from both harddrive and an emergency USB memory stick).

 

You can rebuild the kext caches using the command

 

kextcache -v 1 -t -m /System/Library/Caches/com/.apple.kext.caches/Startup/Extensions.mkext /System/Library/Extensions

 

change the paths to suit your installation. Also make sure the kexts are owned by root:wheel (cd /path_to_kexts then chown -R root:wheel *). If you are mounting the drive you may need to enable the 'owners' option (mount -uo owners /path_to_mounted_drive) otherwise chown wont do what you expect it too.

 

If you still have a problem, boot into single user mode (-s -v -x32 or -s -v arch=i386 depending on your bootloader the latter being for chameleonRC3).

 

As for the wireless I replaced my intel card with an apple supported card. If your card is not supported I recommend you do the same.

 

As for the internal mic, use the voodohda drivers and install the voodoohda panel. Then go to "system prefs" and use the voodoohda page to change the levels, its either the recording level or the line level input which defaults to zero. Finally you will need to install the voodoohelper and make sure it runs during startup to insure the settings are restored after a reboot.

 

Now, I'd just like to solve the shutdown/sleep problem when using NVkush which is what I'm looking at at the moment.

 

I don't have the battery meter working but I'll look at that in due course.......

Link to comment
Share on other sites

Everything works except the battery meter, so if anyone can figure that out too that would be great. It’s not too much of a problem for me though since I removed my battery and stay plugged in all the time.

 

I'm using this battery meter with SL on my HP Mini.

battery.pkg.zip

Link to comment
Share on other sites

Hi,

 

Thanks for the above two tips. That battery kext works perfectly. Also, using VoodooHDA with the preference panel has got the Mic to work. For the first time in literally two years I am able to have decent volume on the Mic when not using windows. Thanks for the tips guys.

 

Also, I found out that most of my cache/bootloader problems had to do with booting on a usbstick. I installed it on a real hard drive (using MBR with the fix to OSInstall.mpkg to let me use non GUID partitions described here ). Setting ownership on the usbstick was an important thing to get things working too.

 

Random tip: VoodooPower.kext works well to keep the CPU frequency & temperature down.

 

I've got all my requirements met to roll with this and use it full time ;)

 

The only niggling things left:

- Sleep doesn't work

- Shutdown/reboot due to nvidia

- Wireless (I use an external usb thingy, which is fine)

 

Thanks,

Will

Link to comment
Share on other sites

**Step 4** UUID Fix

Open up disk utility, select your SL drive, then click info and copy down the UUID. Open up the PlatformUUID kext in my attachment and replace my UUID with yours.

 

Open the smbios file and similarly replace my UUID with yours.

 

Heya Eric! Thanks for writing such a great guide! One pretty newbie questions but I think it'll be good to clarify as it's not stated, and that is what do we do with the smbios file we edited in Step 4 ?

 

The PlatformUUID kext file gets copied along with the others in the Extensions folder to the Extra folder eventually (as in step 5), and a bunch of kexts from the kext folder are also copied to S/L/E (as in step 6), but that leaves smbios.plist out in the cold... :wacko:

 

Any advice would be greatly appreciated! Thanks again!!

Link to comment
Share on other sites

 Share

×
×
  • Create New...