Jump to content
bcc9

OSX 10.7, 10.8 and 10.9 on the Dell XPS 1340 laptop

321 posts in this topic

Recommended Posts

First here is some general information on setting up a 10.7, 10.8 or 10.9 boot partition:

  • Mount 10.7, 10.8 or 10.9 image (the OSX InstallESD.dmg image found within the OSX installation bundle you downloaded from Apple's app store)
  • open /Volumes/*OS X Install ESD/BaseSystem.dmg
  • Run Disk Utility
  • select 'Mac OS X Base System' or 'OS X Base System', depending upon OS version (found at lower left of Disk Utility window)
  • select restore
  • select 'Mac OS X Base System' or 'OS X Base System', depending upon OS version, as source (should already be selected)
  • select a partition on disk drive or usb thumb drive as destination, where partition has >= 5GB of space
  • Click restore button
  • Once the restore has been performed, from a terminal window:

    cd /Volumes/*Base\ System\ 1
    rm System/Installation/Packages 
    cp -R /Volumes/*Install\ ESD/Packages System/Installation/Packages
    Where "/Volumes/*Base System 1/" is the name assigned to your newly restored thumb drive partition, your name may be different here. Additionally you need to install mach_kernel, the procedure for which depends upon the OS version. For OSX 10.7, OSX 10.8:

    cp -R /Volumes/*Install\ ESD/mach_kernel ./
    For OSX 10.9, you can extract the mach_kernel from the installation package:

    cd System/Installation/Packages
    pkgutil --expand BaseSystemBinaries.pkg x
    pax -0jr < x/Payload ./mach_kernel
    mv mach_kernel ../../..
    rm -rf x
    
  • Install current chameleon to your existing osx boot disk, or the partition you just set up above (/Volumes/*OS X Base System 1), or any other disk partition you can boot from. For chameleon, I recommend version 2254 or later (to include OSX 10.9 support). Current builds are discussed here: http://www.insanelym...howtopic=231075Download link here:http://www.insanelymac.com/forum/files/file/59-chameleon-22-svn/
If you are installing to a GPT partitioned disk, you don't have to patch OSInstall for MBR support. Otherwise, patch it or pick up a pre-patched version for the exact version of OSX you are using.

 

On the partition you installed chameleon, you will at the very least need netkas's fakesmc Version 4.2 is here:

FakeSMC.4.2.zip from https://github.com/C...keSMC/downloads

If you're using a system with a built-in, non-usb keyboard (for example, a laptop keyboard), VoodooPS2Controller is mandatory as well. Here's the version I built for 10.6 (still works with 10.7): VoodooPS2.zip

Install fakesmc, VoodooPS2Controller in /Extra/Extensions

You will also need an smbios.plist and org.chameleon.Boot.plist in /Extra

1340 specific example versions of these plists can be found below.

 

At this point you should be able to boot chameleon, point it to your newly prepared lion install media, and proceed with an install. When you boot lion for the first time after installing, boot again via your new chameleon boot partition. The system should boot without the UseKernelCache=Yes option, and so chameleon will pick up your modded kexts from your existing /Extra partition. At this point you can copy over the modified kexts to /System/Library/Extensions and then add <key>UseKernelCache</key> <string>Yes</string> to your org.chameleon.Boot.plist. With UseKernelCache enabled, the system will boot faster but not pick up kexts from /Extra/Extensions.

 

Moving on to 1340 specific information...

 

For the 1340, other components you will need to complete your hackintosh configuration:

  • For working battery status, LID close detection, you will need
    • A modified DSDT dsdt.v8.zip Use the included dsdt-check.pl script to select which .aml file to install in /Extra (see readme.txt). If your system's address space is unusually, you may have to build your own DSDT.aml from the patched .dsl file generated by the script.
    • My patch fix for AppleACPIPlatform AppleACPIPlatform.mcp79.v3.0.pkg.zip
    • A battery monitoring kext, such as voodoobattery http://forum.voodoop...hp?topic=1092.0
  • smbios.plist and org.chameleon.Boot.plist plists.v4.zip Install these in /Extra

    Some notable values

    • I've set the product name to MacBookPro5,5. This setting is important if you use the AGPM graphics power level injector described later on.
    • I've set SMmemtype; this is the only DIMM memory attribute that is not automatically obtained from the system's SMBIOS (the memory type, speed, etc).
    • You need npci=0x2000 under kernel flags to avoid losing console output during boot after the "PCI Configuration begin" message appears.
    • As of 10.7, you should have a SystemId defined as the 1340 doesn't have a UUID defined in its SMBIOS and booting hangs for a minute or so without it. I recommend you customize the template value I provided with the output from uuidgen (run from a terminal window).
    • PS2RestartFix allows halt&restart to work without a separate kext such as OpenHaltRestart.
  • For bluetooth with HCI, I've written a driver that enables HCI mode, an installer is available here
  • For working built-in audio, here is my pkg installer that takes care of all 3 parts to patching AppleHDA AppleHDA.idt.v3.pkg.zip This package installer
  • To fix the CMOS reset issue described in this thread, you must patch AppleRTC.kext. For 10.7, use the patch from post #340:

    sudo perl -pi -e 's|\x75\x30\x44\x89\xf8|\xeb\x30\x44\x89\xf8|; s|\x75\x3d\x8b\x75\x08|\xeb\x3d\x8b\x75\x08|' /System/Library/Extensions/AppleRTC.kext/Contents/MacOS/AppleRTC
    
    For 10.8

    sudo perl -pi -e 's|\x75\x30\x89\xd8|\xeb\x30\x89\xd8|' /System/Library/Extensions/AppleRTC.kext/Contents/MacOS/AppleRTC
  • For 10.9

    sudo perl -pi -e 's|\x75\x2e\x0f\xb6|\xeb\x2e\x0f\xb6|' /System/Library/Extensions/AppleRTC.kext/Contents/MacOS/AppleRTC
  • For graphics power throttling (saves roughly 6 watts of power when GPU is idle), use my injector (based upon oleg/king's work): 10.7 version: 9400m_gstate_inject.kext.zip 10.8 version: 9400m_gstate_inject.kext.10.8.zip

    As of 10.8.3, I don't believe 9400m_gstate_inject works at all (screen goes black and system locks up at the point where the nvidia graphics starts up)

Share this post


Link to post
Share on other sites
Advertisement

Workarounds, issues are detailed here

  • There are reports that for the TS-T633A model of optical drive to work with OSX you need to use the older DW10 firmware for some reason:
    http://www.insanelymac.com/forum/index.php...t&p=1432060
  • 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.
    1. From a terminal window:
      sle=/System/Library/Extensions/IOFireWireFamily.kext/Contents/PlugIns
      mv $sle/AppleFWOHCI.kext $sle/AppleFWOHCI.kext.good


      Which avoids the problem.

    2. Another choice is to use hibernate instead of suspend.
      pmset hibernatemode 1

      When the system resumes from hibernate, firewire is broken just as in the suspend case, but no errors are logged.
       
      I'm not sure how to disable encrypted sleepimages under 10.7 so this may not be a viable option. The 10.6 fix of configuring system preferences->security, uncheck 'Use secure virtual memory' to allow resume from hibernate no longer shows up as an option under system preferences. And so, when chameleon attempts to resume from hibernate, it errors out with "Incorrect image signature". Anyone?

Share this post


Link to post
Share on other sites

When i try to run the patch on mine it says wrong AppleACPIPlatform version im running 10.7.2 ,,,can you upload the orignal so I can add it then run the patch for my lenovo ideapad to get the batt gauge working,,,,thanks

Share this post


Link to post
Share on other sites

Alrighty then.

 

First off, I just wanted to thank you, bcc9, for this excellent tutorial. I've been following your posts ever since the OSX 10.5 Leopard installs for the 1340, and I've always been happy with a single-sourced list to follow. Kudos for your commitment, especially given your new Mac and all.

 

Some notes: I've followed all of your instructions to a T, and everything went well up until the post-install modifications. However, AppleACPIPlatform did not seem to patch properly, and I once again got a [PCI Configuration Begin].

 

After manually setting a bootflag DSDT=no (it did the trick), I am now running a mostly-functional Lion install, without the obvious good parts of the DSDT, namely proper battery, lid close and sound. I'll see if upgrading to 10.7.2 resolves matters, and I'll update this post as I work forward.

 

Edit: Upgrading 10.7.2 didn't change a thing. Next step is going to either be figuring out why the provided patch sn't working in my case, or to revert to an earlier DSDT than a14 lion v1.

 

Edit 2: Somehow, sound is now working, including speakers, microphone and both ports. I did absolutely nothing besides rebooting it a few times, but YAY!

Share this post


Link to post
Share on other sites

When i try to run the patch on mine it says wrong AppleACPIPlatform version im running 10.7.2 ,,,can you upload the orignal so I can add it then run the patch for my lenovo ideapad to get the batt gauge working,,,,thanks

When I upgraded to 10.7.2, my AppleACPIPlatform was unchanged from 10.7.1, and so my patch continued to work just fine. I used the standard MacOSXUpdCombo10.7.2.dmg to upgrade. Sounds like your AppleACPIPlatform is already modified or you are using some different version of 10.7.2 (a platform specific distribution?) . What is the version number of your AppleACPIPlatform?

In any case, my patch package would have popped up a diagnostic window with details, and advising you to cut&paste those details if you had a problem...

 

First off, I just wanted to thank you, bcc9, for this excellent tutorial. I've been following your posts ever since the OSX 10.5 Leopard installs for the 1340, and I've always been happy with a single-sourced list to follow. Kudos for your commitment, especially given your new Mac and all.

Thanks!

Some notes: I've followed all of your instructions to a T, and everything went well up until the post-install modifications. However, AppleACPIPlatform did not seem to patch properly

Why do you say that, what error did you get from the installer, or did it say it installed successfully?,
and I once again got a [PCI Configuration Begin].

If your boot output stopped after displaying "PCI Configuration Begin" then I think you didn't use the org.chameleon.Boot.plist I provided.

Edit 2: Somehow, sound is now working, including speakers, microphone and both ports. I did absolutely nothing besides rebooting it a few times, but YAY!

My AppleHDA installer does require a reboot, displaying the standard "Click restart to finish installing the software", with the reboot button. You won't have sound until rebooting, and this package needs to be re-run after upgrading to 10.7.2 as AppleHDA is modified by the upgrade.

Share this post


Link to post
Share on other sites

Unrecognized version of AppleACPIPlatform.

Either AppleACPIPlatform is already patched, or this script does not support

the version you have installed.

Your OS version is: System Version: Mac OS X 10.7.2 (11C74)

Your kext's md5 checksum is: 3cd7b9e30621b8a7e7fa60f62c18e4bd

If you wish to report a problem, please cut&paste these system details.

 

Here is the error i get , so it may be moded already but i don't have an original to go back to so i can try your mod.

Share this post


Link to post
Share on other sites

Your kext's md5 checksum is: 3cd7b9e30621b8a7e7fa60f62c18e4bd

Hmm, I just checked 3 of my machines running 10.7. They all have the same revision of AppleACPIPlatform, but all 3 are slightly different binaries. They all differ by the LC_UUID value that is built-in to the binary, and nothing more.

This is surprising since the LC_UUID is documented to just be an md5 checksum.

 

In any case, this is breaking my packaging that is doing its own md5 checksum to insure correct kext versions.

 

I'll have to rework my patch script.

Share this post


Link to post
Share on other sites

I'll have to rework my patch script.

Ok, I've updated post #1 with a fixed installer: AppleACPIPlatform.mcp79.v1.8.

The new version doesn't checksum your kext anymore, but it still sanity checks the patch to make sure it's patching the expected code.

Share this post


Link to post
Share on other sites

Hello !

I'm a French user with a bad english, i'm sorry.

I have installed Lion on my laptop XPS1340 with great bcc9 tuto's and i want to thank you !

Previously i have installed 10.5.7 with your tuto too.

 

But with Lion, i have the same problem like bfbruin when i put DSDT.aml A14.Lion.vi in my Extra folder ... and i use your modified org.chameleon.Boot.plist, at startup, osx freeze at [ PCI Configuration Begin ].

I have try (like bfbruin) to upgrade Lion to 10.7.2 but it didnt change anything with DSDT, without, i can boot but with no sound, no battery status, ...

 

I have verified the org.chameleon.Boot.plist contain npci=0x2000 flag.

 

Do you have an idea ? I have installed your AppleACPIPlatform 1.8 and reinstall AppleHDA after upgrade 10.7.2.

 

Otherwise, all my components work properly (gig ethernet, wifi, webcam, ... i think gfx too ...)

 

Thank you.

 

PS : I have A15 Bios, is it bad ?

Share this post


Link to post
Share on other sites
Ok, I've updated post #1 with a fixed installer: AppleACPIPlatform.mcp79.v1.8. The new version doesn't checksum your kext anymore, but it still sanity checks the patch to make sure it's patching the expected code.

 

Awesome! So the good news is that with 1.8 AppleACPIPlatform patched successfully, and made me jump for joy. I even ran the patch again, just to see the error message proving my kext had been patched.

 

Unfortunately, I'm still unable to get past having to use DSDT=no to get past the [PCI Configuration Begin], meaning that my remaining issues (and although I have working sound, apparently those of Dual_Shock) are with relation to the DSDT. I overlooked the fact that I too am operating off of A15 BIOS, which might explain why a14.lion.v1 is unable to work for either of us.

 

Having said this, your patch has changed at least one thing: opening the lid now wakes from sleep, albeit only after manually putting the computer to sleep and closing the lid. I'm perfectly fine without lid-sleep or battery, though the resolution of those two (presumably via a different DSDT?) would be a cherry on top of the cake you have thus far made from scratch, baked, layered, decorated, iced, sliced, and served. I should also mention that I have been using the org.chameleon.Boot.plist you provided, with the output of uuidgen; I know Chameleon has been accessing it due to my aforementioned Kernel Flag modification, the only thing I've changed about it.

 

 

UPDATE: Out of absolutely nowhere, I now have lid sleep. This is really, really weird, in the same temporally-activated vein as my sound. I'm not exactly sure what happened, I only noticed it when I was changing my 6-cell battery to a 9-cell battery while plugged in. All that's left is Battery Status, and I think we're good.

Share this post


Link to post
Share on other sites

Awesome! So the good news is that with 1.8 AppleACPIPlatform patched successfully, and made me jump for joy. I even ran the patch again, just to see the error message proving my kext had been patched.

Great, looks like this is working fine for everyone now.

Unfortunately, I'm still unable to get past having to use DSDT=no to get past the [PCI Configuration Begin], meaning that my remaining issues (and although I have working sound, apparently those of Dual_Shock) are with relation to the DSDT. I overlooked the fact that I too am operating off of A15 BIOS, which might explain why a14.lion.v1 is unable to work for either of us.

So that makes 4 of you that have reported hanging after "PCI Configuration Begin" with 10.7, but I don't see enough information to tell what is going wrong. My 1340 with 9400m and a14 bios is working fine, and Big Cat's 1340 with 9500m is working fine too. a15 vs a14 bios might be the relevent piece, I never went to a15 on my laptop, but oleg reported that a14&a15 had the same dsdt anyways: http://www.insanelym...dpost&p=1704376

 

Would be nice if someone who is experiencing problems could narrow this down a bit by trying to load vanilla a14 & a15 DSDTs with chameleon. Assuming those work, the DSDT patches could be applied 1 at a time to figure out which patch is leading to a hang.

Share this post


Link to post
Share on other sites

Thanks for updating the script it did install this time on my lenovo y460 but still the vooodo battery kext will not work unless I use a old version of AppleACPIPlatform. I am getting {censored} battery life on a good battery usually only last a hour in windows will last 3 . could running a old version of AppleACPIPlatform be causing this ...any opinions

Share this post


Link to post
Share on other sites

Thanks for updating the script it did install this time on my lenovo y460 but still the vooodo battery kext will not work unless I use a old version of AppleACPIPlatform. I am getting {censored} battery life on a good battery usually only last a hour in windows will last 3 . could running a old version of AppleACPIPlatform be causing this ...any opinions

You do also need a dsdt that has been fixed for 10.7 - 8-bit IO on the battery access methods. See: http://www.insanelym...dpost&p=1773726

 

For battery life, you need to see if your CPU is throttling and also the GPU (the AGPM patch in post #1).

I try to never mix&match kext between osx versions but I suspect your problems are instead due to what I just mentioned.

Share this post


Link to post
Share on other sites

For information, i tried to downgrade my BIOS to A14 successfully ... but it didn't change anything with DSTD A14 or DSDT A14 Lion V1.

So then I still recommend trying the vanilla DSDT, then a DSDT with just patch #0, then with patch #0, and so on until you find which patch causes problems and or whether simply loading any dsdt is causing problems.

Share this post


Link to post
Share on other sites

I've edited post #1 to clarify the terminal commands regarding the setup of the 10.7 boot partition. I used to say "/Volumes/Mac OS X Base System" but the correct name is likely to be "/Volumes/Mac OS X Base System 1/". If you got it wrong your terminal commands should have failed with errors.

Share this post


Link to post
Share on other sites

Hi there, sorry for the queries but I was just wondering if you could help me with a problem I am experiencing with the new A14 lion DSDT.

Whenever this is implemented my boot gets stuck on the RTC: ram (128) line followed by the line 'PF' - not sure that means anything, thought I would post it anyway.

I have tried a extract of a 'vanilla' DSDT and booted with that no problem, however I am unsure as to how I would go about implementing the patches for my graphics driver and the battery recognition. I'm using an XPS 1340 also so i'm unsure why I am experiencing these problems as I have followed these instructions a few times on separate installations.

 

Cheers

Share this post


Link to post
Share on other sites

Hi All, first up i'd like to thank you so much bcc9 for all your excellent work and guides for this laptop

 

Following this guide I experienced hangs at "PCI configuration begin" as some others have, related to the DSDT. I'm using BIOS A14.

 

Without the DSDT I was able to get a useable system with the 9400m correctly detected but found that VGAout does not work (system hangs when 2nd monitor plugged in)

 

I need to use VGAout for performances this weekend so have temporarily gone back to windows, but next week I'll have time to really investigate this, I will be happy to apply patches one by one to the vanilla DSDT to try and track down the problem.

 

My burning question is, does VGAout work reliably for people who have followed this guide? Need it to be rock solid and able to plug different monitors in with no crashes..

 

Many thanks,

Tom.

Share this post


Link to post
Share on other sites

Hey everyone, I'm sorry to report I just realized that I had a packaging error with dsdt.a14.lion.v1.zip. The package contained the edited .dsl for lion, but the compiled file was still the old snow leopard version. It's too bad none of us noticed this (even though the .aml file was much older than the .dsl).

 

This likely explains everyone's problems with battery status and hanging during boot.

 

I've put up a new version to correct this - dsdt.a14.lion.v2.

The zip file also includes the details of each of the 10 edits.

I have not yet had a chance to test this .aml on my old 1340; don't have access to it at the moment.

Share this post


Link to post
Share on other sites

The DSDT file gets stuck at the PCI Configuration Begin again, although I can't get ed working to apply the patches to any .dsl files, it just either gives me a ? or 357599 as the output. Same results when entering the ed commands manually from the patch files.

Share this post


Link to post
Share on other sites

The DSDT file gets stuck at the PCI Configuration Begin again, although I can't get ed working to apply the patches to any .dsl files, it just either gives me a ? or 357599 as the output. Same results when entering the ed commands manually from the patch files.

I just got access to my old 1340 again, and the new DSDT.aml is working on it just fine for me. So I'm still at a loss as to why folks are having problems.

As for ed, looks like the OSX version is not parsing the comments as expected (as it works in the gnu version used by linux distributions). But this avoids that issue:

% tcsh
% cp orig.dsl fixed.dsl
% foreach i ( ed* )
foreach? echo $i
foreach? grep -v '^#' $i | ed - fixed.dsl
foreach? end

Share this post


Link to post
Share on other sites

Ok, for your debugging pleasure, here is a set of incremental aml files to try.

orig.aml is the original DSDT from a14 bios

ed1.aml is the DSDT with edit #1

ed2.aml is the DSDT with edit#1+edit#2

...

ed9.aml is the DSDT with all 9 edits.

I renumbered the edits a bit so that they would all compile incrementally (well except ed7).

 

You can install all the .aml files in /Extra and boot with DSDT=filename, for example DSDT=ed1.aml

This should make troubleshooting easy for those who are having hanging problems.

dsdt_debug.zip

Share this post


Link to post
Share on other sites

I've also updated the dsdt bundle in post #1 to v3, so that it matches the above debug edits, fixes the patch script for OSX, and address a problem with patch #9.

Share this post


Link to post
Share on other sites

Sorry, bcc9.

 

I tried DSDT.aml from v3, and then attempted to troubleshoot via orig.aml and ed1-6, 8 and 9. (ed7.aml was not in the zip files, though it was there as a dsl.)

 

None of them worked to get past [PCI Configuration Begin]. Only DSDT=no got it to the usual booting state of bridges 8 devices 22, followed by bridge 4 device 1 cardbus 0 and so forth.

 

Maybe I should roll back to A14 like Dual_Shock?

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.

×