Booting El Capitan with RevoBoot

I received e-mails, and posts that I blocked, from people asking for help with the installation of El Capitan. Ok. So they can’t get it to run with either Chameleon, Chimera or RevoBoot. Something had changed, and we needed to figure out what it was.

The good news is that a couple new guests arrived, former co-workers loving to hack so I am there also, and they just couldn’t sleep after their flight. Well. I have more good news for you because now, two hours later… and a lot of beer for my friends; We are pleased to announce that we got the OS X installer downloaded from the Apple Store, fired it up with a modified copy of RevoBoot and the new El Capitan kernel (15.0.0) and extensions are loaded and executed.

One thing that we had to fix is that the Installer app failed to install El Capitan on the new SSD, but that was only due to a previously (broken) installation on the drive. We solved this the next day by installing Yosemite before El Capitan. Everything works now. I was just too tired to push the update to my RevoBoot Github repository the first day, but that is now also completed.

A few notes. I did not use a USB memory stick to install El Capitan on the SSD, but launched the Install OS X 10.11 Developer from the /Application folder. This copied files to the new ElCapitanSSD and then reboots afterwards. Not that I let it boot from ElCapitanSSD, because we first had to add extensions to /System/Library/Extensions/ and the kernel to /System/Library/Kernels. Files that we extracted from the packages with help of Pacifist. The next step was to add a couple of boot arguments to .IABootFiles/ Here is what we added:

-f -v cs_debug=1 amfi_get_out_of_my_way=1 -zinfop zalloc_debug rootless=0

A bit overkill, but it worked with the modified version of RevoBoot. By the way. We only changed this setting in: RevoBoot/i386/config/SETTINGS/Macmini71.h (the used configuration for my hack)


This setting is set to 0 by default, but since we want to load the installer from ElCapitanSSD… By the way. This file was created for us after running: make MODEL=Macmini71 The next step was to copy boot0, boot1h and boot to ElCapitanSSD followed by a reboot. Please note that without the proper modifications to the boot loader, you end up seeing a zone_init panic before it reboots.

Anyway. The installer ran and installed El Capitan on ElCapitanSSD, but it failed to remove files like /.IABootFiles so we had to do that ourselfs. The next boot took a little longer, time used to recreate the prelinkedkernel and (old) kernel cache, and the Apple logo seems a little wider, but at least the desktop showed up. All without a single error/problem. Ok. Audio failed, but hey that is easily fixed.

Update: The slightly wider Apple logo was caused by an error on my side. This simple change in RevoBoot/i386/config/SETTINGS/Macmini71,h solved it:


Note: You may notice these lines in /var/log/system.log

Jun 20 11:21:14 localhost kernel[0]: mem_actual: 0x40000000
Jun 20 11:21:14 localhost kernel[0]: legacy sane_size: 0x400000000

Edit: I changed the value (0x40000000) right after the installation of El Capitan to 0xc0000000 and then 0x3f9cba000 but the legacy sane_size is still 0x400000000. In other words; legacy installers appear to be limited to 1 GB and the installer failed with values greater than 0x40000000. . Nope. I was wrong. I now changed the RevoBoot source code to let it use the detected amount of physical memory (see in function SetupSMBIOS) and that works just fine. Much better now.

Also. After the installation I removed all Kernel Flags, including rootless=0 and kext-dev-mode=1 and everything is A OK.

Edit: I added some text, and added new text, to clarify how I did it. This should help other people to get El Capitan booting with Chameleon/Chimera/RevoBoot 😉

p.s. Sorry. I forgot to mention that I also added a couple of files in /Extra on the ElCapitanSSD:

/Extra/ACPI/dsdt.aml (or a tiny SSDT.aml)

The latter can be extracted from a working Yosemite setup, by using a little one liner script. See the RevoBoot WiKi for additional information. You can also compile and run smbios2struct3.c

11 thoughts on “Booting El Capitan with RevoBoot

  1. Can’t wait to copy your job 🙂
    I did some tests, but lack of knowledge have stopped me! I can not wait to see how you solved.

  2. Hi, Pike. I hope your accident is almost forgotten by now and that your new venture is “venturosa”. If I may, and seeing that you’ve been able to do some progress with El Capitan and Revoboot, I was wondering if you feel an update is necessary at all for your wonderful boot.efi for old Mac Pros.

    Hereinbelow, something I’ve just posted at the Macrumors at

    I don’t know how relevant this might be, but it appears as if the El Capitan DP2 (or maybe even DP1) has a boot.efi in place that I haven’t seen before, whereby Software Update messages (or may be other processes as well) are displayed, such as “Installing Software Update: About 20 minutes”. I’ve seen this while updating my Fusion VM of El Capitan to DP2. Naturally, it uses the stock boot.efi, not Pike’s. I wonder how Pike’s boot.efi would behave trying to display such a message, supposing it is able to do such a thing. Any suggestions?

    Update: Pike, don’t bother. According to 666sheep, your current version of boot.efi for the old Mac Pro does just fine displaying those messages. Many thanks.

    • Hi Peter,

      Yes. The update process has changed. It’s more informative to the end-user. As a matter of fact; I am looking at this text right now: “Installing Software Update: Less than a minute“. Which is followed by the usual “Completing Installation” after a reboot. Oh wow. I installed it on a remote Macmini7,1 and even that works flawlessly. Superb.

      Note: I will update the source code of boot.efi in the near future, because things keep changing.

      • That’s great, Pike. I’ll be looking forward to it. Let us know whether the new version ought to be compiled with clang/Xcode or with the Microsoft Visual environment. Many thanks.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s