El Capitan

So I finally took the plunge a couple weeks ago and upgraded my hackintosh to OS X 10.11 El Capitan. This is just some preliminary notes on how my upgrade went, and some guidelines you may want to follow if you’re similarly upgrading your machine.

Because this is a major version upgrade, and El Capitan is adding stricter SIP, I recommend being a bit more methodical/paranoid than normal with the upgrade:

  • copy existing clover config/installation to a USB key for backup/emergency use
    1. a full bootable clone of your 10.10 install is best, but a 10.10 USB installer with a known good clover config is good enough in most cases
  • find any/all updated kext patches for your hardware (e.g. cloveralc, handoff/BT, 5Ghz wifi)
  • copy all kexts that you plan to inject via clover to the 10.11 folder
    1. alternatively, you can copy your kexts to /Library/Extensions after your installation is finished. I chose this route so I could use a stricter SIP setting than most people are using.
  • add necessary ‘BooterConfig’ and ‘CsrActiveConfig’ values to config.plist to configure or disable SIP
    1. most people are using CsrActiveConfig 0x67 or 0x77; this is basically entirely disabled, and ultimately turns off all of the security that SIP offers.
    2. if you just want to turn off kext signing (ala kext-dev-mode=1 from yosemite) you want to use 0x11
    3. you can find a list of the various Csr options over at insanelymac.
  • update any kext patches to their 10.11 versions
  • If you have an unsupported Nvidia card…
    1. manually turn off the web drivers from the preference pane prior to running the installer.
    2. On the final reboot after installing, manually add the nv_disable=1 boot flag just to be safe
    3. install Nvidia web drivers & reboot without nv_disable
  • If you use CloverALC, make sure to run the script again to re-insert the layout/zml files
  • rebuild kernel cache one last time and reboot

For Nvidia users using any SMBIOS other than Mac Pro, you don’t need to change your SMBIOS for the install. Use a tool like pacifist to force install the drivers, then manually run the installer package. The Nvidia installer script does a check for existing driver components (specifically NVDAResmanWeb.kext), and if it finds them, it bypasses the hardware/SMBIOS check and allows the installation on any system with compatible OS version.

no more need for an SSDT?

Well, the title might be misleading, but it’s true for a few niche cases at least.

So I don’t know when they fixed this, but thanks to a comment on /r/hackintosh, I took a loot at clover automatic c-state/p-state generation for the first time in a year, and it seems to be fixed, at least for Haswell on Yosemite using XCPM. I’ve been running my system without an SSDT for a few days now, and can verify that speed-step, sleep, etc. are all still working great.

Why should you care? Well, it means you don’t need to worry about generating an SSDT or configuring drop-tables anymore to get native speed-step using XCPM mode with Yosemite. This also means that overclocking should be more user-friendly now if you use Clover; just adjust your max turbo speed in the bios, and clover should update automatically, no more generating a new SSDT for every clock-speed bump/test. You will still see a P-State Table MisMatch message in your system log, but in my quick testing, the overclock works fine.

Of course, if you’re using an SSDT for anything other than power management, this is all moot; keep using your SSDT.

New intel ethernet kext

This is just a quick note in case somehow people haven’t already seen it, but Mieze over at insanelymac has started work on a new kext, specifically for modern intel ethernet adapters.

I used the 1.0.0d6 version without any issue for a week or so before moving to theĀ 2.0.0d1 experimental build, and so far both have worked pretty much flawlessly with my hackintosh. If you use clover for your bootloader, simply download either kext, mount your /EFI partition, delete AppleIntelE1000e.kext and drop in the IntelMausiEthernet.kext you downloaded. To be safe, run the following to wipe all your kernel/boot caches, then reboot.

sudo kextcache -system-prelinked-kernel
sudo kextcache -Boot -U /
sudo kextcache -system-cache
sudo touch /System/Library/Extensions