THE GREAT GUIDE
EL CAPITAN + Z820
I’m glad to release this guide to enjoy this beauty running El Capitán. It has been a long and hard way. I've been trying to get a stable hackintosh since Mavericks (with a lot of drawbacks), and Yosemite (same problems). Finally, with El Capitan, I have succeeded. This version is awesome, works perfectly, fluently , skips important problems and allow new support for some hardware.
Some important topics:
1. What is the main goal of this tread?
Not only show the how-to. I’d like gather all Z820 owners here to talk and share problems, tips, and refine this guide. We are not too much z820-users. Search info is frustrating. So please, join here.
2. Please, help to improve this guide.
I’m not an expert. I’m far from to be an expert. This is only the result of hours, days, of searching, tries, and trial-and-error method. If you see something wrong, or which could be improved, please, just say it, and I’ll fix it.
This is a guide for my specs. There are several revisions and versions (V1, V2 , bios versions, dual, not dual cpu...), and some custom hardware peripheral (graphic card, pci cards).
You have two ways.
- To be lazy, download my files and … anything else. If your hardware does not match, is incompatible, or something is updated, you’ll not know how adapt it and fix it.
- Try to understand what I do and adapt it for your specs. And then, share it
My specs are:
Intel Xeon Processor E5-2630 v2 dual.
Bios version 3.85
Graphics Card: Quadro K5000
Memory: 64gb ram
Audio card Realtek ALC262
Internal SATA-SAS controller LSI 2308
USB3 internal controller Texas Instruments TUSB37320/40
LSI Sas-Sata Raid 9620 8i
PCI Thunderbolt Card HP
USB 3 PCI Conceptronic
And finally , one last topic more:
4. English is not my native language. If you see how I kill your language, please, just say it and I’ll fix it too
Ok let’s go.
(Preface. This whole guide is for UEFI systems. It’s not important to follow it. Keep in mind it to adapt some settings if you use legacy-bios mode.)
On storage options: set ACHI mode.
On security options: disable Vt-d
On Advanced, set PXE , storage and graphics to EFI. (in that case)
On power, set Os power management to Enabled. This option will allow Power Management later.
Throughout my experiments, I haven't found any other option with a negative impact specially important. But, If you don’t need any special option, reset the bios to default can be a good idea.
1- MEDIA CREATION
(This guide assume you have a MacOs runnig . I have no idea how do it on PC)
-Download El Capitan from AppleStore. Currently, is 10.11.6. Final version. No need to update. Let the file in /Applications
-Download my compressed folder with all necessary stuff.
-Format one USB stick with common settings:
Go to Partition Tab, choose 1 partition in “partition layout”, select GUID partition table in options, and Mac Os Extended (Journaled) as Filesystem. Name the partition as you want. Ok to Apply.
-On a terminal window, type:
sudo /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/Resources/createinstallmedia --volume /Volumes/USBName --applicationpath /Applications/Install\ OS\ X\ El\ Capitan.app --nointeraction
-Change “USBName” by your usb name. Enter and type your admin password. It will take 10-15 minutes. (When it finish , you’ll see the prompt again)
-Download Clover from here . Version used to make this guide: Clover_v2.3k_r3676
-Install Clover in the USB. On first screen, don’t forget change the install location in order to do not install on your Internal HD. Select your USB stick
-Click on Customize.
-Choose “Install for UEFI booting only” and “Install Clover in the ESP” as main options (if your system is UEFI based)
-This is optional: choose Bootcamp in Themes. I like this theme because looks like a real mac. The rest of themes are horrible.
-In Drivers64UEFI select: / EmuVariableUefi-64 / OsxAptionFix2Drv
Let the rest of option unselected and Click on Install.
2- CONFIGURE CLOVER
When clover finish, It will mount EFI partition. Time to modify it.
Clover makes a config.plist with some options pre-selected. Change the original config.plist by mine. But take a look to options (with clover configurator) to understand it in order to be able to adapt them for your specs. It’s a basic config.plist. I could add more options or fixes. but is a good idea install with minimum options.
No options activated. Ignore section dsdt.patches for the moment. I'll explain it later.
Bootflags needed are only -v and npci=0x2000.
dart=o is no needed with vt-d deactivated on Bios. Kext-dev-mode=1 is for Yosemite only. rootless=0 is for first betas of Capitan.
No options activated in Cpu/Device/Disable driver
Graphics. No Graphic injection. At least, no needed for my Quadro card. With this option I boot with only 1 screen. (I have two monitors). Check it out for your card video.
Kernels Patches needed
RT Variables to deactivate security policy in el Capitan. Similar to kext-dev-mode in Yosemite.
SMBIOS Set to Mac Pro 5,1. This is important to skip black screen with boot with SMBIOS 6,1. We will fix that later.
System parameter : “No caches” enabled. It’s optional. I like activate this option to test instead of press space bar in every boot.
2.2 -Drivers64UEFI folder.
You’ll see more drivers installed. That is because some of them are mandatories. That is fine.
As usual, delete VBoxHfs-64 driver and replace it by HFSPlus.efi.
You can use my kexts from my stuff folder, or download them from original sites.
-Download X79 dmg from RampageDev's site. Mount it and go to /Files/Step2/10.11 to current/StandardKext and grab next kexts:
-VoodooTSCync.kext, (to avoid boot with cpus=1)
-AppleintleE1000e.kext. Not important now, but it will allow to get internet on first boot
…and copy them to your /EFI/CLOVER/Kexts/10.11
Important. OpenFakeSMC.kext , (show Package contents) and delete LPCSensors from /Contents/Plugins. This LPC plugin freeze the boot !
Note. My folder has a couple of kexts more. We will talk about it later.
3- FIXING USB PORTS
If we boot now, we will get the annoying “PCI configuration Begin” error. This is cause the usb issue of El Capitán. We could even avoid this booting using an HDD instead of an USB stick. Which is really weird. But anyway, once we reach the installer, the USB won’t be recognized, so no mouse, no keyboard. The right way is fix the usb ports.
Here I have to give credit s to these german guys which allowed me see the solution and refine it. Credit also to the user from the ton--mac forum who found the forum and linked it
So, we are going to fix the problem. It has two parts:
Go to here and download last version of USBinjectAll.kext of the-never-well-enough-praised Rehabman . Copy the kext to /EFI/CLOVER/Kexts/10.11
We have now to apply a DSDT patch to rename usb devices. But doing this now, we have to extract it, clean it and compile it, and finally fix it. And now it’s not the right moment. We can do it with DSDT-patch-on the fly of Clover.
Copy the next dsdt-patches code to the config.plist, using plistedit pro or add them manually with Cloverconfigurator.
This is a common patch adapted for Z820. Note that the name of original names of the devices are specifically taken from original Z820 dsdt.This patch will change from EUSB and USBE, to EH01 and EH02. (required by El Capitán). If you use cloverconfigurator, the hex64 code of ASCII names, will be converted to hexadecimal.
And that's all. Our Clover-USB is clean and works. Ready to boot
Reboot from the USB stick and install El Capitan. . One last good tip is gather in a folder all stuff necessary to repeat the process and copy it to USB. You will have it available directly after first boot.
4- On first reboot, install clover again on HDD, repeating same process and same options , but keep in mind you have to add some options on clover’s screen install:
-Install RC scripts on target volume
-Optional RC scripts
-Install Clover Preference Panel.
Install clover and add same files used on the USB: config.plist , hfsplus driver and kexts. Reboot. We can extract the USB installer and reboot from our HDD
FIRST CLOVER SETUP.
Now we have to refine our System.
5- First, mount efi partition (you can use EFIMounter ) , open the config.plist and add some options. Again I remark that I like let unchecked as options as possible. I prefer to have a config.plist clean and with minimum options activated. You can adapt it to your preferences later. The rest of options needed will be included in every section.
Activate “deleted unused” in new way fixes. This is only to refine a bit the dsdt injected by clover.
We don’t need add any option in power management section. Except:
-Check Smart UPS option. This set the PC as workstation (type 3). Now it’s not important but later it will be in order to get a right power management.
No changes from our basic config.plist. You can remove -v option when you’ll get stable your system.
Add the right CPU ID. For my CPU is 0x0a01
-Devices / Disable drivers / Gui / Graphics / Kernel and Kext patches. / RT variables
Set the right SMBIOS. This is important. Generate a new SMBIOS 6,1.
No changes. “No caches” stills activate. This a personal preference. You can deactivate later
Save the config.plist file.
Now, important, If we reboot, we will have a black screen. It’s a known problem since Yosemite but it’s easy to fix.
6- No reboot. Go to /S/L/E. Copy AppleGraphicsControl.kext to your desktop.Go to contents>plugins>AppleGraphicsDevicePolicy.kext/Contents/ . Open Info.plist. Search line related to SMBIOS 6.1
- and change “config2” by “none”
-Save and close. With your favorite utility, install the new kext (is a good idea if you set a colour-label to the file). Repair permissions and rebuild cache. Reboot.
Now we have the z820 running El Capitan, with the right smbios, and with some basic clover settings, ready to still working.
My Quadro card works out of the box. No need to fix or inject anything. And, the best thing, no need to rollback old or patched kext form previous versions ;-). I guess is the same for geforce cards.
7- Install web driver. Remember activate nvda_drv=1 bootflag in clover after install nvidia driver.
Reboot and select the new driver in preferences. Reboot if nedded. For quadro cards, you can activate ECC memory, although you'll lose some mb of vram. ECC can be important for video or 3D renders.
8- Install cuda drivers.
Its’ works with AppleintelE1000E kext.
Works with the dsdt patches of clover and the USBInjectAll.kext that we already have.
For the next fixes , we need patch the dsdt. So, it’s time work on it.
9- DSDT extraction:
On your current system, reboot and press F4 on clover screen (or search how extract ACPI tables from linux or windows). Then, boot normally. You will find your original DSDT on EFI/CLOVER/ACPI/Origin (there will be more tables. Keep DSDT and SSDT files, and delete the rest of them)
Preserve a copy of original file. Always edit a copy. I like compress the original files to preserve them of changes.
Download MacIASL Important. Don’t use 1.4 version. It reports errors and compile the dsdt in a wrong way. I use 1.3 ML version.
Open it and set some extra repositories: In preferences/ Sources tab add rehab man repository typing next url:
Set in preferences ACPI specification 4.0. Ignore 5.0, at this time.
The main goal is apply some fixes. It’s easy, but to compile, MacIASL needs clean all errors. So, we have to clean it first.
Click compile button and you’ll see the errors. (If you click over the error, you’ll jump to the right line)
These are syntax error of my original DSDT-bios 385. Maybe your dsdt has similar errors.
Let’s go to fix them
11.1 -Posible operator timeout is ignored
Acquire (MUT0, 0x0FFF)
Acquire (MUT0, 0x0FFFF)
(note: four “f”)
11.2- Invalid object type for reserved name (found buffer , requires Package)
It’s more complicated than only change “buffer” by “Package”. The best is apply “PLD buffer/Package Error” patch.
Click Patch button, search in rehabman branch, and search below “Various Syntax Error”. Select the patch , click apply and close
From every and now, you can press Compile button to see how errors disappear from the list
In addition, maybe you can fix warnings (yellow triangles). Is not required. But I like clean it completely. In my DSDT I have.
11.3- Not all control paths return a value (WHB_) (and _E1D , _INI , and others variables)
Insert “Return (Zero)” to close all open tags. For instance:
- For almost the cases the insert place is before the last } which close the paragraph. In some of them, the fix not so obvious.
When you place the Return (Zero), click on compile button. It more errors appears, it means that it’s not the right place.
One fix more. In my case, I have:
11.4- Use of compiler reserved name (_T_0) and (_T_1)
This is a common error fixed in several generic rename-devices patches. But now we want fix only this error. I’ve separated the code from the patch “Basic Apple Device Rename” from jpalm patches.
Click patch , open, and select the patch1 file from my folder. You’ll see next code:
into_all all code_regex _T_([0-6]) replaceall_matched begin T_%1 end;
11.5 Finally, although we can ignore ACPI 5.0 I like fix this too. This is optional. Set ACPI 5.0 in preferences, and click in compile. There is only a kind of error to fix:
-Min/Max/Length/Gran are all zero, but no resource tag
In sections like that:
QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x0000000000000000, // Granularity
0x0000000000000000, // Range Minimum
0x0000000000000000, // Range Maximum
0x0000000000000000, // Translation Offset
0x0000000000000000, // Length
…the new Length value is:
Length = (Range Maximum - Range Minimum) + 1
- In this example:
0x0000000000000001, // Length
(As you can see, the new value is 1 in all errors. But check it out, just in case)
Click in compile button to check everything is right. Set again ACPI 4.0
12- One fix more. Add the patch number 2 from my folder. This apply more common devices names fixes. Compile it.
That’s all to get a clean dsdt. Save it and rename it as “DSDT-clean” or whatever.
Here you can apply also the USB2 rename fixes directly to the dsdt. It´s your personal choice. Personally, I did it because we are applying more fixes. If you do it, delete the dsdt-patches in clover.
- Make a new copy of the DSDT.
-Apply patch3 from my folder. I have separated the necessary code from “Basic Apple Device Rename” and I have modified it for our Z820 devices and my method to apply fixes.
-Compile it and save it as “clean-usbfixed” or whatever. Delete the dsdt-patches in clover. Copy this "clean-usbfixed" and place it on /EFI/CLOVER/ACPI/Patched. Rename it to DSDT.aml. Reboot.
We can continue fixing things.
If you don’t have any Firewire peripheral, maybe is not important, but I like fix it to get a System as functional as possible. Also, fixing firewire, we fix IRQ conflicts, which can be important. This can be fixed using some clover fixes. I prefer clean the DSDT.
14. Open the DSDT. Locate Devices
IPCI IPIC , TIMR and RTC (use search function). Delete these lines:
15. Locate device HPET. insert IRQs flags (in red).
Name (_HID, EisaId ("PNP0103"))
Name (CRS, ResourceTemplate ()
0xFED00000, // Address Base
0x00000400, // Address Length
OperationRegion (HCNT, SystemMemory, HPTC, 0x04)
Field (HCNT, DWordAcc, NoLock, Preserve)
Compile and save.
16. Open config.plist and select FixHPET in ACPI section. It’s important. It prevents random resets 20-30 seconds after boot. This fix changes the structure of HPET branch. I’ve compared before and after to apply this fix and I’m not sure what it does. Anyway, only apply the fix.
Reboot. Check firewire in System profiler. It should be active.
A hard topic. Unlike to for Mavericks and Yosemite, I couldn’t find the appropriate AppleHDA for El capitan. I found the solution thanks to MacPeet here
17- Look into my folder/patch audio. Install the AppleHDA (it’s the original kext from 10.11.6 including layout28.zml.zlib and Platforms.zml.zlib needed for ALC262). Install also realtekALC.kext attached. Fix permissions and rebuild cache.
18-Add the following patchs to config.plist. Use Clover configurator or plistedit. The code is:
(I have included one additional patch to avoid one annoying error on the console output. Credits to the author )
19- Set Inject Kexts option to Yes, just in case:
20- And Set Audio inject to 28. If you use clover configurator, let the other options unchecked.
21- Now we have to patch the DSDT. Open it, find the branch /—_sb /—PC10/ — PEX4/ . Locate the space between the end of PXE4 device and the first of the next branch (Device PCI1 in my case) and add the new HDEF device adding next code
This code is ready for ALC262 audio card.
Be careful with the point to insert and the format. You should see the new branch in the left window of MaciASL editor
22- This code needs insert a DGTP method in DSDT. Search in MaciASL, patch button - general branch - add DGTP. This patch adds one additional DGTP branch at the end of the dsdt
Compile and save it. Reboot. Check the audio panel.
F- LSI 2308 Controller
Yes. It works. A big release of this guide. The drivers for LSI 2308 SATA-SAS internal controller. They come from one unsupported driver. They are patched for work without restrictions I mean, more than one disk and raid support. I have two disks (windows and linux SO) working, and I tested attaching until 2 disks more and it works great. I don’t have more free disks . This a big chance for more users what can test them in terms of reliability and performance.
Your will find it into my stuff folder
Note. I have included this drivers in installation folder too. The installer recognize perfectly all HD attached to the LSI 2308 controller. Anyway, be careful installing the SO in these HDs. We need test it. I’m sure that it works, but, just in case. My recommended ports to attach system HD are the two natives ACHI SATA ports (SAT0 and SAT1). Read Z820 documentation for more info.
G- THUNDERBOLT PCIE
It works too!!. I’m talking about of the HP Oem TB card, of course. But this is not a merit of mine. All credits to El Capitan . A big surprise when I installed the SO and I could see how it is recognized by the system. I only have one external HD TB and it works. Just a warning. Harddisks are only recognized at boot. No hot-plug. I don’t have TB raids to test the real performance. Again, a good point like homework . I’d like also test the video output of TB, but I don’t have the appropriate DP bridge cable.
Anyway, a good new.
This is the more complex part. What I know is the result of thousand of tries. Help to improve this guide. If you see something wrong or which could be improved, please, just say it.
23- Follow instructions from here:
a- skip step 1 . It’s not needed for Ivy bridge cpus. Go to step2
b - Patch the appleintelpowermagement.kext with the command AICPMPatch and instructions provided by stinga11. That is what Asus AICPUMP clover patch do. But Stinga11 is right. It doesn’t work for x79 platform to get Power management. I checked it. So, use the command following the instructions
(Note: Important: Deselect Asus AICPUMP kernel patch from clover )
c - Install the 10.11 X79PlatformPlugin.kext of the guide.
d - Fix permissions and rebuild cache.
24- Install HW monitor. Be careful and deselect fakesmc or plugins on installation screen. Launch the app. Set your favorite icons and info to show on bar menu. Set the app to launch on every boot.
Now you can see the cpu speed. It’s still running at speed stock. We don’t have PM yet. Lets go to fix later.
Now we are going to install the tool to check our C and P - states. The usual tools are the AppleIntelCPUPowerManagementInfo.kext or the most recent the AppleIntelInfo.kext , they both from piker. But none of them work. They cause a kernel Panic in our PC. Fortunately, one user from this forum patched a right version a time ago.
I don’t know the kind of patch , and if it depends of the architecture , bios (msr-locked) or whatever. It’s and old version, but it works.
25- So, copy the AppleIntelCPUPowerManagementInfo.kext from my folder and copy it to the kext folder of clover.
Although it shouldn't be necessary, I sometimes have kernel panics when I install this kind of kexts. My advice is reboot without caches (if you don’t keep this option in clover) and then, rebuild it with your favorite utility.
26- To check C and P states, type on a terminal:
cat /var/log/system.log | grep "AICPUPMI:"
We don’t have PM yet, so you’ll see only a couple of states.
Now we have our system ready for the last step:
27- Generate the SSDT with ssdtPRGen.sh. Go to piker’s website and follow the instructions to download it and how to use it.
But, if you try any command to generate the ssdt, you’ll get next error.
No ACPI Processor declarations found in the DSDT!
What does it mean?. The script is not to able to find processor declarations in our dsdt. To fix it, I do something… we would say, not pretty usual, but it works for me: Add them manually.
28- In my bios version, those processor declarations are in one of the native SSDT. The bios has 3 SSDT. Go back where you extracted the original tables at first of this guide. To identify it, open every ssdt with maciasl until see one with SCK0 / SCK1… (and so on) branchs. The tip is search the word "processor" into the code. In my case (and I guess for the rest of bios versions) , the ssdt is the number 2. Select all code of the ssdt (except the comments) and copy it to the end of your current dsdt. Be careful with } and don’t break the right end of the dsdt.
You can compare it with my final dsdt of my stuff.
Reboot to activate this change into dsdt.
29- Now, again on Piker’s script, we have to type the right command. After tries and tries, that is the syntax I use for the last ssdtPRGen.sh version:
./ssdtPRGen.sh -p 'E5-2630 v2' -b Mac-F60DEB81FF30ACF6 -w 3 -x 1 -cpus 2 -l 24
-p 'E5-2630 v2' — The cpu model. Change it for yours. Search in /YourUSer/Library/ssdtPRGen/Data/Ivy Bridge.cfg file to use the right syntax.
-b Mac-F60DEB81FF30ACF6 - SMBIOS of 6,1 definition
-w 3 Considers the PC as a workstation, (remember smartUPS option in clover) to get a more appropriate PM
-x 1 Set the xcpm method.
-cpus 2 . Set the number of Cpus. (dual for me)
-l 24 . Set the number of threads. Keep in mind hyper threading (HT). In this example, I have 2 hexacore cpus . So (6 x 2 of HT)= 12 x 2 cpus = 24
These two last options are important to get a right PM. I had an old script generated (a few years ago) without this options. Now with this new commands, I can see a bit more performance on tests.
Back to the terminal, press enter to generate the ssdt and check the terminal output. we don’t should see any error. Select “No” for the last script’s option to copy the ssdt generated. The ssdt is in /YourUser/Library/ssdtPRGen/. Delete the ssdt.dsl version. Copy the ssdt.aml to EFI/CLOVER/ACPI/patched.
30- Enable on clover -xcpm flag or use this custom flag recommended by the script
Currently, I'm using this custom flag. I’m trying to figure out what it does. No much information.
Reboot. Remember, without caches, and then rebuild it with your favorite utility.
Now , finally, we should have PM. Check HM monitors info. The cpu should move between lower state in idle, to stock speed clock, and reaching higher values under heavy work requirement
Check the output of AppleIntelCPUPowerManagementInfo.kext with cat /var/log/system.log | grep "AICPUPMI:
The output doesn’t refresh. Introduce again the command (up cursor) while tests are running, and the new states will be shown. You can use geekbench, prime95 for mac, cinebench...etc
One example of my output:
Thats are my results on Geekbench or Cinebench. :
As you can see, the behavior in idle is a bit erratic. I found out that the guilty is… the graphic window of hardware monitor . The behavior in real idle is stable, in x12 multiplier. And it ups to 29-30 in turbo. Anyway sometimes I think that the cpus are a little …. edgy. But I’ve checked on windows , and I can see the same behavior…. so I’m happy with the performance.
That is the result of my tests on windows:
Geekbench shows lower result. Maybe different background tasks, the crappy windows 10… or simply a different Power management policies.
Cinebench shows similar result on CPU. But note the big difference in graphics performance. That is always the case since my first tests on Mavericks three years ago. That is because MacOs doesn’t support last openGL versions. Graphic cards always show a lower performance than in windows. But don’t worry. You have the awesome metal . A great idea to follow the standard of the industry.
My graphic card show speed memories and speed clock expected, showing some states in idle . Just in case, I have followed some guide to get Graphics PM with no impact. This is what it is.
The last part of this guide. This is because it is incomplete. I have working the Texas USB 3 internal controller, but with an error which prevent the use.
To get USB3 working:
31- Rehabman has several generic guides. But maybe this guide adapted from rehabman's guides is more concise.
Go to directly to step 1 of part 1, adding the DSDT patch in clover.
In step 2, create the new SSDT-XOSI file.
In step 3, download the FakePCIID and FakePCIID_XHCIMux kexts from rehabman’s bigbucket site . Download the last version, extract it , open "release" folder, and copy only these two kexts to your clover extension folder.
32- Download the GenericUSBXHCI.kext from rehabman. Go to here , download last version. Again, extract it and copy it to your clover extension folder. This is the new kext for non-intel usb3 controllers for El Capitan.
33- Rename USB3 device in the DSDT. Open the dsdt and search “USB3”. Replace it by “XHC”. Compile and save it.
Test your usb3 ports. They are not shown in System profiler but it doesn’t matter. Plug one usb3 stick in one of the usb3 ports, and try to copy some file (bigger than 2 or 3 mb) You’ll have an annoying error -36. No solution here. The only clue is this thread, (and next 4 pages). They are talking about zenith’s generic driver for Yosemite, Maverics, etc. Maybe this new kext controller needs another patch like Zenith432 did for those ASM1042 users.
Note. I had this error with that version in Mavericks and now with this new rehabman’s version. That is because I think this card needs a specific fix into the code. :-(. Searching, I have seen another users with same error.
You have another way. Buy one compatible USB3 PCI card. They are cheap. Search info to find compatible controller model. It works. I bought one conceptronic card and works like a charm with the steps described above. . But , that the front ports can't be used , is really annoying .
END OF THE GUIDE
That’s all. I hope it helps to Z820 users. I expect comments, tests, fixes, and improvements . Again, sorry for my English.
Z820-EL_CAPITAN_stuff.zip 3.68MB 468 downloads