Jump to content

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


arsradu
 Share

391 posts in this topic

Recommended Posts

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.

Link to comment
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.

Link to comment
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.

Link to comment
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.

Link to comment
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

Link to comment
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.

Link to comment
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?

Link to comment
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. :)

  • Like 1
Link to comment
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.

Link to comment
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.

Link to comment
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

Link to comment
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.

Link to comment
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?

Link to comment
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
Link to comment
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. :)

Link to comment
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. :)

Link to comment
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.
  • Like 1
Link to comment
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.

Link to comment
Share on other sites

 Share

×
×
  • Create New...