Jump to content
arsradu

[HOW TO] Fix second stage boot logo and loading bar for some dedicated desktop video cards

389 posts in this topic

Recommended Posts

Advertisement

The unedited XML I attached in the earlier post is for my second machine P55-GT740. Let's forget it for now.

I got to extracting the unedited xml for the Z97-GTX950 following your first post.

Attaching here as unedited-device-properties.xml. Then copied few lines from the example of edited xml you provided in the first post & obtained the file attached here as edited-device-properties.xml.

IOReg capture is also attached & you will see total of 5 ports

Using common sense I got far enough with a working hex that gave me 2560X1440 resolution at boot (First stage) without CSMVideoDXE. But I have to enter the res in clover GUI portion of configurator or else I get a huge apple logo.

But I still do not have the second stage logo or bar. The hex file is okay because I bungled up once and had two Es instead of an E and F & the desktop went black.

To be quite sure that it is working I added the word EVGA to the name of the card & it did show up in the system profiler.

In the BIOS I use "other OS" setting which hides the CSM Part. Selecting Windows 8 brings it up with options "always" and "never". Tried both. With CSM, I got the watermelon size logo and with CSM Disabled or Other OS I got the HiRes 2560X1440 Logo. But the Holy-Grail still eludes.

So my Gladiator - Strategies?

 

EDIT:

The BIOS Setting is Windows 8 WHQL and settings 2560X1440 removed from clover GUI portion. Now I get the full res on the first stage of boot. Still the second stage logo & loader graphics missing.

Hi, William

 

You actually did very good, young padawan.

 

However, the Force it not quite yet with you entirely. :) 

 

Edit you must, the xml. And change from:

<key>@3,AAPL,boot-display</key>
<string>0x00000003</string>
 
to
 
<key>@3,AAPL,boot-display</key>
<string>0x00000001</string>

CSM, in your case, needs to be set to Never.

Share this post


Link to post
Share on other sites

O Master, I do thy bidding and indeed CSM is set to never. Yet there is no change. I tried adding EDID hex and also NVCAP using NVCap Maker 1.4. Nothing changes. I am guessing it is now something to do with mDP or DP stuff.

Such an irony but sorry I can't help but smile a little. You just thought you got rid of Dell and here it is haunting you back again.

Out of all options.

Share this post


Link to post
Share on other sites

@arsradu

How about going the DSDT route? 

 

EDIT : your PMs are being rejected. Your inbox full?

On Sunday I checked out an iMac booting 10.11.1 with iris pro 6200 graphics but with conventional HDD. Between the first & second stage boot there is a gap of about a second. Expecting shorter with an SSD. The laptops don't have the delay, i.e. the first & second are blended without any perceptible difference.

Share this post


Link to post
Share on other sites

@arsradu

How about going the DSDT route? 

 

EDIT : your PMs are being rejected. Your inbox full?

On Sunday I checked out an iMac booting 10.11.1 with iris pro 6200 graphics but with conventional HDD. Between the first & second stage boot there is a gap of about a second. Expecting shorter with an SSD. The laptops don't have the delay, i.e. the first & second are blended without any perceptible difference.

Hi William.

 

My inbox is far from being full and you're also on my friends list. Why can't you PM me..? I have no clue. Other people can. Not sure why can't you.

 

Yes, I'm aware of that gap on real iMacs. Not all of them have it. And I would gladly get rid of it, if I knew how to do it. Right now, let's focus on getting it fixed at least with the gap.

 

Also, please, use the Edit function to edit your posts. :P

 

And yeah, apparently I thought I got rid of Dells and here they are again. :))

 

Anyway, let's take issues one at a time:

 

1. If you've got a UEFI GOP VBIOS on your graphics card (I think you mentioned you do have a UEFI bios on your video card before, sorry if I'm mistaken), then leave the CSM option disabled (set to Never). It should make things a lot easier.

2. Make sure the config doesn't have Patch VBios or Inject EDID checked. You should not need them if your CSM is disabled.

3. Try to leave the Clover Resolution empty, for now. I know you said you get a huge logo if you don't specify anything in there. But it might be caused by something else. So, let's leave it empty for now.

 

If anything, please, share your config so I can check it out.

 

So far, you did very good. I hope we can get this fixed together.

 

UPDATE:

 

Will, you were right. My inbox was full. I don't know why I was under the impression it wasn't. I deleted some of the conversations. You should be able to PM me now. Sorry for the confusion.

Share this post


Link to post
Share on other sites

1. CSM is disabled (set to never)

2. I am attaching the config.plist here to make sure I am not overlooking something. VBIOS and EDID unchecked.

3. Clover res is empty and boot automatically shows in 2560X1440 small apple logo & progress bar. Second stage - black display, finally desktop.

So where's the bummer?

OMG it refuses to upload plist files. Attaching as zip

myconfig.zip

Share this post


Link to post
Share on other sites

1. CSM is disabled (set to never)

2. I am attaching the config.plist here to make sure I am not overlooking something. VBIOS and EDID unchecked.

3. Clover res is empty and boot automatically shows in 2560X1440 small apple logo & progress bar. Second stage - black display, finally desktop.

So where's the bummer?

OMG it refuses to upload plist files. Attaching as zip

I've had that issue before (nothing on second stage boot, going directly to desktop half way the progress bar). I'll have to investigate a little bit.

 

The bummer is most likely on the xml. You imported the changes from the xml back into the hex file before reading it? Otherwise, you will be reading the original hex, with no edits, so nothing new can be expected.

 

I'll take a closer look and update this post accordingly.

 

For now, please, keep the setup as it is.

 

And yes, you can't upload plist files directly. You need to archive them first.

 

Also, I would strongly suggest removing sensitive information from SMBIOS (RtVariables). I'm not interested in that, but other people might. So it would be a good habit to clean your config a little bit before sending it for debugging. That information can't affect the logo in any way, so don't worry, it won't screw up anything, test-wise.

Share this post


Link to post
Share on other sites

INTERSTING DEVELOPMENTS

Just out of curiosity I tried to run the OSX Default driver from the Nvidia prefpane which asked for a reboot. I tried this both without the HEX string in the device section of clover & with it.

Without any strings & OSX default driver clover resolution is full 2560X1440 with apple logo & progress bar and second-stage logo too is there. There is no gap in between but the bar halts for a second, then completes to the end & we have a desktop abruptly, not with the smooth transition. Naturally QE CI is disabled.

Now when I add the HEX string & leave OSX default driver the screens behave differently. The first stage logo is there with progress bar & then goes blank for a second to be replaced with just a progress bar without the apple logo (second stage) & desktop appears abruptly.

With the Nvidia Web driver enabled, the difference is minimal. A second stage logo with bar tries to peek in for fraction of a second before the desktop appears without a transition.

If only QE/Ci worked with the native OSX drivers. But this is getting close. Few iterations earlier ElCap wouldn't display without nv_disable=1 now I was able to boot to a working desktop without it.

Getting quite close. Yeah?

Share this post


Link to post
Share on other sites

I did it!

 

Mirone put a patch in my DSDT in the device PEGP / GFX0.

With EDID injection in config.plist now first and second stage boot logo are perfect.

It resolve also the problem of stretch apple logo, common in all gigabyte mobos.

I had to delete the "screen resolution" in "gui" section of clover configurator, making empty.

 

Very very thanks to Mirone and arsradu for their help to all the community. :)

Share this post


Link to post
Share on other sites

I did it!

 

Mirone put a patch in my DSDT in the device PEGP / GFX0.

With EDID injection in config.plist now first and second stage boot logo are perfect.

It resolve also the problem of stretch apple logo, common in all gigabyte mobos.

I had to delete the "screen resolution" in "gui" section of clover configurator, making empty.

 

Very very thanks to Mirone and arsradu for their help to all the community. :)

Great to hear that.

Could you please post the dsdt so I might try to replicate the patch & see whether it solves my problem? Also did you just enable the checkbox inject EDID or did something more? Thanks.

Share this post


Link to post
Share on other sites

Sorry guys, but yesterday I was busy to explane all. :)
For what I knew, Mirone injected EDID in config.plist and inject the content of file device-properties.xml directly in DSDT, section device PEGP / GFX0.
He injectes also "inject Nvidia" in DSDT (I don't know how), cause in my config.plist is de-selected, but this is not a problem.
I also had to copy CsmVideoDxe-64.efi in EFI/EFI/CLOVER/drivers64UEFI, even if I have an old BIOS mobo.
Comparing my old DSDT with the new one, my GFX0 section was:
 

 

   Device (GFX0)
                {
                    Name (_ADR, Zero)
                    Name (_SUN, One)
                    Method (_DSM, 4, NotSerialized)
                    {
                        If (LEqual (Arg2, Zero))
                        {
                            Return (Buffer (One)
                            {
                                0x03
                            })
                        }

                        Return (Package (0x0A)
                        {
                            "@0,connector-type",
                            Buffer (0x04)
                            {
                                0x00, 0x08, 0x00, 0x00
                            },

                            "@1,connector-type",
                            Buffer (0x04)
                            {
                                0x00, 0x08, 0x00, 0x00
                            },

                            "@2,connector-type",
                            Buffer (0x04)
                            {
                                0x00, 0x08, 0x00, 0x00
                            },

                            "@3,connector-type",
                            Buffer (0x04)
                            {
                                0x00, 0x08, 0x00, 0x00
                            },

                            "hda-gfx",
                            Buffer (0x0A)
                            {
                                "onboard-2"
                            }
                        })
                    }
                }

 

 

 

The new GFX0 is:
 

 

Device (GFX0)
                {
                    Name (_ADR, Zero)
                    Name (_SUN, One)
                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x22)
                            {
                                "AAPL,slot-name", 
                                "PCI x16", 
                                "@0,compatible", 
                                Buffer (0x0B)
                                {
                                    "NVDA,NVMac"
                                }, 

                                "@0,connector-type", 
                                Buffer (0x04)
                                {
                                    0x00, 0x08, 0x00, 0x00
                                }, 

                                "@0,AAPL,boot-display", 
                                Buffer (0x04)
                                {
                                    0x01, 0x00, 0x00, 0x00
                                }, 

                                "@0,device_type", 
                                Buffer (0x08)
                                {
                                    "display"
                                }, 

                                "@0,name", 
                                Buffer (0x0F)
                                {
                                    "NVDA,Display-A"
                                }, 

                                "@1,compatible", 
                                Buffer (0x0B)
                                {
                                    "NVDA,NVMac"
                                }, 

                                "@1,connector-type", 
                                Buffer (0x04)
                                {
                                    0x00, 0x08, 0x00, 0x00
                                }, 

                                "@1,AAPL,boot-display", 
                                Buffer (0x04)
                                {
                                    0x01, 0x00, 0x00, 0x00
                                }, 

                                "@1,device_type", 
                                Buffer (0x08)
                                {
                                    "display"
                                }, 

                                "@1,name", 
                                Buffer (0x0F)
                                {
                                    "NVDA,Display-B"
                                }, 

                                "NVCAP", 
                                Buffer (0x18)
                                {
                                    /* 0000 */    0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 
                                    /* 0008 */    0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 
                                    /* 0010 */    0x00, 0x00, 0x00, 0x00
                                }, 

                                "VRAM,totalsize", 
                                Buffer (0x04)
                                {
                                    0x00, 0x00, 0x00, 0x40
                                }, 

                                "device_type", 
                                Buffer (0x0C)
                                {
                                    "NVDA,Parent"
                                }, 

                                "model", 
                                Buffer (0x17)
                                {
                                    "Asus GeForce GT 220"
                                }, 

                                "rom-revision", 
                                Buffer (0x0F)
                                {
                                    "70.16.68.00.00"
                                }, 

                                "hda-gfx", 
                                Buffer (0x0A)
                                {
                                    "onboard-1"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }
            }

 


 
which is the content of modded device-properties.xml.
Here are my config.plist, DSDT and CsmVideoDxe-64.efi, but it could not work with your hardware, it's only for exemple.
 
http://www.insanelymac.com/forum/index.php?app=core&module=attach&section=attach&attach_id=183490

 

@ arsradu

 

Maybe you could update the guide.

Share this post


Link to post
Share on other sites

One thing missing from arsradu's approach is the NVCAP section. When removing the hex string from the clover devices section & booting with Nvidia web drivers IORegExplorer has NVCAP section with 40 hex values as expected. But booting with the string in place shows besides the NVCap values quite a few other things are missing.

I tried adding the NVCAP to clover but it is not working. The values are not loaded as also the other things missing. Quite a bit needs looking into.

 

WithoutString.tiff

WithString.tiff

Share this post


Link to post
Share on other sites

One thing missing from arsradu's approach is the NVCAP section. When removing the hex string from the clover devices section & booting with Nvidia web drivers IORegExplorer has NVCAP section with 40 hex values as expected. But booting with the string in place shows besides the NVCap values quite a few other things are missing.

I tried adding the NVCAP to clover but it is not working. The values are not loaded as also the other things missing. Quite a bit needs looking into.

 

NVCAP can be easily added into the xml, as well. But I doubt that's the culprit here.

 

Can you please, send me your (full) ioreg and original DSDT.aml in PM?

Sorry guys, but yesterday I was busy to explane all. :)

For what I knew, Mirone injected EDID in config.plist and inject the content of file device-properties.xml directly in DSDT, section device PEGP / GFX0.

He injectes also "inject Nvidia" in DSDT (I don't know how), cause in my config.plist is de-selected, but this is not a problem.

I also had to copy CsmVideoDxe-64.efi in EFI/EFI/CLOVER/drivers64UEFI, even if I have an old BIOS mobo.

Comparing my old DSDT with the new one, my GFX0 section was:

 

 

 

   Device (GFX0)
                {
                    Name (_ADR, Zero)
                    Name (_SUN, One)
                    Method (_DSM, 4, NotSerialized)
                    {
                        If (LEqual (Arg2, Zero))
                        {
                            Return (Buffer (One)
                            {
                                0x03
                            })
                        }

                        Return (Package (0x0A)
                        {
                            "@0,connector-type",
                            Buffer (0x04)
                            {
                                0x00, 0x08, 0x00, 0x00
                            },

                            "@1,connector-type",
                            Buffer (0x04)
                            {
                                0x00, 0x08, 0x00, 0x00
                            },

                            "@2,connector-type",
                            Buffer (0x04)
                            {
                                0x00, 0x08, 0x00, 0x00
                            },

                            "@3,connector-type",
                            Buffer (0x04)
                            {
                                0x00, 0x08, 0x00, 0x00
                            },

                            "hda-gfx",
                            Buffer (0x0A)
                            {
                                "onboard-2"
                            }
                        })
                    }
                }

 

 

 

The new GFX0 is:

 

 

 

Device (GFX0)
                {
                    Name (_ADR, Zero)
                    Name (_SUN, One)
                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x22)
                            {
                                "AAPL,slot-name", 
                                "PCI x16", 
                                "@0,compatible", 
                                Buffer (0x0B)
                                {
                                    "NVDA,NVMac"
                                }, 

                                "@0,connector-type", 
                                Buffer (0x04)
                                {
                                    0x00, 0x08, 0x00, 0x00
                                }, 

                                "@0,AAPL,boot-display", 
                                Buffer (0x04)
                                {
                                    0x01, 0x00, 0x00, 0x00
                                }, 

                                "@0,device_type", 
                                Buffer (0x08)
                                {
                                    "display"
                                }, 

                                "@0,name", 
                                Buffer (0x0F)
                                {
                                    "NVDA,Display-A"
                                }, 

                                "@1,compatible", 
                                Buffer (0x0B)
                                {
                                    "NVDA,NVMac"
                                }, 

                                "@1,connector-type", 
                                Buffer (0x04)
                                {
                                    0x00, 0x08, 0x00, 0x00
                                }, 

                                "@1,AAPL,boot-display", 
                                Buffer (0x04)
                                {
                                    0x01, 0x00, 0x00, 0x00
                                }, 

                                "@1,device_type", 
                                Buffer (0x08)
                                {
                                    "display"
                                }, 

                                "@1,name", 
                                Buffer (0x0F)
                                {
                                    "NVDA,Display-B"
                                }, 

                                "NVCAP", 
                                Buffer (0x18)
                                {
                                    /* 0000 */    0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 
                                    /* 0008 */    0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 
                                    /* 0010 */    0x00, 0x00, 0x00, 0x00
                                }, 

                                "VRAM,totalsize", 
                                Buffer (0x04)
                                {
                                    0x00, 0x00, 0x00, 0x40
                                }, 

                                "device_type", 
                                Buffer (0x0C)
                                {
                                    "NVDA,Parent"
                                }, 

                                "model", 
                                Buffer (0x17)
                                {
                                    "Asus GeForce GT 220"
                                }, 

                                "rom-revision", 
                                Buffer (0x0F)
                                {
                                    "70.16.68.00.00"
                                }, 

                                "hda-gfx", 
                                Buffer (0x0A)
                                {
                                    "onboard-1"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }
            }

 

 

 

which is the content of modded device-properties.xml.

Here are my config.plist, DSDT and CsmVideoDxe-64.efi, but it could not work with your hardware, it's only for exemple.

 

http://www.insanelymac.com/forum/index.php?app=core&module=attach&section=attach&attach_id=183490

 

@ arsradu

 

Maybe you could update the guide.

 

Once I test this on a few other configurations, I will update the guide.

 

Also, I wanna make sure I know how to do this before updating anything, since it has a big potential to make the computer unbootable.

 

DSDTs are apparently very, very different from one computer to another. For example, I don't have any "@xxx,connector-type" in my GFX0 section.

Share this post


Link to post
Share on other sites

DSDTs are a different beast. I wrestled quite a bit on gigabyte p45 & p55 boards. Thought those days were over. arsradu, the connector types are not in the dsdts to begin with, you need to add those edits to gfx0. There's a very good explanation on those somewhere. Will PM you the link once I find it. I will need to extract a fresh dsdt. Now I think clover can do this while booting, previously I booted Ubuntu to get these. Tomorrow I hope to send this and the ioreg to you.

But what's really mystifying is when I put the nvcap values in the relevant section in the plist they do not show in ioregexplorer if the hex string is in place. Which means they have to be integrated into the hex string.

Let's take one step at a time. I have no idea how to go about. Can you do this?

Share this post


Link to post
Share on other sites

DSDTs are a different beast. I wrestled quite a bit on gigabyte p45 & p55 boards. Thought those days were over. arsradu, the connector types are not in the dsdts to begin with, you need to add those edits to gfx0. There's a very good explanation on those somewhere. Will PM you the link once I find it. I will need to extract a fresh dsdt. Now I think clover can do this while booting, previously I booted Ubuntu to get these. Tomorrow I hope to send this and the ioreg to you.

But what's really mystifying is when I put the nvcap values in the relevant section in the plist they do not show in ioregexplorer if the hex string is in place. Which means they have to be integrated into the hex string.

Let's take one step at a time. I have no idea how to go about. Can you do this?

I can add the NVCAP into the xml, yes. You can do it too.

 

You will need the NVCAP value (you can use NVCAP Maker for that), encoded in Base64 and added like this into the xml:

 

<key>NVCAP</key>
<data>
BAAAAAAAIQAAAAAAAAAABwAAAAA= (this is just an example)
</data>

You can use this command to encode your string.

 

echo <your NVCAP value> | xxd -r -p | openssl enc -base64

Share this post


Link to post
Share on other sites

arsradu

 

 

Also, I wanna make sure I know how to do this before updating anything, since it has a big potential to make the computer unbootable.

DSDTs are apparently very, very different from one computer to another.

 

Yes, of course :)

Share this post


Link to post
Share on other sites

arsradu

 

 

Yes, of course :)

 

Thank you for understanding, Marco.

 

I'm looking into editing William's DSDT. I'm having some issues getting it done. So, yeah, it will take some time and understanding to add this into the tutorial, assuming it can be added. The big problem is the difference between one computer and another. What works for you might not work for me, and vice-versa.

 

For me, for example, the xml editing method worked fine so far. However, for you and for William, it didn't, for some reason I can't possibly understand. 

 

As you well saw, the DSDT patching method for this case is not that different from what we're doing using the device-properties xml method. In theory, both methods should work just as fine. Still, they don't. Why? I have no idea.

 

Patching DSDT is not an easy task to do. And even though now we have maciASL to do it, it's still not a walk in the park to do it. Especially when you're new to this kind of editing and the compiler throws a bunch of errors at you and you have no idea what causes them or how to fix them.

 

So..yeah, I'm glad you got it fixed. But it might take a while until I can provide a reliable way to do this using DSDT patching method. If Mirone would be so kind to help me understand how this is supposed to work, it would make this task a LOT easier. Until then...I'm trying it on my own. :)

Share this post


Link to post
Share on other sites

I understand.

I too, I'm not a DSDT expert, but I think it could be a way.

Everybody can install clover on a pendrive and try a DSDT. If it doesn't work, the boot from HD is safe.

 

Yep, that would be a fail-safe. Just as we have with the xml (device-properties) editing. A pen drive with Clover on it is the easier fix for something going terribly wrong with a DSDT patch.

 

For now, I'm just trying to figure out how is this patch suppose to work. It doesn't look THAT complicated, but when it starts throwing errors and you don't know why, it gets frustrating really fast. :))

 

Anyway, we'll see how it goes. :)

Share this post


Link to post
Share on other sites

 

. If Mirone would be so kind to help me understand how this is supposed to work, it would make this task a LOT easier. Until then...I'm trying it on my own. :)

I'll help you with that,
I will explain exactly how I do, but I will do it
tonight I am now with my daughter.

Share this post


Link to post
Share on other sites

@Mirone - I will send all relevant files tomorrow.

@arsradu - the first major difference is you're not using nvidia drivers whereas I am. Even I get a full second stage without the drivers. I was going through the difference when I thought of trying your suggestion of minimal edit to the xml. I must have done something wrong. All I could see was the boot animation which refused to go away. I got stuck so bad that the installer usb did not help. I had to physically connect the ssd to another machine edit the config plist in that and then it worked. Lucky it was a Sunday. I would have been in a soup otherwise.

Anyways I got another ssd to which I will install a fresh 10.11.4 and continue tests & trials on that.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By shinho73
      I have Sierra 10.12.6 on A8 7600. Whenever the USB is inserted, the screen freezes. Without USB, no issues. Also, having power off and reboot issue. The monitor turns off, but the pc fan stays on. Any help will be greatly appreciated. Thank you. 
       
       
       
       

    • By fusion71au
      Clover r5051 ISO compiled with GCC and minimal config.plist compatible for use in VMWare Workstation.
       
      Tested with unlocked Workstation 15 running OSX 10.9 -->10.15 guest in Windows X64 host.
       
      Installation
      1. Download and unzip "EFI_Clover_r5051 for VMware.zip". Mount Clover-v2.5k-5051-X64.iso by double clicking on it.
      2. Mount your VM's EFI System Partition eg in terminal
      sudo diskutil mount disk0s1   3. Copy EFI folder from step 1 into the EFI partition
      4. Shutdown the VM, add bios.bootDelay = "3000" to your VM's vmx file
      5. Reboot your VM, press <F2> to access the VMware Boot Manager and add CLOVERX64.efi to the boot menu.
       
      Substitute your own unique and valid MLB and ROM variables in the /EFI/CLOVER/config.plist (Rt Variables section) to activate iMessage/Facetime on your VM.
    • By fusion71au
      This is a brief guide on how to create a vanilla El Capitan (also same process for Sierra) OS X Installer USB with an updated prelinked kernel containing FakeSMC.

      It is tailored for those users who want to understand the “nuts and bolts” of how to create an installer and also to help brush up on their terminal skills (rather than have one made for them with the numerous automated “tools” available or even Apple’s createinstallmedia) :
       
       
      Specifically, it is also a “Proof of Concept” which shows that installation is possible without even having to rely on boot loader kext injection.

      Prerequisites
      Existing Yosemite installation (or Mavericks - see post#4 for steps 7,8) “Install OS X El Capitan.app" downloaded to the Applications folder Pacifist FakeSMC.kext - Slice or Kozlek branch Bootloader - Clover or Chameleon 8GB or larger USB drive (16GB recommended), formatted HFS+ (MBR or GUID) named “Installer”  
      Procedure
      1.  Boot into Yosemite with the kext-dev-mode=1 boot flag
      2.  Open OS X terminal and type the following lines, followed by <Enter> after each line.
          The image restore and file copying may take a while to complete, and at the end of the process, the Installer volume is renamed to “OS X Base System"....
       
      sudo -s hdiutil attach /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/SharedSupport/InstallESD.dmg asr restore -source /Volumes/OS\ X\ Install\ ESD/BaseSystem.dmg  -target /Volumes/Installer -erase -format HFS+ -noprompt -noverify rm /Volumes/OS\ X\ Base\ System/System/Installation/Packages cp -av /Volumes/OS\ X\ Install\ ESD/Packages /Volumes/OS\ X\ Base\ System/System/Installation cp -av /Volumes/OS\ X\ Install\ ESD/BaseSystem.dmg /Volumes/OS\ X\ Install\ ESD/BaseSystem.chunklist /Volumes/OS\ X\ Base\ System diskutil unmount /Volumes/OS\ X\ Install\ ESD exit 3.  Right click on the “OS X Base System” Volume and click “Get Info”
       

      4.  Click on the lock icon and untick “Ignore ownership on this volume”
       

      5.  Extract/Copy the El Capitan Kernels folder into /System/Library/ of the USB with Pacifist.  NB It is found in the "Essentials.pkg" in /System/Installation/Packages
       

      6.  Delete or Rename the original /System/Library/PrelinkedKernels/prelinkedkernel —> OG.prelinkedkernel
       

      7.  Copy FakeSMC.kext and other necessary kexts (e.g. VoodooPS2Controller.kext for laptops) into the /Library/Extensions folder of the installer USB using Finder.
       

      8.  Back in terminal, type the following lines, followed by <Enter> after each line to rebuild the prelinkedkernel…..
       
      sudo -s chmod -R 755 /Volumes/OS\ X\ Base\ System/Library/Extensions chown -R 0:0 /Volumes/OS\ X\ Base\ System/Library/Extensions touch /Volumes/OS\ X\ Base\ System/System/Library/Extensions kextcache -u /Volumes/OS\ X\ Base\ System exit Any errors should be noted but the output below is normal e.g.


      9. Install your Bootloader targeting the OS X Base System volume
       
       
       
       
      10.  Boot your system with the USB without injected kexts into the OS X Installer GUI....
       
       
       
       
       
      Post Install
      The original prelinked kernel in a fresh install of El Capitan will also lack FakeSMC ie it will only be linked to Apple signed kexts.  In order to boot into El Capitan the first time around without boot loader kext injection, the PLK needs to be rebuilt for the El Capitan volume like we did for the installer:
       
      1.  Boot into Yosemite with the kext-dev-mode=1 boot flag
      2.  Delete or Rename the original /System/Library/PrelinkedKernels/prelinkedkernel for the El Capitan volume —> OG.prelinkedkernel
      3.  Copy FakeSMC.kext and other necessary kexts (e.g. VoodooPS2Controller.kext for laptops) into the /Library/Extensions folder of El Capitan using Finder
      4.  Back in terminal, type the following lines, followed by <Enter> after each line to rebuild the prelinkedkernel.  In this example, the El Capitan volume is named "El_Capitan" - change if you have named it something else...
      sudo -s chmod -R 755 /Volumes/El_Capitan/Library/Extensions chown -R 0:0 /Volumes/El_Capitan/Library/Extensions touch /Volumes/El_Capitan/System/Library/Extensions kextcache -u /Volumes/El_Capitan exit 5. Install your Bootloader targeting the El Capitan volume.  This step is only necessary if you are installing El Capitan on a new drive without existing boot loader (not required if installing on a disk with existing boot loader beside Yosemite).
      6. Reboot your system without injected kexts into El Capitan!
       
       
      Other links
      The All-In-One Guide to Vanilla OS X for beginners
       
      Updates for Sierra and High Sierra   Custom Prelinkedkernel Generator Tool I have made a custom prelinkedkernel generator "PLK.tool" for Sierra + El Capitan.  Instructions:   1.  Download and extract the attached BaseSystem_PLK.tool.zip into your ~/Downloads folder.   2.  Copy any extra kexts necessary for booting your hack to ~/Downloads/BaseSystem/ExtraKexts (e.g. FakeSMC, VoodooPS2Controller), making sure SIP is disabled. 3.  Copy BaseSystem.dmg to ~/Downloads/BaseSystem  4.  Open terminal and run the following commands... cd ~/Downloads/BaseSystem chmod +x PLK.tool ./PLK.tool ---> supply your admin password ---> will place your new custom prelinkedkernel on the desktop.       macOS High Sierra bypass Firmware and MBR checks in post#13.
      BaseSystem_PLK.tool_ElCap.zip
      BaseSystem_PLK.tool_Sierra.zip
      BaseSystem_PLK.tool_Mojave.zip (need to run in Mojave to avoid dependency errors)
       
      BaseSystem_PLK.tool_Catalina.zip
×