Here's what I've figured out so far on getting OSX working on the dell studio xps 1340, aka dell studio xps 13 under Snow Leopard.
Working "out of the box":
- gig-ethernet, usb, firewire, sata
- system suspend
- touchpad as mouse
- webcam (video only), video capture verified with photo booth application
- bluetooth in HID mode (think dumb mouse)
- Dell 1515 802.11 wireless (note: Atheros driver is 32 bit only)
- Dell 1510 802.11 wireless, in some alternate configurations; also works.
- GeForce 9400M G graphics with quartz extreme, external HDMI/VGA/display port
- Built-in speaker, headphone jack, internal mic (without volume control), hotkey volume/mute controls
- Intel speedstep
- Touchpad gestures, and working touchpad after resume with modified version of voodoo team's Voodoops2controller
- battery status & suspend on lid close
- Bluetooth in HCI mode (full functionality)
- Gain for built-in digital mic, mic-in jack
- SLI with 9500m video
- SD flash card. I've tried VoodooSDHCI, but I just get an 'VoodooSDHC: no response from CMD_8 -- ComInhibitCMD" error upon card insertion, and the system hangs.
For basic installation, there are snow leopard install guides sprouting up all over the place. I've yet to see a comprehensive guide, but I have the following install recommendations.
- I'm not sure if this is necessary but... Before upgrading an existing install, you can setup your /Extra/smbios.plist so that the model name isn't genuine (parts of the installer look at this; I'm not sure if leaving the model set to MacbookPro4,1 causes failure or not, but it seems to cause issues...) I use: smbios.plist.v2.zip 423bytes 1179 downloads After installing this file, reboot & verify that system profiler has 'Model Identifier:' set to "Studio XPS 1340". (Later, after the 10.6 install place a copy of smbios.plist into your 10.6 /Extra partition as well.)
- Some guides recommend installing extra hackintosh kexts including: NullCPUPM, PlatformUUID. The only kexts necessary for booting snow leopard on this platform are one to defeat the runtime DSMOS check and one to provide a usable keyboard+mouse. For the former, the only kext supported as of 10.6.2 is netkas's fakesmc . Netkas's 2.5 version for snow leopard is available here: fakesmc.kext.2.5.zip 30.18KB 99 downloads The keyboard kext is detailed below.
- If you care about having an MBR partitioned disk (fairly important if you also want linux or windows to be able to deal with partitioning changes on the disk), you'll need a modified OSInstall binary that stops mandating a GUID partitioned disk. There is a patched version here. (Choose the version to match the version of your install dvd.) Replace the version in /Volumes/Mac OS X Install DVD/System/Library/PrivateFrameworks/Install.framework/Frameworks/OSInstall.framework/Versions/A/OSInstall (on your snow leopard dvd or usb/flash/esata based install drive). This change is unnecessary if you are happy with GUID partitioned disks.
Start with an OSX 10.6 or 10.6.3 retail DVD, or a copy you've made onto a dual layer dvd, or usb thumb drive or usb disk drive. For a usb based install (this is the method I tested):
- setup a usb thumb drive or disk drive, with an hfs+ partition to install on (the destination partition),
- run disk utility
- right click on destination partition, select restore
- select 10.6 dmg file as source
- select destination partition again
I have pre-built a boot132 iso, available here http://www.mediafire...php?4jmikzkmzuz
Boot system from cd
Watch 4 "EBIOS read error: Device timeout" error messages pass by, followed by startup of chameleon
Press F8 to start chameleon graphical menu (or let it timeout for same effect)
From chameleon graphical menu, select "Mac OS X Install DVD", or swap in the vanilla install DVD and boot from that
As bootstrap begins, watch 4 more EBIOS read errors pass by
MacOS installer runs with graphical window
unselect printer support->nearby and popular printers
Let install complete
Go back and boot from CD again
this time select your newly installed 10.6 distro
You may now complete the configuration of your 10.6 system as described below
Post-install configuration - platform specific details
Once you've installed 10.6, probably the first thing to do is to insure that you have a hackintosh bootloader installed (Chameleon 2.0 or Netkas pci-efi v10.x).
Then you can proceed to install the rest of my changes to get platform specific components working fully. For the case where you don't have a fancy multi-boot setup to worry about, probably the easiest bootloader setup is to use the chameleon installer, the newest seems to be named: Chameleon-2.0-r431.pkg.zip
Note however that you will need to update your /boot to at least the chameleon 2rc4 version in order for 'About this mac' to identify the CPU as a core 2 duo.
I have not used the above installer myself as I do have a complex multi-boot setup for which I don't trust beta installers to do the right thing. I simply used the 3 install commands (which are detailed in chameleon's doc/README under "Normal Install") to install chameleon manually.
I recommend that all kext additions you make be installed in /Extra/Extensions. As I add or make changes to /Extra/Extensions, I use the following commands to keep its cache up to date
rm -f /Extra/Extensions.mkext /Extra/Caches kextcache -m /Extra/Extensions.mkext /Extra/Extensions
As of 10.6.2, all system kexts support both 32&64 bit mode. In any case, I recommend 32 bit as a starting point, as genuine macs use 32 bit mode. So I recommend editing /Library/Preferences/SystemConfiguration/com.apple.Boot.plist and adding arch=i386 -v to the Kernel Flags string. Result: com.apple.Boot.plist.zip 403bytes 1177 downloads
For working keyboard and touchpad, I recommend my compiled version of the VoodooPS2 kexts, here My version is the stock 0.98 version plus 64 bit support, and the keyboard enhancements posted over here http://forum.voodoop...opic,304.0.html, and my fix for the touchpad over here http://forum.voodoop...00.html#msg2300
For working quartz Extreme & core image (QE/CI), install my modified DSDT.aml to /Extra/DSDT.aml (note that filename case matters to the boot loader here). I have several versions of my modified DSDT.aml to choose from.
- For Dell A06 BIOS (A06, A07 and A08 BIOS have identical DSDT). dsdt.zip 47.7KB 863 downloads
- For A11 BIOS dsdt.a11.zip 48.7KB 427 downloads
- For A14 BIOS dsdt.a14.zip 80.45KB 1185 downloads
For working IDT audio, the above DSDT.aml includes EFI strings to point AppleHDA in the right direction, but you'll also need the following kext plist to set up a working pin configuration for the codec. hdaidt.kext.v4.zip 7.42KB 1852 downloadsYou can then verify working audio by going to the sound effects tab and trying something. Both 1/8" output jacks works as a headphone jacks, with proper headphone jack detection (mutes speakers when jack inserted), except that the right jack mutes the left if you try to use both. Thanks to boombeng for getting the right jack working (and ridgeline/boombeng for their earlier IDT work). Special thanks to the king, master chief, madtux for their work deciphering the applehda pinconfig/pathmap maze.
Update: As of 10.6.3, you must also patch AppleHDA in order for the audio codec to be recognized. Patch program is here: patch_hda.v5.zip 1.19KB 343 downloadsRun from a terminal window to patch your AppleHDA. Re-run this patch program when upgrading to 10.6.[4-8].
Intel speedstep seems to be working out of the box with the modified dsdt. Since appleintelcpupowermanagement handles the stepping, cpu-x will not correctly report the current multiplier or voltage. cpu-x will stay stuck at the max. multiplier for your cpu.
For working CPU halt/restart, there is the snow leopard build of OpenHaltRestart: here
For battery status and system sleep upon lid close, there are changes in the above DSDT.aml for that , but you also need
- the ACPI Embedded Controller to load properly. Turns out a bug in AppleACPIPlatform was causing the embedded controller (AppleACPIEC) to fail to load, I've made a patch to AppleACPIPlatform to fix that. Attached.
464 downloads. So far my installer supports snow leopard versions 10.6 thru 10.6.6. There is no need to re-run this package update when upgrading from 10.6 to 10.6.1 or 10.6.2, but you do need to re-run this patching installer when upgrading to any of the later versions (thus far).
- VoodooBattery, for the battery icon
After the first resume from suspend, the firewire controller loses its GUID. This gets logged over&over and the logging keeps the system from suspending (I know, poor OSX implementation of idle status, but...). You can see that the logging is the problem by turning off syslog (you'll see that fixes it). I have two workarounds for this problem.
#!/bin/bash sle=/System/Library/Extensions/IOFireWireFamily.kext/Contents/PlugIns mv $sle/AppleFWOHCI.kext $sle/AppleFWOHCI.kext.goodWhich avoids the problem.
- Another choice is to use hibernate instead of suspend.
pmset hibernatemode 1When the system resumes from hibernate, firewire is broken just as in the suspend case, but no errors are logged.
There are reports that for the TS-T633A model of optical drive to work with OSX you need to use the DW10 firmware for some reason:
I could really use some help on the non-working components! Such as:
- For 9500m, maybe someone could figure out how to get SLI video working. The OSX drivers may not be able to handle SLI at all but it's not clear whether or not that's really true.
- For audio, it'd be great if someone could figure out the fix to the pathmap/pinconfig to allow the analog&digital mics to fully work.
- The firewire GUID problem mentioned above. The workaround in 10.5.x of unloading/reloading the AppleFWOHCI.kext to fix this no longer works as that kext can't be unloaded.
- Someone could work with zef to help figure out why his SDHC driver doesn't work with the ricoh SD card controller on this system