Contribute
Register

[Guide] Dell Precision M6600 w/ FirePro M8900

Status
Not open for further replies.
Joined
Jul 25, 2013
Messages
448
Motherboard
Asus X99 Deluxe
CPU
E5-2697v3
Graphics
RX 580
Mac
  1. iMac
  2. MacBook
  3. MacBook Air
  4. MacBook Pro
  5. Mac Pro
Classic Mac
  1. iMac
  2. Power Mac
  3. Xserve
Mobile Phone
  1. Android
  2. iOS
Dell Precision M6600

Device Specs:
CPU: i7-2760QM @ 2.4GHz
GPU: Dedicated AMD FirePro M8900 (Radeon 6970M)
WiFi/BT: AzureWave Wireless AC & BT 4.0 mPCIe Card

PrecisM6600.jpg
Device Specific Notes:
Please note that this is the installation procedure for my Precision M6600, which includes an AMD FirePro M8900. Many of the post-installation notes are specific to my machine, but may work with yours. Please note that this guide is not for Quadro cards or any other GPUs, though there are reports that they work under some systems. This guide also does not utilize the built in HD3000 GPU, though it is possible to run the Precision off the HD3000 GPU and there are many reports that it does in fact work fine in OS X.
Also, please note that I am booting using Legacy Clover rather than standard UEFI Clover. This is because of a UEFI bug in my specific machine. I am sure that UEFI Clover works fine, but this guide will outline the Legacy Clover procedure. This guide is for OS X Yosemite – older versions or newer versions of OS X may be possible, but are not covered by this guide.

Note: UEFI installation is vey straightforward. Simply use a standard Clover install with Osxaptiofixdrv-64.efi following RehabMan's basic guide and the files & edits here. I've successfully installed OS X on a separate M6600 using a UEFI installation.

EDIT: 5/10/16 - I've found that UEFI installation is possible, but not sustainable. It seems that Clover throws the UEFI portion of the M6600 BIOS for a loop after a while, and therefore I will continue to recommend booting with Legacy Clover and keeping OS X on the MiniCard SSD. The reasoning for this is because with more than one "Internal HD" installed (2.5 inch drive) the BIOS often gets confused after making Clover edits (config.plist change, Clover revision update). Therefore, keeping OS X on the MiniCard SSD seems to resolve this issue, as only one mSATA SSD can be present in the system. This is a tradeoff, as the mSATA slot only runs at 3Gbps, but it saves a lot of headache when your BIOS "can't find" a bootable device.

Preparations:
If you have Windows installed on your Precision M6600, fantastic. This machine is great for multiple systems, as it has support for up to 4 different hard drives. This guide will not cover dual booting off the same drive; it is recommended that OS X and Windows live on separate hard drives. I have found that it is significantly better to have OS X exist on the mSATA SSD rather than on one of the Internal HD slots as my BIOS freaks out sometimes and loses the UUID of the boot device, but that could be due to the issue particular to my laptop. I recommend physically removing your Windows drive for the installation procedure just to reduce any possibility of complication.

Be sure to update your BIOS to A15, the latest release from Dell. Windows may be needed for this! Once this is done, be sure to set your SATA devices to operate in “AHCI” mode, and disable VT-d under the “Virtualization” tab of the BIOS.

Be aware that the default WiFi card provided by Dell is an Intel WiFi card. This card does not and will not work in OS X. On the M6600, there are several mPCIe slots on the motherboard, so while it is recommended, it is not mandatory to replace the card. You can simply add in another mPCIe WiFi card into one of the other slots. In this guide, I replaced the Intel card with the AzureWave Combo Card which uses the BCM4352 Chipset.

Part #1: Prep & Installation
First, prepare a Unibeast USB using the “Legacy Clover” option. Though this is a Sandy Bridge laptop, we will not be using HD3000, so there is no need to check that option in Unibeast. If you’re unfamiliar with creating a Unibeast USB, please read about it HERE. I am using the latest edition of Unibeast (for Clover!) even though this guide is for OS X Yosemite.

Once the USB is created, we will need to make several changes to the config.plist. I use Clover Configurator to make my .plist edits, but you can do so manually by using a .plist editor.

Assuming your EFI partition is mounted, open up the config.plist under /EFI/Clover in Clover Configurator. You will see the standard Unibeast config.plist. I will attach my config.plist to this post so that you may use that as a reference.

We will be making a few changes to the supplied .plist. First, head over to the SMBIOS section of Configurator. We want to change the SMBIOS to a MacBook Pro 8,2 or 8,3. Simply generate the SMBIOS and “Shake” the two options to create a unique serial for your machine. The fields should populate themselves appropriately.
Next, head to RtVariables and add “0x28” to “BooterConfig” and “0x67” to “CsrActiveConfig” if they are not already present.
Double check in “System Parameters” that “Inject Kexts” is set to “Yes.”
Click over to the “Boot” tab and select the options “-gux_defer_usb2, dart=0, and kext-dev-mode=1” in the “Arguments” section.
In the “Devices” tab, find “USB” and check “Inject, Add ClockID, and FixOwnership.”
Important: Under the “Graphics” tab, we will need to make a few changes. First, select the checkbox that says, “Inject ATI.” Then we will need to manually supply a framebuffer. The M8900 (Radeon 6970M to OS X) uses the “Cattail” framebuffer. Type “Cattail” in the “FB Name” field, or you will NOT get a display on boot. Optionally, check the “Patch VBios” option to get a full resolution Clover screen.
Double check under “Kernel and Kext Patches” that “Apple RTC” and “Asus AICPUPM” are checked. The default config should supply the AppleAHCIPort patch. Leave that there.

Finally, move over to the “ACPI” section. There will be several edits here. Under the “Fixes” section, check the “FixHPET, FixHDA, and AddMCHC” options. Should you opt to use my (or even better, patch your own) DSDT, you may remove these options later or forego them if you already have a working DSDT. Next, add a line to the “Drop Tables” section, and drop the “MCFG” table. This is critical, as your system will hang without this table dropped.

Next, browse to your EFI partition, and find the “kexts” folder. Open up the 10.10 folder and copy FakeSMC.kext and the AppleIntelE1000e.kext to the “Other” folder. Then, delete all the 10.X folders leaving only “Other.” Download the VoodooPS2Controller.kext attached to this post and add that to the “Other” folder, or your internal keyboard and trackpad will not work. Next, download GenericUSBXHCI.kext from RehabMan’s BitBucket and place that in the same “Other” folder.

Do one last double check over your settings, then save your updated config.plist. You should now be able to legacy boot off your Unibeast USB by mashing F12. Select your Unibeast USB from the Clover boot menu, and let it boot up. Install OS X as usual (if you’re unfamiliar, check the Unibeast guide above.) Once the install is complete, your machine will reboot. Again, boot off the Unibeast USB by mashing F12, but this time, select your newly installed OS X installation in the Clover boot menu. If things went smoothly, you should load up to the “Set Up OS X” screen. Proceed through the setup as you normally would until you’re at the desktop.

Part #2: Post Installation
Now that we have OS X installed and are booted into our fresh installation, the first thing to do is to have it boot without the need for the Clover USB. To do this, download the latest build of Clover from the Sourceforge repository. Install using Legacy settings (see the Unibeast guide referenced above if you need help here) and then navigate to your OS X installation’s EFI partition. Now, what we want to do here is to copy the EFI folder from the Unibeast USB and replace the EFI folder on our OS X installation. OS X sometimes confuses partitions with the same name. To avoid this, use a second USB to save your EFI folder ahead of time, OR simply mount one EFI partition at a time to avoid confusion. First mount your Unibeast USB’s EFI partition, copy the “EFI” folder to somewhere on your hard drive, unmounts the Unibeast EFI, then mount your OS X installation’s EFI. Browse to the OS X EFI and drag the folder you copied earlier, replacing any conflicts. Assuming all went well, you should then be able to boot into OS X without the aid of the Unibeast USB. Be sure to alter your BIOS settings if your primary boot device is not already set to your OS X installation.

Part #2a: Power Management & Audio
For native power management, we can use Piker-Alpha’s ssdtprgen script to generate a custom SSDT. You can follow the tonymacx86 guide if you are unfamiliar with using the script. Reboot to apply once complete.

EDIT: 5/23/16
During stability testing, I have found that it is required to drop ALL OEM SSDTs for proper system stability, in addition to the MCFG table. I've also dropped the DMAR table as a Clover standard, though the system boots fine with it included.

The AppleHDA.kext attached to this post has been edited for the IDT Audio Codec on the M6600. It requires an Audio Layout-ID of 12 and the “FixHDA” DSDT fix we checked earlier. If you are NOT using a DSDT (see below) then the layout-id can be specified in your Clover config.plist by using Configurator to inject a layout-id of 12. If you will be patching or have patched your own DSDT, you can ignore this step and simply use the attached AppleHDA.kext.
Please note that the internal microphone does not work with the supplied kext. Perhaps someone else has a better one?

(Optional) Part #2b: Extra Kexts
The following post installation settings are particular to my system, but may also apply to you. If you are using the same AzureWave WiFi card that my machine is using, or you use a utility such as iStatMenus to monitor your resource usage, these next few steps may be of interest to you. If none of these apply, you may skip this section of the guide.

Next, we will configure our wireless card to work properly in OS X. Three kexts are needed for full functionality, all of which are available on RehabMan’s Github, in the FakePCIID repo and the BroadcomPatchRAM repo. From the first repo, we want the FakePCIID_BCM94352Z_as_BCM94360CS2.kext. Place that in your /EFI/Clover/kexts/Other folder. Next, download the RAW file. It will contain all the kexts you need. Place the “BrcmPatchRAM.kext” into the same /kexts folder, as well as the BrcmFirmwareData.kext. I prefer to inject all of my kexts via the bootloader, but if you would rather install your kexts in /S/L/E, use the “BrcomFirmwareRepo.kext” instead, and install it in /S/L/E.

Optional: Patch the AirPortBrcm4360.ket with Clover to enable the cosmetic “AirPort” card detection and the 5GHz WiFi patch, as well as the Handoff Enabler patch. You can find instructions to do those in Toleda’s Guide, or in my config.plist.

You may choose to install FakeSMC Plugins on your system – I like to inject the kexts via Clover for usage with HWSensors/HWMonitor or iStatMenus. Binaries can be extracted from the install package using Pacifist or they can be installed on your system using the packaged installer. Your choice. The package can be found HERE.

(Optional) Part #2c: Custom DSDT
Though this machine functions fine with Clover issuing the necessary patches to the native DSDT, it is advised that you compile and patch your own DSDT. This is the only way to enable battery management, which will also be discussed in this section.

If you are unfamiliar with patching a DSDT, read up on how to do so by studying RehabMan’s excellent guide. Be sure to add RehabMan’s patch repository to MaciASL by going into its preferences and adding the following repository:​
We will be using several patches from RehabMan’s repo.

Once you are ready to patch your DSDT, select the “Patch” option. We will be adding 4 patches. We want to apply the following patches from RehabMan’s repo:
[audio] Audio Layout 12
[sys] IRQ Fix
[sys] HPET Fix
and the “Insert MCHC” patch from the built in Sourceforge repo.

Next, use the “Command+F” function to find the string “BAT” in the DSDT. You will see 3 instances of “BAT” – BAT, BAT1, and BAT2. In each of the methods, they are defined. We are only concerned with “BAT0” returning a proper value. Scroll through to the method labled “Device (BAT1)” and alter the last value in the method to say “Return (0x00)” to zero out the other two battery instances.

Compile your DSDT and check for errors, there should not be any. Then save your DSDT, and place a copy in the proper “acpi/patched” folder in your Clover folder. To complete your battery setup, grab the latest “ACPIBatteryManager.kext” from RehabMan’s Github and place it in your Clover kexts folder.

If you have a patched DSDT, you can remove the DSDT patches from your Clover config.plist file, as well as any Audio settings in your Clover config.plist. The DSDT now handles layout-id and HDEF alterations.

***EDIT 2/24/16*** See Below, SATA & eSATA Hot Swap

Part #3: Additional Optional Steps
These steps may or may not improve functionality of your system in certain ways. I will be testing this system extensively and update this section as I learn more. However, for now, I will include a list of optional steps I have done to my system to improve performance, etc.

LVDS Display
It is possible to patch the ATI6000Controller kext to have the Precision’s internal display register as an LVDS connection. Please see the attached M6600 Sample config.plist in the “Kext Patches” section for this info.

VBIOS Flash to Radeon 6970M
While it is unclear as to whether this impacts functionality or performance in OS X, the FirePro M8900 can be flashed to a Radeon 6970M by using the atiflash utility and MSDOS. This significantly improves gaming performance under Windows vs the FirePro VBIOS. A quick Google Search gives a comprehensive guide as to how to go about doing this.

Multiple Displays
NOTE: DisplayPort functions by default. The HDMI port requires some edits to enable – this is a work in progress. Updates will be made as progress is made.

***EDIT 3/21/16***
HDMI works with proper Cattail framebuffer edits. See updated config.plist attached to this post for working HDMI. Looking into running 3 displays - under Windows 10, only 2 work simultaneously. HDMI works only with HDMI connection, no adapters. DisplayPort functions even with DVI or HDMI adapter without edits.

***EDIT 7/23/16***
Triple display is possible under OS X using a Dell PR02X Port Replicator Dock. The internal display functions as one, and a DisplayPort monitor connected to the rightmost DisplayPort connection on the Dock and the DisplayPort connection on the M6600 can allow for triple monitor. I purchased two Dell 1080p monitors with DisplayPort connections to test - they work great. No additional Framebuffer edits required.

iMessage & FaceTime
Please follow the “How to Fix iMessage” guide to enable iMessage & FaceTime on your machine. My M6600 does NOT have a built in webcam, so your results may vary. I can confirm my M6600 has working iMessage, FaceTime untested at this time.

SATA/eSATA Hot Swap (added 2/24/16)
eSATA works as a SATA device out of the box, but hot swap capabilities can be added using a custom DSDT edit. A quick google search brings up the process which is easily applied to the DSDT. If you are using my DSDT, I have updated the attached file with the patch. This is confirmed working with both an eSATA DVD drive and an eSATA hard drive.

SDXC Card Reader (added 2/24/16)
While the M6600 does in fact have an O2Micro SDXC card reader, the bus is controlled by an independent O2Micro USB bus and therefore cannot be added with the generic card reader kext patch. There are kexts out there that are reported to work as a reader, but break sleep, therefore I will not be including it on my machine.

Additional Ports
I do not own an ExpressCard to try the ExpressCard port, but the FireWire port works out of the box. I've tested it with a FireWire hard drive, though I have been having issues with my audio interface. This is probably because of my interface, it's been having issues with the FireWire port for a while now, so I will be testing a different one later today.

***Updated 2/27/16***
Lid Sleep & Brightness
The M6600 DSDT can be patched with RehabMan's generic lid sleep DSDT patch. In MaciASL, it is listed under igpu. This works fine even though we are using a discrete GPU. ACPIBacklight.kext does NOT work on this machine. You can adjust screen brightness using the Fn function keys and the up and down arrows.

***Updated 3/21/16***
CD/DVD Reader
The internal CD and DVD reader works fine, even with other CD/DVD readers plugged in. Tested with a CD ripping workflow this past weekend.

HDMI Audio via Radeon 6970M
Toleda's HDMI Audio Guide outlines how to enable HDMI audio. Go to the "AMD" section of the guide, and install the proper SSDT in your ACPI/patched folder as "SSDT-2" and reboot. You will need the "PEG0" SSDT from his Repo. Verify using DPCIManager or through a firsthand test.

Testing:
Geekbench 3 - 64bit

I want to say a huge thank you to RehabMan, not only for his excellent guides and tools, but for his assistance with getting Power Management functioning properly.

-IC​
 

Attachments

  • VoodooPS2Controller.kext.zip
    275.5 KB · Views: 524
  • DSDT.aml
    32.8 KB · Views: 653
  • AppleHDA.kext.zip
    1.4 MB · Views: 588
  • config.plist
    6.5 KB · Views: 716
Last edited:
[Guide] Dell Precision M6600 w/ FirePro M8900 (6970M)

Second post reserved for updates.

Initial guide complete.

In addition, can a moderator please edit this thread title to remove "(Work in Progress)"? Editing the main post does not seem to work.

Thanks!
 
In addition, can a moderator please edit this thread title to remove "(Work in Progress)"?

Done.

Note that since Yosemite is no longer available, you might consider writing a guide for 10.11 instead.
 
Thanks, RehabMan. That's the next project. I have a test bed ready, but it's not quite as stable as Yosemite has been. I'll continue work on it, hopefully the recent USB 3.0 updates will help.

-IC
 
Because of the recommendation from RehabMan, I've been working on the El Capitan install. Instructions are the same, though the VoodooPS2Controller seems to have issues with El Capitan, and, of course, USB 3.0 does not work at all due to the Renesas USB 3.0 controller.

Also, please note that installation via UEFI works as well, despite the guide being written for Legacy Clover. RehabMan's standard Clover Install Guide works well, just mind the Graphics patches mentioned above. I'll continue to test, as I've acquired yet another M6600 to use as a test bed.

Thanks,

-IC
 
though the VoodooPS2Controller seems to have issues with El Capitan, and, of course,

No problem here. Make sure you install the kext correctly.

USB 3.0 does not work at all due to the Renesas USB 3.0 controller.

GenericUSBXHCI.kext is flakey but can work...
 
No problem here. Make sure you install the kext correctly.



GenericUSBXHCI.kext is flakey but can work...

Good to know, VPS2C seems alright now that it is installed in S/L/E rather than being injected by Clover. I will play with USBXHCI today. Thanks as always.
 
I've invested in a PR02X dock for my Precisions. To use the dock, you MUST disable both the Parallel and Serial ports in the M6600 BIOS, or you will panic on boot. I'm able to get triple monitors working with the internal display and two external displays running via DisplayPort, one plugged into the rightmost (next to VGA port) plug on the dock, and one running off of the DisplayPort on the right side of the laptop. In theory, 6 displays are possible, according to the documentation, but possibly only in Windows. I've also purchased two ACTIVE DisplayPort to DVI adapters to see what's possible. Note that the Framebuffer patches in the Cattail Framebuffer present in the config.plist above are necessary for the docking station to work with multiple monitors.

Notably, the headphone and line in jacks on the dock do not work with the supplied kext. Perhaps this will require some edits. Ethernet works without issue, USB ports are recognized. The DVI port also works on the leftmost side of the dock with the supplied Framebuffer edits. I'll keep looking into this; PS2 ports are untested currently, but should work with the supplied kext, and of course, charging works via the dock without issue.

There are a few threads about Dell docks on the internet - hoping I can get both the dock DP connectors working and the audio working properly so that it can be an easy solution for a workstation. Other observations include that the system does not boot with a VGA monitor plugged into the dock, but this is required for the Internal & 2 external monitor setup in Windows.

Will update as I find out more.

-IC

*PS: El Capitan system is in progress. Currently, just about everything works as it does in Yosemite, but I'm experiencing a sleep issue that I've yet to investigate. I'm still sitting on 10.10.5 for now while I wait for a replacement Radeon card for my second M6600.*
 
Hi, hope that @InsaneCultist still follow this post. I have another M6600 with Nvidia Quardo K3000M.
A handsome guy installed Osx 10.11.3 w/ Clover bootloader for me. Everything work well but it has some issues:
1. Can't shutdown.
Os has shut down but power isn't. I think it comes from SMbios(Mac Pro 3.1) but if I change to Macbook Pro 8.1/2/3 I can't boot to Mac.​
2. Nvida is full QE/CI, but I can't use VGA, HDMI. I try to path via DSDT but fail.
a07f5d.png

I hope you can give me some advice to go to fix it.
Sorry because I'm just a newbie in Hackintosh.
 

Attachments

  • config.plist
    6 KB · Views: 447
  • DSDT.aml
    32.6 KB · Views: 450
  • SSDT-1.aml
    6.2 KB · Views: 456
  • ssdt.aml
    1.7 KB · Views: 483
  • FakeSMC.kext.zip
    35 KB · Views: 338
  • Mac Pro.ioreg
    4.1 MB · Views: 473
Last edited:
Update: I try to boot with nv-disable=1, and I can shutdown completely. So problem come from Nvidia driver?
I also use freezefix.app
 
Status
Not open for further replies.
Back
Top