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

OK, I've got it to display 4096MB. I checked the IOReg again without using the EFI string injection and matched the values. It needs two injections:

<key>VRAM,totalMB</key>
<string>0x00001000</string>
<key>VRAM,totalsize</key>
<string>0x08000000</string>

Without VRAM,totalMB it reported 128MB.

 

HDA is working again by adding it to the EFI string as cecekpawon suggested earlier.

 

Update: With just VRAM,totalMB set it also displays 4096MB correctly (VRAM,totalsize isn't displayed in IOReg).

 

BTW, I should reiterate that unlike the 210 and 5450, I'm using legacy boot with this 670. The Z68 can't disable CSM.

Link to comment
Share on other sites

OK, I've got it to display 4096MB. I checked the IOReg again without using the EFI string injection and matched the values. It needs two injections:

<key>VRAM,totalMB</key>
<string>0x00001000</string>
<key>VRAM,totalsize</key>
<string>0x08000000</string>

Without VRAM,totalMB it reported 128MB.

 

HDA is working again by adding it to the EFI string as cecekpawon suggested earlier.

 

Update: With just VRAM,totalMB set it also displays 4096MB correctly (VRAM,totalsize isn't displayed in IOReg).

 

BTW, I should reiterate that unlike the 210 and 5450, I'm using legacy boot with this 670. The Z68 can't disable CSM.

 

0x00001000, that's 4096. Ok, then maybe we don't need "VRAM,totalsize" in the first place..?

 

Also, not sure why you added that value, but if you used VRAM,totalsize as 0x08000000, then it's quite normal to get 128 MB. :))

 

Because 0x08000000 = 134217728 bytes = 128 MB.

Link to comment
Share on other sites

I tried VRAM,totalsize with 0x08000000 because that's how it was set in the IOReg when correctly displaying 4096MB. I was just ignoring the VRAM,totalMB setting above it at first.

 

It doesn't appear to require VRAM,totalsize. Maybe that's a legacy setting for cards with lower VRAM.

 

As for the still-missing second stage boot, I'm not using PatchVBIOS because as well as giving me a low-res boot, it also removes the Apple logo from what would be the second-stage (it fades out when the desktop loads). I am using InjectEDID though.
 

Link to comment
Share on other sites

I tried VRAM,totalsize with 0x08000000 because that's how it was set in the IOReg when correctly displaying 4096MB. I was just ignoring the VRAM,totalMB setting above it at first.

 

It doesn't appear to require VRAM,totalsize. Maybe that's a legacy setting for cards with lower VRAM.

 

Might be... 

 

And 0x08000000 displayed as 4096 MB is really odd. Maybe it was totally ignoring that value? I can't find any other explanation to that. That value is 128 MB. :))) So, removing totalMB will leave you with that value, which is perfectly normal. Question is, how did it get there in the first place? And does it serve any actual purpose, besides making us wonder about it? Which seems to be very good at? :))

Link to comment
Share on other sites

Both values were there in the IOReg. I'm not using any injection for the 670, but I do have Clover's FixDisplay DSDT fix set. Not for any particular reason I think, it just didn't seem to do any harm.

 

I'm assuming the VRAM,totalsize value is ignored once the VRAM,totalMB one is set.

  • Like 1
Link to comment
Share on other sites

Hello

 

I approve.

 

However, you might want to add this part, between [ code ] tags, as well :) :

 

./gfxutil -i xml -o hex device-properties.xml device-properties.hex

Also, if you think screenshots might help, maybe add those as well.

 

Thank you i've corrected it.

Link to comment
Share on other sites

I'm also curious if this works for you with Clover and injecting the device properties hex. :D I would love to add your GTX 670 to the list of successfully tested video cards (even if it's with limited support, for now), just like it was for wrk73. I don't see why it wouldn't work with that method. So far, people who tried them both said that it works with either one of them.

 

Also, for as far as I can see, you also have a video card with 4 GB of RAM. Do you also see 4095 MB in About This Mac, without "forcing it" to display a specific value? Cause I don't see 2047 on mine. :)) I've got 2048 MB, as I think is intended. So not sure why would you have 1MB less in your case. But I'm just asking.

 

Also, if you could share your opinion on the hex value we might need to use for 4096 MB of VRAM, that would be really nice. Apparently 0x100000000 is not ok, for some reason. So I'm trying to fix this, as well (even if it's just a cosmetic issue). So feedback is really appreciated.

 

Arsradu

 

Sorry for the delay.

 

I can now verify that Clover UEFI and Ozmosis have the same boot graphics. The only different was the method on injection (Clover also works with a pure DSDT injection like Oz). With both Clover or Oz I still loose the Apple logo during the 2nd stage bootloader if my resolution is higher then 1920x1080. Regardless of the resolution I still get the process bar centered and a smooth transition into the desktop or login screen.

 

I don't need to inject the VRAM with either Oz or Clover both show that I have "NVIDIA GeForce GTX 670 4096 MB graphics" under About This Mac, System Information and/or IORegistryExplorer.

 

Thanks again for your help!

 

I would go ahead and add the EVGA Nvidia GTX 670 Superclocked+ 4GB (with UEFI GOP firmware update) card to your supported list. With my hardware combination; one only needs to inject @x,AAPL,boot-display to get both the 1st and 2nd bootloader graphics working. The only glitch(s) are the 0.5 second blackout between the two stages, and a missing Apple logo during the 2nd stage if System Preferences > Displays > Resolution is set (scaled) greater then 1920x1080.

 

Gratitude,

 

Robert aka Mrengles

 

If someone would like video of my boot, just let me know. It the same as everyone else's with a working setup though.  :yes:

Edited by Mrengles
Link to comment
Share on other sites

This my second stage boot in El Capitan (old post Yosemite http://www.insanelymac.com/forum/topic/298808-can-we-get-back-the-apple-logo-on-boot/?p=2035981)
NVdia GT 220, LG D2343

CsmVideoDxe-64 to get optimum res 1080p
Clover -> Config.plist
Custom Edid “value” , Inject EDid, PatchVBios = Yes
Inject = Yes Properties “value” on Device section for HDMI
DSDT
add @x, AAPL,boot-display in DSDT on Device (GFX0)  
x= depend on your system
 

post-1113740-0-30755300-1444968333_thumb.jpg

 

video :

2ndboot.mov

 

 

btw: matur nuwun mas cecekpawon :D  .. (thank you in english)

Link to comment
Share on other sites

This my second stage boot in El Capitan (old post Yosemite http://www.insanelymac.com/forum/topic/298808-can-we-get-back-the-apple-logo-on-boot/?p=2035981)

NVdia GT 220, LG D2343

 

CsmVideoDxe-64 to get optimum res 1080p

Clover -> Config.plist

Custom Edid “value” , Inject EDid, PatchVBios = Yes

Inject = Yes Properties “value” on Device section for HDMI

DSDT

add @x, AAPL,boot-display in DSDT on Device (GFX0)  

x= depend on your system

 

attachicon.gifsecond-stage.jpg

 

video :

attachicon.gif2ndboot.mov

 

 

btw: matur nuwun mas cecekpawon :D  .. (thank you in english)

Thanks for confirming on your card. Since this thread is not about DSDT edits, if you have a bit of time, could you please, try to do the same using clover device properties injection as described on the main page? :D

 

I'm just curious if it still works with that method. :)

Arsradu

 

Sorry for the delay.

 

I can now verify that Clover UEFI and Ozmosis have the same boot graphics. The only different was the method on injection (Clover also works with a pure DSDT injection like Oz). With both Clover or Oz I still loose the Apple logo during the 2nd stage bootloader if my resolution is higher then 1920x1080. Regardless of the resolution I still get the process bar centered and a smooth transition into the desktop or login screen.

 

I don't need to inject the VRAM with either Oz or Clover both show that I have "NVIDIA GeForce GTX 670 4096 MB graphics" under About This Mac, System Information and/or IORegistryExplorer.

 

Thanks again for your help!

 

I would go ahead and add the EVGA Nvidia GTX 670 Superclocked+ 4GB (with UEFI GOP firmware update) card to your supported list. With my hardware combination; one only needs to inject @x,AAPL,boot-display to get both the 1st and 2nd bootloader graphics working. The only glitch(s) are the 0.5 second blackout between the two stages, and a missing Apple logo during the 2nd stage if System Preferences > Displays > Resolution is set (scaled) greater then 1920x1080.

 

Gratitude,

 

Robert aka Mrengles

 

If someone would like video of my boot, just let me know. It the same as everyone else's with a working setup though.  :yes:

 

Hi, Robert

 

Thank you very much for confirming! I will add your card to the main post.

 

For further research on the VRAM issue that some people are having, could you please, share your IOreg?

 

I'm curious if your card uses VRAM,totalMB or VRAM,totalsize or maybe both as it did for Riley, but ignoring one of them.

 

Also, just to confirm, did you disable CSM support in your motherboard UEFI Bios (since you've got a GOP VBios on your card)?

Link to comment
Share on other sites

I checked the IOReg on my X79 running the HD5450 and it's just using VRAM,totalMB. I'm only injecting boot-display, a cosmetic version number and a fake device ID for that so everything else is OS-generated.

 

I also tried injecting just boot-display for the 670 and it worked the same as when I injected the rest of the nVidia properties. In the case of my 210 it needed injection so I had to use everything. But for cards that don't require injection to work it might be possible to leave out most of the properties and let OS X fill them in itself. I still don't have a second stage with the 670, but I didn't have it with all the other properties filled in either. I do have the Apple logo at the desktop transition which wasn't there without setting boot-display.

  • Like 1
Link to comment
Share on other sites

@Riley Freeman

 

Does your 670 support UEFI GOP? When I first purchased my card the Nvidia 670 Superclock it had a bios based firmware. I had to contact EVGA support for the non-public release of the UEFI GOP firmware update. EVGA would give this new firmware to members of the public, but you had to ask for it and it was never released to my knowledge on a non-individual basis. I'm just wondering if you're 670 card manufacturer has done the same thing? At the time the 670 was being newly released and manufactured it was right around the time when all the computer manufactures started switching to UEFI windows eight support.

Link to comment
Share on other sites

I checked the IOReg on my X79 running the HD5450 and it's just using VRAM,totalMB. I'm only injecting boot-display, a cosmetic version number and a fake device ID for that so everything else is OS-generated.

 

I also tried injecting just boot-display for the 670 and it worked the same as when I injected the rest of the nVidia properties. In the case of my 210 it needed injection so I had to use everything. But for cards that don't require injection to work it might be possible to leave out most of the properties and let OS X fill them in itself. I still don't have a second stage with the 670, but I didn't have it with all the other properties filled in either. I do have the Apple logo at the desktop transition which wasn't there without setting boot-display.

 

Many thanks. So in theory we can switch all the VRAM hex values to match VRAM,totalMB, right? I'll test this on my GTX 650, as well, just to confirm this is a reliable solution for this case.

@Riley Freeman

 

Does your 670 support UEFI GOP? When I first purchased my card the Nvidia 670 Superclock it had a bios based firmware. I had to contact EVGA support for the non-public release of the UEFI GOP firmware update. EVGA would give this new firmware to members of the public, but you had to ask for it and it was never released to my knowledge on a non-individual basis. I'm just wondering if you're 670 card manufacturer has done the same thing? At the time the 670 was being newly released and manufactured it was right around the time when all the computer manufactures started switching to UEFI windows eight support.

 

Sorry to intervene. Just adding to the topic :) I also had to ask for a UEFI GOP VBIOS on the MSi forum. And they were really nice and fast in providing me with the correct one for my card (based on the SN). I'm not sure if in my case it had anything to do with the release of Windows 8, but yeah, that's how I got my card updated.

Link to comment
Share on other sites

@arsradu: Yeah I think it should be safe to just use totalMB by default.

 

@Mrengles: My 670 supports GOP but my motherboard doesn't. It has a UEFI bios but doesn't allow disabling CSM for a pure UEFI boot. That's why I'm stuck using legacy boot.

 

It's possible to add GOP support to most cards by building your own GOP/BIOS rom. Andy has a topic here for doing this in OS X. There's another tool here for Windows which is a bit better in that it also contains up-to-date GOP roms.

  • Like 2
Link to comment
Share on other sites

@ Arsradu

 

I will definitely share my IOReg export later today. I have CSM disabled in my AsRock (AMI) UEFI, and currently have ultrafast boot selected. This doesn't seem to change the Apple boot loader graphics in anyway. I've tested both disabled and enabled. It does however produce a faster boot for my machine eliminating the AsRock splash screen.

  • Like 1
Link to comment
Share on other sites

@ Arsradu

 

I will definitely share my IOReg export later today. I have CSM disabled in my AsRock (AMI) UEFI, and currently have ultrafast boot selected. This doesn't seem to change the Apple boot loader graphics in anyway. I've tested both disabled and enabled. It does however produce a faster boot for my machine eliminating the AsRock splash screen.

 

Hehe, mine is set on Fast, or something like that. Not much of an improvement there... But I'm running off an HDD. So maybe there's not much speed improvement I can see under these circumstances. And I have my Gigabyte logo displayed twice for some unknown reason (once for each BIOS of its dual-bios feature? :)) )... Maybe I should try the Ultra Fast setting, as well. See if it makes any difference.

 

Also, looking forward to that IOreg. And thank you!

 

You know guys, this is how I always imagined a forum. A place where people can share their ideas, their support, their opinions, where they can do awesome stuff, and also make mistakes sometimes, where they can brainstorm and discover things about OS X or their hardware, or technology in general, or whatever the topic is, that they didn't know before, discover things about themselves that they didn't know they had before, a place where they can improve and help others improve as well. And also, have fun doing it. :)

 

And the last few pages of this thread have been a proof of exactly that.

 

So thank you for that. :)

  • Like 2
Link to comment
Share on other sites

... could you please, try to do the same using clover device properties injection as described on the main page ...

 

... I'm curious if your card uses VRAM,totalMB or VRAM,totalsize or maybe both as it did for Riley, but ignoring one of them ...

 

 

Sorry If I was not clear in my earlier post, but yes the method on the first page worked with Clover as well as pure DSDT patches.

 

Please find the screen shots below. I'll add the entire IOReg file when I get home.

 

Keep in mind my IOFBNeedsRefresh=False right after startup, If I can get IOReg opened in time, but after a very short minute, it will change to IOFBNeedsRefresh=True regardless of what I inject. I haven't seen or heard anyone else mention this, any of you?

post-1055078-0-00651000-1445005000_thumb.png

post-1055078-0-27780200-1445005026_thumb.png

post-1055078-0-77077900-1445005045_thumb.png

Edited by Mrengles
  • Like 1
Link to comment
Share on other sites

@arsradu: If you feel like trying another experiment, can you remove all the properties you're injecting for your card with the exception of boot-display? I have a hunch that with cards that normally work OOTB that adding all the other properties isn't really necessary. In my case with the 670 it works the same in both cases but I don't have a working second-stage.

 

I'd be curious to find out if yours works the same with or without all the other properties as they should get injected automatically by OS X.

Link to comment
Share on other sites

@arsradu: If you feel like trying another experiment, can you remove all the properties you're injecting for your card with the exception of boot-display? I have a hunch that with cards that normally work OOTB that adding all the other properties isn't really necessary. In my case with the 670 it works the same in both cases but I don't have a working second-stage.

 

I'd be curious to find out if yours works the same with or without all the other properties as they should get injected automatically by OS X.

 

Hey Riley! Sure, I will try it. :) Uhm, last time I remember trying that, I had 0MB displayed in About My Mac... though I might be wrong. So I will try it anyway, just to confirm.

 

Also, I'm not using the UEFI GOP Vbios on my card, although my motherboard supports disabling  CSM (and I'm surprised it does, since it's a pretty entry-level motherboard, nothing special about it). And I'm using CSM (still) because of my other HDD which is running Windows 7 and Ubuntu. If I disable CSM, there is no option to boot from that HDD anymore, since that's not formatted as GPT.

 

Anyway, yes, I will try it. And let you know.

Link to comment
Share on other sites

If you try injecting any other values it might interfere with OS X generating them. When I tried removing just the rom-revision property I couldn't boot into OS X any more as the card kept causing kernel panics. So try with just boot-display and nothing else.

Link to comment
Share on other sites

If you try injecting any other values it might interfere with OS X generating them. When I tried removing just the rom-revision property I couldn't boot into OS X any more as the card kept causing kernel panics. So try with just boot-display and nothing else.

 

Well..I did try it. And it does work, so your hunch was apparently right. :P But now my VRAM shows as 2047 MB. No other issues though. And no other differences. "Logo-wise" everything is the same.

 

UPDATE: well, that went south fast.

 

You know what you should not try? Removing the other properties (leaving only the one for boot-display), and switching to default OS X driver. You're asking for KP and you won't be able to boot anymore (first stage ok, but automatic reboot when attempting loading the second stage). Yes, it works ok, but only with proprietary Nvidia driver installed and activated. Which doesn't make this suitable for new installations.

 

So, don't try this at home. :))

Solution (if you're really itching to try it): boot with nv_disable=1 kernel flag. You won't have acceleration, yes, but you will be able to boot so you can fix your system.

 

And speaking of witch, why in the name of Thor, do I have a smooth loading bar and logo when acceleration is disabled (nv_disable=1)? How is that even possible?

 

@ Arsradu

 

I will definitely share my IOReg export later today. I have CSM disabled in my AsRock (AMI) UEFI, and currently have ultrafast boot selected. This doesn't seem to change the Apple boot loader graphics in anyway. I've tested both disabled and enabled. It does however produce a faster boot for my machine eliminating the AsRock splash screen.

 

Setting the UEFI Bios to UltraFast, was not a good idea. Since I wasn't able to boot into Bios (F2) or access the boot menu (F12) to access other drives anymore. It was booting into Clover and into OS X just fine (but that's because I got my OS X drive set as first boot option). But I could not boot into Bios. Also, weird thing, trying to use the Reboot option in Clover UI would just make it freeze completely. Doesn't happen with Fast/disabled options.

 

Solution:

1. Power off the PC

2. Power off the PSU

3. Press the power button to draw all the current left on the system

4. Power on the PSU

5. Power on the PC

6. Access Bios and switch back to Fast or disabled.

 

Alternative solution: reset CMOS.

Link to comment
Share on other sites

Ouch. That's strange as I have no problem booting here with nvidia or stock drivers. I'm running Yosemite on the Z68 but I don't think that would matter.

 

It sounds like your crashes were happening around the same place as mine when I injected most of the properties but left out the rom-revision. That's why I suggested not partially injecting any of the graphics properties and just sticking to boot-display. But it seems even that wasn't enough for your 650. Good tip about nv_disable. In my case I booted into Windows, mounted the EFI partition and set Inject to False for the device properties.

 

On my X79 with the 5450 when I messed up trying to change the framebuffer and the card loaded with no acceleration I also got a perfect second stage. But with acceleration working it was back to having no second stage.

Link to comment
Share on other sites

Ouch. That's strange as I have no problem booting here with nvidia or stock drivers. I'm running Yosemite on the Z68 but I don't think that would matter.

 

It sounds like your crashes were happening around the same place as mine when I injected most of the properties but left out the rom-revision. That's why I suggested not partially injecting any of the graphics properties and just sticking to boot-display. But it seems even that wasn't enough for your 650. Good tip about nv_disable. In my case I booted into Windows, mounted the EFI partition and set Inject to False for the device properties.

 

On my X79 with the 5450 when I messed up trying to change the framebuffer and the card loaded with no acceleration I also got a perfect second stage. But with acceleration working it was back to having no second stage.

 

Do real Macs boot with no acceleration? I mean, in my tests, even some real Macs have that gap between the two stages. So I'm not sure it has anything to do with the acceleration. But just wondering...

 

Also, if you read my post to mrengles, you know why I couldn't boot into any other OS to fix this. But to be honest, I was thinking Ubuntu might have been a more suitable option here, rather then Windows. Of course, if you have that one installed.

 

But yeah, initially I thought I would just boot off of a USB installer, which I always have close by for cases like this. :)) But...then I noticed I can't boot into any other drive whatsoever. And also I couldn't go back into Bios to revert my changes for Fast boot. So that was kinda f****d up. :))

 

Also, I thought I would boot into safe mode. Which...worked. But I had no access to EFI :)). So...I was booted up, but with no access to what I needed.

And then I thought I would give nv_disable a try. And that hopefully worked and I could boot up and fix my config.

 

Anyway, could you please, share your current device-properties xml? I'm wondering what could I have done wrong (the answer is a lot of things, I know that. :)) ). Still, I wonder how come you can boot up just fine for this case, with the default graphics driver...

 

By the way, do you happen to know if Windows 7 can boot from a GPT drive? Or is it starting with Windows 8 and above? Can't remember. I'm asking because I was thinking about making a backup of my important stuff from the other HDD, switching to GPT, and then disabling CSM in the UEFI.

Link to comment
Share on other sites

By the way, do you happen to know if Windows 7 can boot from a GPT drive? Or is it starting with Windows 8 and above? Can't remember. I'm asking because I was thinking about making a backup of my important stuff from the other HDD, switching to GPT, and then disabling CSM in the UEFI.

Short answer is yes on x64 versions of Windows 7 (and even Vista SP1 X64 :)).  With Clover, I have always installed Windows 7 in UEFI mode on a pure GPT drive....

 

post-846696-0-33940000-1445065497_thumb.png

 

Long answer is a qualified yes (should be OK on PCs) because these operating systems still assume the presence of legacy BIOS INT10 support in the firmware - see UEFI Firmware - TechNet - Microsoft.  Interestingly, it is almost impossible to install Windows 7 in EFI mode on Macs because of its reliance on legacy video BIOS calls but Windows 8 and 10 are OK because they supply fully UEFI compatible GOP video drivers.

  • Like 1
Link to comment
Share on other sites

7 can boot from GPT, although I think it could be a little tricky getting it to install if you have multiple drives. I have three drives here (1xSSD and 2xHDD with OS X on one of the HDDs) and the 7 installer would get confused by the multiple EFI partitions. I had an old legacy install on my SSD that I eventually converted to UEFI before moving to 10. I did this by backing up the 7 partition to a file, installing 7 in UEFI mode and then overwriting it with my original 7 image. I think I may have had to disconnect the hard disks first so the install would complete successfully.

 

Here's the device properties I'm currently using for the 670. It also has those display-cfg values set as they default to ffffffff otherwise. I don't think they make any difference but I have them in there right now. I'm also injecting my audio as you can see.

 

 

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)</key>
	<dict>
		<key>@0,AAPL,boot-display</key>
		<string>0x00000001</string>
		<key>@0,display-cfg</key>
		<string>0x00030103</string>
		<key>@1,display-cfg</key>
		<string>0x0100ffff</string>
	</dict>
	<key>PciRoot(0x0)/Pci(0x1b,0x0)</key>
	<dict>
		<key>PinConfigurations</key>
		<data>
		</data>
		<key>layout-id</key>
		<string>0x00000001</string>
	</dict>
</dict>
</plist>

 

 

  • Like 1
Link to comment
Share on other sites

 Share

×
×
  • Create New...