Note: Now that I'm going to prepare a v2 of the method 3, I copy version 1 here as a backup of it.
Try this method on an external HDD. A whole explanation of the different parts of the method can be found on Post #502, Post #567 and Post #638. In this post, the method has been updated and successfully tested on MB 2,x, MB3,x and MBP 2,x. It could work on other EFI32 Macs if you have the kexts you need. A good starting point is having OS X Hackers' Yosemite installed. All the kexts I'm posting here for these computers are based on those kexts (taken from OSXH' Yosemite).
Prerequisites: A computer with El Capitan installed and SIP disabled, and an external HDD.
1- First of all, you need an external 2,5” HDD or SSD. It has to be GUID HFS+ formatted. If you format it from El Capitan, it formats the hard disk in this way by default. I will suppose its name is "Capitann". This will create a HFS+ partition and an EFI partition automatically.
2- Using the computer with El Capitan installed, clone the partition where you have El Capitan to your external HDD, the one you have formatted on step 1. The source computer can be a real Mac, or even a Hackintosh. You can use Carbon Copy Clone (CCC) or SuperDuper! I have used both of them and they worked well.
You need SIP disabled. To do that, boot from your El Capitan Mac from Recovery Partition, go to utilities, open a terminal, and write
csrutil disable and reboot.
You need to do all the next steps from a El Capitan with SIP disabled.
3 and 4 - We can skip these steps. If you have troubles booting your external HDD when created, you can check these steps on
post #502.
5- Now we need to change the boot.efi because we need a 32-bit boot.efi. Download it from here:
Pike's 32-bit boot.efi.
Note 1 (thanks to @rypatkelgo): If you are installing El Capitan into a MacBook 4,1 you don't need to change boot.efi, asi this MacBook can use a 64-bit boot.efi. You can get more details in the original post #803.
Update: You can even get SIP disabled, if you use a EFI64 Mac, using rEFInd. I explain that on post #860.
Note 2 (thanks to @vsbalint70): You can check with this boot.efi instead of the other one. It's supposed to disable SIP. I have checked it and it doesn't work to me. The link to download it, if you want to check it: https://drive.google.com/open?id=0B3xWIRz1McYkWFVtZi1TMTVBaGM
More info in the original post #786.
First, we need to change flags. From terminal (remember I'm supposing your Capitan partition is called "Capitann"):
Code:
cd /Volumes/Capitann/System/Library/CoreServices/
sudo chflags nouchg boot.efi
cd /Volumes/Capitann/usr/standalone/i386/
sudo chflags nouchg boot.efi
6- From Finder, use the "Go" menu and select "Go to folder..."
Open
/Volumes/Capitann/System/Library/CoreServices/ and copy there the new boot.efi from where you have it (probably your Downloads folder).
Open
/Volumes/Capitann/usr/standalone/i386/ and do the same.
We will assign the correct owner to them. From terminal:
Code:
cd /Volumes/Capitann/System/Library/CoreServices/
sudo chown root:wheel boot.efi
cd /Volumes/Capitann/usr/standalone/i386/
sudo chown root:wheel boot.efi
7a- We need kexts. We are using tones of kext from TRMJIJ - OS X Hackers (for example,
Beta-USB-Kexts). To make things easy, you have them all zipped in this link:
all-kexts. Download, unzip and copy them into
/Volumes/Capitann/System/Library/Extensions/.
There are two more kexts,
more-kexts.zip, that come from Hackintoshes. You only need them if you are cloning from your Hackintosh. Without them, El Capitan won't boot.
Note: If you have cloned from a Hackintosh, check your kexts into /Volumes/Capitann/System/Library/Extensions/ and /Volumes/Capitann/Library/Extensions/. Maybe you have things you don't need. Some of them can give you problems, for example, AppleACPIPS2Nub.kext or ApplePS2Controller.kext. I can say the same if you have some HDAEnablerx.kext or whatever that is "very Hackintosh".
If you have in these folders kexts like FakeSMC.kext and/or NullCPUPowerManagement.kext, remove them and change them to the ones I'm providing the attached file, more-kexts.zip. These two kexts have to be into /Volumes/Capitann/System/Library/Extensions/. If they are in /Volumes/Capitann/Library/Extensions/, delete them: they have to be only in one place and its place is /Volumes/Capitann/System/Library/Extensions/.
7b - Now we need to install the latest graphical kexts from OS X Hackers. Download the ones you need:
ATI kexts (MBP 2,x),
GMA 950 kexts (MB 2,x) or
GMA X3100 kexts (MB 3,x) and install them.
Maybe you get an error, don't care if it happens, kexts are installed equally.
Note: If you want to install NoSleep extension or other kexts, now it's the moment, too.
8a- Before doing 8b, you need to be sure you have an important folder, which is not always cloned.
Open in Finder /Volumes/Capitann/System/Library/Caches/ Do you have com.apple.kext.caches/ folder?
If not, open /System/Library/Caches/ in another window of the finder, and drag and drop com.apple.kext.caches/ from /System/Library/Caches/ to /Volumes/Capitann/System/Library/Caches/.
After that, open a terminal and:
Code:
cd /Volumes/Capitann/System/Library/Caches/
sudo chown -R root:wheel *.*
Note: If you don't have com.apple.kext.caches/, in step 8b you can get a message like:
or Can't create /Volumes/Capitann/System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext.JzU7 - No such file or directory. Or, in step 10, you can get a message like:
Can't create /Volumes/Capitann/System/Library/Caches/com.apple.kext.caches/Startup/kernelcache.l9a9 - No such file or directory and El Capitan won't boot.
8b- Now we need to rebuild permissions in the cloned disk. From terminal:
Code:
sudo /usr/libexec/repair_packages --repair --standard-pkgs --volume /Volumes/Capitann/
9- Now we will set boot flags and use them every time we boot. From terminal:
Code:
cd /Volumes/Capitann//Library/Preferences/SystemConfiguration/
sudo nano com.apple.Boot.plist
You will see:
<key>Kernel Flags</key>
<string></string>
You want to have:
<key>Kernel Flags</key>
<string>-no_compat_check kext-dev-mode=1 mbasd=1</string>
Or, if you want verbose mode, too, add
-v flag:
<key>Kernel Flags</key>
<string>-no_compat_check kext-dev-mode=1 mbasd=1 -v</string>
Note: we need these flags, they are mandatory to have all the kexts loaded.
To go out from nano editor, Ctrl+X and say "y".
10- Now we want to have permissions in good condition, and rebuilding kext cache. From terminal:
Code:
cd /Volumes/Capitann/System/Library/Extensions/
sudo chown -R root:wheel *.*
sudo chmod -R 755 *.*
sudo kextcache -v 1 -a x86_64 -m /Volumes/Capitann/System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext /Volumes/Capitann/System/Library/Extensions
The terminal should give you messages like these:
/Volumes/Capitann locked; waiting for the lock.
Lock acquired; proceeding.
kext-dev-mode allowing invalid signature -67054 0xFFFFFFFFFFFEFA12 for kext IOUSBHostFamily.kext
(...)
kext-dev-mode allowing invalid signature -67054 0xFFFFFFFFFFFEFA12 for kext AppleStorageDrivers.kext
kext-dev-mode allowing invalid signature -67050 0xFFFFFFFFFFFEFA16 for kext AppleIntelIntegratedFramebuffer.kext
kext-dev-mode allowing invalid signature -67061 0xFFFFFFFFFFFEFA0B for kext AppleIntelGMA950.kext
(...)
AppleDataSetManagement.kext - dependency for com.apple.iokit.IOAHCIBlockStorage lacks valid OSBundleCompatibleVersion.
AppleDataSetManagement.kext is missing dependencies (including anyway; dependencies may be available from elsewhere)
Created mkext archive /Volumes/Capitann/System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext.
Note 1: AppleDataSetManagement.kext messages will be shown if you have an SSD and TRIM enabled.
Note 2: If you get messages saying permissions are not correct, or omitting... repeat steps 7, 8 and 10 until you get these messages saying "kext-dev-mode allowing invalid signature..". Be sure you are doing all the steps (especially the terminal commands) correct, and in the correct order.
Note 3: If you get a message saying "Can't create...", do the step 8a again, it hasn't been done.
11- Now we are going to build the prelinked kernel and kernelcache:
Code:
sudo kextcache -prelinked-kernel /Volumes/Capitann/System/Library/Caches/com.apple.kext.caches/Startup/kernelcache -K /Volumes/Capitann/System/Library/Kernels/kernel /Volumes/Capitann/System/Library/Extensions /Volumes/Capitann/Library/Extensions
The output of the terminal should be similar to the prior one, because we are rebuilding kernel, but rebuilding caches, too.
Note: if you are on a Hackintosh, you can get messages like:
SoftRAID.kext has incorrect permissions; omitting.
(...)
ACS6x.kext has incorrect permissions; omitting.
Some of these kexts are from Hackintosh and will not be needed. Other ones, like HandsOff.kext, can be from some app you have installed. Be sure you are not omitting something important, as the kexts the prior command has loaded (AppleHDA.kext or similar), and don't care for the rest.
12- Now we can change flags to boot.efi, and protect it again. From terminal:
Code:
cd /Volumes/Capitann/System/Library/CoreServices/
sudo chflags uchg boot.efi
cd /Volumes/Capitann/usr/standalone/i386/
sudo chflags uchg boot.efi
13- Unmount the USB external drive, and connect it to your unsupported EFI32 Mac. Boot your unsupported Mac while holding Alt key and select your external HDD to boot from it. If it boots, you can take the HDD and put it into your unsupported Mac, or you can even clone it to your internal HDD/SSD.
USB Issue using this method: You need to have something connected to one of the USBs when booting if you want El Capitan to detect USB devices. It can be a small USB stick, for example.