2011-03-29 Note: What with 10.6.7 having just come out, this guide *might* be out-of-date. I think it's still informative, so I'm not going to state categorically that it's deprecated. How about "Use at your own risk" ?
On a related note, I've been getting PMs now and then, which is cool, but before you PM me (expecting an answer, anyway) keep the following in mind:
- I will not support the G51JX. I don't have one and I don't want to have to keep track of the differences.
- If you are using a "distro", I will ignore you. There are seventy-billion possibilities of screwing up a basic install, depending on how "clever" the distro maintainer is, and there are I don't even know how many distros. Can't keep track of that much crap. That's why I made this guide, and that's why it's written from the p.o.v. of Do It Yourself.
- Also, and I quote myself from below - if your issue is one that you think others might run into, PLEASE, ask in this thread. If nothing else, you're more likely to get an answer from the community at large than from me.
- I've been extremely busy IRL, and I bought myself a 2011 MBP (Core i7 w00t), so I'm not following this stuff as closely as I once did.
NOTE: This guide is not deprecated, but I strongly suggest, once you get 10.6.3 installed, that you update to 10.6.4 using the Combo Updater.
PLEASE, if you have any questions, ask them in this thread. Chances are, someone else has the same question, and answers to those questions will be available to help everyone.
- I discovered, after posting this, that meklorts's PS2 driver is 32-bit only (he has said he will release a 64-bit version at some point), so if you want to run 64-bit (which you can do with this guide on this hardware), you'll have to use something else for PS2. I don't care much about 64-bit, so I'm not going to pursue it, but I vaguely recall that there's a 64-bit VoodooPS2 (according to Ocha888, there is a 64-bit pref pane which works fine).
- For everything to work smoothly, particularly the GTS 360M, you will have to install the MacBook Pro Software Update v1.3 (URL provided). Pay close attention to the install instructions below.
- This was a pain, mostly because of the usual problems with hackintoshing - vague/conflicting/out-of-date/hidden/inaccurate information. It's very hard to tease out the bits and pieces which are both relevant and current. So, in part, this guide is to help me remember how to do this .
- My exact hardware, including PCI-IDs in Windows device manager format, is linked from my sig.
- I've put an entry into the 10.6.3 HCL.
- Original wireless: You'll want to save yourself the pain and order a replacement from eBay or some such. I happened to have a working card laying around which is recognized by SL, so I can't really make any recommendations; keep in mind that the original is a 1/2-height b/g/n, with two antenna connectors. There is room in the chassis for a full-sized card (which is what I'm using). The caveat here is that the full-sized card can't be mounted (i.e. screwed down). Electrical tape is your friend .
- Sleep/Hibernation: Seems like it might work, if I could get proper shutdown - that's where it hangs. See Shutdown comment re: DSDT. (FWIW, hibernation no longer works under Win 7 64-bit; I'm beginning to suspect the 206 BIOS upgrade).
- Shutdown/Halt: Shutdown hangs with a black screen and a steady HDD light, but no sound of HDD activity. Tried every kext and trick known to mankind. May require DSDT chicanery.
Note: if you're testing one of the above (sleep/hibernate/shutdown), and you get a hang on the next reboot before the kernel loads, assuming that you can access the drive in some other way, delete "/private/var/vm/sleepimage" and try again.
- HDMI audio, though I've never really dealt with it before, so I may have done it wrong. In any case, I can't get the ALC663 and HDMI devices to show up at the same time.
- FN keys for volume control: very low priority, not to mention that I don't even know where to start.
- Card reader: update - replacing the DEV_ID in the VoodooSDHC plist works fine, right up until I insert a card Causes all mice (trackpad and USB mouse) to stop working; keyboard works veeeery slowly. Card doesn't mount. I had to powercycle.
- Firewire port, but kext binds without errors (don't care ).
- TurboBoost: Works to the best of my knowledge, based on what I've read elsewhere. AppleIntelCPUPM loads, says "Turbo Ratios 0022", and then the AppleIntelCPUPMClient loads. Those seem to be the indicators that it's working.
- Speedstep: can't ascertain whether this is working or not. All indications are that this requires a (major, complex) DSDT fix.
- SL 10.6.3 / kernel 10.3.1
- Both cores/all threads.
- GFX at native res (1366x768) with full acceleration.
- VGA output.
- HDMI video output.
- Audio - Speakers/Line In/Mic/Mic in. Auto-sense for internal speakers/headphones, auto-sense for internal mic/ ext line in/ ext mic. Correct names in Sound pref pane (requires Info.plist edits which are beyond the scope of this howto). S/PDIF: 10.6.3 - Appears in the Sound pref pane, but doesn't actually work. 10.6.4 - Fully working. You must keep the AppleHDA.kext from 10.6.4 update in place, as well as using VoodooHDA kext.
- Wireless (using replacement mini PCI-E card).
- Ethernet (built-in).
- Keyboard (why do laptop makers insist on using PS2?!).
- Touchpad, with gestures, although it's a little flaky - not nearly as smooth/responsive/well-behaved as on my T60 (although Ocha888 indicates that using VoodooPS2 64-bit gives good results).
- Optical drive.
- FN keys for keyboard & screen backlight.
- eSATA port.
- Battery monitor.
- Screen blank.
- "About This Mac" mostly accurate (I only care if it works; I'm not hung up on it being pretty).
- Platform UUID.
- Time Machine.
- Wireless killswitch (it's a hardwired switch).
- AtherosL1cEthernet for LAN (download "Attansic / Atheros L1C for Snow Leopard").
- meklort's ApplePS2Controller / com.meklort.ps2.helper.plist / SynapticsTrackpad pref pane for keyboard/trackpad with gestures (grab the first three links from DropBox)(Ocha888 indicates that the VoodooPS2 works great for him, with gestures).
- AppleACPIPS2Nub for use with meklort's PS2 (from nawcom.com).
- VoodooHDA for sound (get "VoodooHDA.kext_261_Snow.zip" - you'll also need "VoodooHDA.prefPane_Snow.zip"). There is a wealth of information in that post (and the links from it) dealing with low-level stuff like editing the Info.plist to sort out the codec verbs. I encourage you to read it for yourself (it's waaay beyond the scope of this guide). This is where I got the info to fix device names in the Sound pref pane.
- voodoohdahelper to save mixer settings across reboots; download from here, last link in the first post. It's in the "build/Release" folder of the zip file.
- VoodooBattery for battery info (from nawcom.com).
- FakeSMC which does all kinds of good stuff.
- Empire EFI boot disc v 1.085 R2 - "Empire EFI V.1085 R2 (Experimental Support for AMD Phenom , Athlon and Sempron with SSE3 , and as well as Intel Core i3 , Core i5-M , Core i3-M , Core i7M)". Instructions are at the website. Filename is "EmpireEFI_V1085_R2_AMD_Inteli3i5m.zip".
- AsereBLN_v1.1.9 bootloader (main support thread)
- MacBook Pro Software Update 1.3 for proper Ibex Peak (HM55, Core iX) / sound / NVidia GTS 360M (no hacks needed, just "GraphicsEnabler" = "Yes" in Boot.plist) support.
- DSDTSE - excellent DSDT editor.
I've provided links to all info I used / all files I downloaded.
I'm going to assume a certain level of experience here. I don't have the time (or enough room in one post) to hand-hold everyone on the planet through every installation step. Anything I gloss over/mention in passing is going to be well documented elsewhere and very easily found.
- Grab the latest (206) BIOS from Asus. Don't know if this is important or not, but it's what I'm using, and unless you know of a specific OSX conflict, I'd always suggest using the latest available firmware for anything.
- Your best bet is to install the latest version of retail SL DVD you can find (10.6.3 would be best) onto an external drive, using an existing OSX installation. If you don't have another install already, use the Empire EFI boot disk to kickstart the retail 10.6 DVD install (I've personally test-booted a "vanilla" retail 10.6.3, and a 10.6 from a MBP). Don't forget that SL requires GPT (although I've heard that there is a hack to allow SL to use MBR).
NOTE: After discovering that I'm a bonehead, I figured I should spell out how to use the Empire boot disc in more detail. See post #5 below.
- After install completes: use Empire for 1st boot, watch tacky movie, register etc., install 10.6.3 Combo Update (if you installed from an earlier version DVD). 10.6.3 fixes some issues on this laptop.
- Do the edit to SystemVersion.plist described in this post at netkas' blog. This allows you to install the MBP Update; you won't be able to otherwise.
- Install MBP Software Update 1.3. The vanilla kernel and "GraphicsEnabler" key in Boot.plist (brand new key from the latest Chameleon source; included in Asere's build) didn't work for me until this update.
- Update boot loader. Do it manually; you'll thank yourself later. The instructions are in the bootloader download. I'm using an update of the Chameleon EFI bootloader, AsereBLN_v1.1.9. It auto-probes correct memory info, takes Platform UUID from BIOS, patches DSDT to make restart work without a kext, and patches ACPI V2 FACP PM_Profile's "system-type" (good for laptops), among other things.
- Make your '/Extra' & '/E/Extensions'
- Drop VoodooBattery and FakeSMC into '/E/E'.
- Drop Atheros and AppleACPIPS2Nub kexts into '/S/L/E'. I couldn't be bothered to arse around with making the other kexts work from there by doing up an mkext; it's not like Apple is going to overwrite the Atheros or VoodooHDA kexts with an update, and there's always USB if the PS2 kext stops working. (If you're really picky, look into the kextcache command and make a cache to put into /Extra. Don't forget to use the flags to include dependencies, and don't be surprised if sound and PS2 still won't work).
- Install VoodooHDA:
- Drop the kext into '/S/L/E'.
- Remove or rename AppleHDA.kext (if you do the 10.6.4 update, do not do this step).
- Double-click the pref pane to install.
- Put "voodoohdahelper" in '/usr/local/bin'.
- Put the attached file "org.voodoo.driver.voodoohdahelper" in '/Library/LaunchAgents'.
- Drop the kext into '/S/L/E'.
- Install meklort's PS2 stuff using these instructions.
- Drop your DSDT.aml into /Extra. Using DSDTSE, apply the following fixes:
- 01.Method DTGP - Crucial! You *must* have this for (some of) the other fixes to work!
- 02.HPET fix: fixes AppleIntelCPUPM (NullCPUPM. not needed).
- 35.SBRG/LPCB Lower temperatures hack (our DEV_ID=3B09h; it's is already in AppleLPC.kext): lowers temps when using native SpeedStep.
- 42.FN button hack: works, but not for sound.
- 03.RTC fix: not needed (known to break sleep, but apparently not on this HW/OS?).
- 06.Time machine fix: not needed.
- (FYI, I also used some fixes for compile warnings without breaking anything, so they're safe.)
- 01.Method DTGP - Crucial! You *must* have this for (some of) the other fixes to work!
- Put "MacBookPro6,1" in smbios.plist (this is actually important, for various reasons), along with whatever else you usually use, but remember that the AsereBLN will handle memory identification.
- Put "GraphicsEnabler", "system-type", and your other favorite stuff in Boot.plist.
- Replace "IOPCIClassMatch" key/string with "IOPCIMatch", "0x3b568086" in VoodooHDA.kext's Info.plist. That's the specific DEV_ID/VEN_ID for the Intel HDA controller. SL already sees/knows about the ALC663.
- Hopefully I haven't forgotten anything... .
- Cross fingers and reboot.
Edits: I do them in-line and note them here. I realize it's a little bit of a pain if you're coming back after reading through already, but it keeps all the info in one post for new people. I try to be explicit about what I've changed so it's not too hard to find.
edit 2010-05-29: removed note to moderators, added note about meklort's PS2 being 32-bit only, added results of S/PDIF testing, note about shutdown.
edit 2010-06-02: update for sleep, shutdown, card reader, VGA, NullCPUPowerManagement/AppleIntelCPUPowerManagement, Turboboost/Speedstep, add note about kextcache.
edit 2010-06-03: add link to DSDTSE, info re: DSDT fixes applied.
note 2010-06-03: tried new fakesmc from mozo/slice/gyk with monitoring plugins - complete phail, but at least no KP.
edit 2010-06-04: update info on audio ins/outs auto-sense, S/PDIF completely moved to "Not Working", audio in/out names problem added. Results from HDMI testing. Working multi monitor output added. Minor edits and formatting.
edit 2010-06-07: thanks to nfshp253 - clarified Empire/1st boot info, added note for Empire instructions, clarified "GraphicsEnabler" Boot.plist key info, note explaining the reason for editing SystemVersion.plist (can't install MBP Update without it). Edit regarding edits . Fixed FakeSMC link. Add link to 10.6.3 HCL.
edit 2010-06-12: Attached DSDT.aml dumped from Ubuntu live disk, on request.
edit 2010-06-16: Added "Method DTGP" to DSDT fixes. Thought everyone knew about that one Note about hibernation breakage under Win 7. General edits/cleanup/clarification. Correct sound device names added to "working" section. Remove reference to meklort's PS2 fixing FN keys - this is actually done through DSDT. Duh. Note on recovery from failed sleep/hibernate/shutdown. Rewrote Turboboost note - afaict it works. Rewrote Speedstep note. Revised note on touchpad; can't get good settings for it - it's just twitchy. Better link to MBP install hack.
edit 2010-06-17: Due to unbelievable stupidity on my part, I got the entire Empire EFI bit wrong. Fixed, and a post added to better explain its use.
edit 2010-06-19: S/PDIF now works - with 10.6.4. And.. um... the stock AppleHDA kext is in place. Along with VoodooHDA. Freaky. Left S/PDIF in "not working" section as technically it doesn't work under 10.6.3.
edit 2010-07-13: Updates from Ocho888's post re: VoodooPS2, VoodooHDA 64-bit. Changed topic and title to "10.6.3/10.6.4", as 10.6.4 seems to be a good update which fixes at least one issue. Moved S/PDIF to "Working" section, with the caveat that 10.6.4. is required.