Search the Community: Showing results for tags 'loading bar'.
Found 1 result
Hey guys, This is a tutorial on how to fix (or at least try to fix) the second stage boot, when you're having these issues: missing logo and loading bar being displayed on the bottom left corner of the screen. Might or might not work for other issues. So proceed with caution. This is an issue that I experienced starting with early stages of development in Yosemite. Still continued in El Capitan. So this thread is primarily for these two versions of Mac OS X. Not sure it will work on earlier versions, cause I never tried it. So far it worked in Yosemite, El Capitan and Sierra. Please, note that I did not test this on all video cards. So it might or might not work, depending on that. Don't take this as a final solution for everything. Also, I'm pretty sure this won't work with iGPUs. So I would strongly suggest to look around for solutions if that's your case. This tutorial is not for multiple display setups! Please, don't use it for that! Especially not in iGPU + dedicated GPU combos. Known issue: if you're using the auto-login feature, try to disable it and use the regular login screen. Otherwise you won't get the second stage boot (confirmed as fixed in Sierra). This tutorial would have not been possible without the help and insight of: Pike R. Alpha cecekpawon Mirone Riley Freeman So all the credit goes to them. I just put this together based on my successes and failures. Succesfully tested with: NVidia cards: GeForce 210 GT 640 GTX 650 GTX 660 GTX 670 Superclocked+ 4GB - works partially (ok for 1080p, with CSM disabled, but no second stage in higher resolutions) GTX 750 Ti - works partially (ok for 1080p, but no Apple logo for second stage in higher resolutions) GTX 760 GTX 780 GTX 960 GTX 970 - works partially (ok for 1080p, and 1440p with CSM disabled, but no second stage in higher resolutions) ATI cards: Sapphire Toxic R9 270X Might work on other graphic cards, as well. But these are the ones that worked so far. Please, share if you got good results with another video card. Also, the same thing can be achieved by modding your DSDT. Unfortunately this thread does not make the object of that method, nor am I able to help you with that, since I really have no idea how to mod a DSDT, so far. Also, to be honest, this method seems a bit easier. Nonetheless, try this at your own risk! I'm not responsible for any damage that you might cause to your computer/components etc. Also, please, note that this tutorial is not perfect. I'm doing my best to make it as easy to understand as possible. Also, I'm opened to suggestions and I'm doing my best to improve this in the future. Still, it's not perfect. So keep that in mind. Suggestions are appreciated though. Please, note that, if you've got a video card with GOP UEFI Bios, you most likely don't need this tutorial in the first place. All you need is to disable CSM in BIOS (motherboard dependent). Note that, by doing this, only GPT drives will be loaded. So if you've got Windows installed on another drive, for example, you won't be able to select it anymore, if it's installed in "legacy" mode. With that being said, let's get to work. Prerequisites: Mandatory: a computer running Mac OS X Yosemite or newer Clover bootloader (changes are gonna be saved to the config.plist file) IORegistryExplorer v 2.1 (attached) gfxutil (attached) gfx_hex (attached) - script credit to cecekpawon Optional: Sublime Text Editor Clover Configurator a Windows PC for reading the graphic card's VBios version. So far, I couldn't find a way to do it from OS X. But if you know how to do it, please, share. I'll update this accordingly. An alternative (though not really the same thing) is this. an USB installer might come in handy, so keep one close by. Extra: If you want to try the modded Bootx64.efi (rev 3279), thanks to cecekpawon, featuring an option to easily enable/disable string injection in Clover (in case you're stuck outside your OS, and don't have a USB drive or something else to boot from), click here to get it. Please, note that this revision might not work with newer versions of OS X/macOS. You will need to replace the one in your EFI/EFI/CLOVER folder. If you want to revert to the previous one, you can either reinstall Clover, or make a backup of your current one before replacing it. I would recommend creating a single folder with all the necessary files and tools and putting it on your Desktop, just to have all the needed things in one place. Note: If you use a custom SSDT/DSDT, I would try first without it, and using Clover's patches instead, so that you minimize the risk for failure due to custom DSDTs. I don't use a custom DSDT, didn't test in collaboration with a custom DSDT, so I don't know if it will work. If you wanna try it this way, I would love to know your results. What to do: Step 1 (establishing the port): Open up your IOreg file (or just open IORegistryExplorer if you don't want to save it as a separate file), and search for "display". You should see something like this: Now, depending on your card, you might have more or less ports. The important thing is to note the one that has the AppleDisplay attached to it. In this example, the second port (B@1) is the one in use. So that's the one we need to set as default. Please, note that they start at 0, so first port is A@0, the second one is B@1 and so on so forth. Step 2 (extracting device-properties.hex): Open up a terminal window, navigate to the desktop folder you're using, and do this (make sure gfxutil is present into that folder): ioreg -lw0 -p IODeviceTree -n efi -r -x | grep device-properties | sed 's/.*<//;s/>.*//;' > "device-properties.hex" && ./gfxutil -s -n -i hex -o xml "device-properties.hex" "device-properties.xml" This will extract two new files into that folder: device-properties.hex and device-properties.xml Step 3 (modding the device-properties.xml): Open up the xml file using any text editor (I'm gonna use Sublime here) and ADD the number of ports you need for your card (the same number of ports, with the same name as in the IOreg) and the rest of the information, as described in the example below (use the attached xml as reference): Don't forget that the first port is port 0! In this example, we're using an MSi GTX 650 OC with 2GB of RAM, which has 3 ports, and we want to set as default port #2 (B@1). Attached you can find my device-properties.xml file, if you wanna use it as reference. The first section will set port B@1 as default. Change this according to your case. <!-- Primary display --> <key>@1,AAPL,boot-display</key> <string>0x00000001</string> Whereas on the bottom you can see regular values. Here we can set the amount of VRAM, the name of the card and the VBios version. <key>VRAM,totalMB</key> <string>0x00000800</string> // for 2048 MB or 2 GB of RAM <key>device_type</key> <string>NVDA,Parent</string> <key>model</key> <string>MSi GeForce GTX 650</string> // Name of your card <key>rom-revision</key> <string>80.07.35.00.04</string> //VBIOS version In my experience, these values are rather cosmetic than anything else. For an accurate version of your VBios, you can use either the Nvidia driver on Windows, or any hardware information software like GPU-Z, aida64 or nvflash. Here's a little table with hex values for different amounts of RAM. If you need other values than the ones specified in this table, please, ask. Also, if you spot a mistake, let me know so I can correct it. Amount of memory Hex value 128 MB 0x00000080 256 MB 0x00000100 512 MB 0x00000200 1024 MB (1 GB) 0x00000400 2048 MB (2 GB) 0x00000800 3072 MB (3 GB) 0x00000C00 4096 MB (4 GB) 0x00001000 5120 MB (5 GB) 0x00001400 6144 MB (6 GB) 0x00001800 7168 MB (7 GB) 0x00001C00 8192 MB (8 GB) 0x00002000 9216 MB (9 GB) 0x00002400 10240 MB (10 GB) 0x00002800 11264 MB (11 GB) 0x00002C00 12288 MB (12 GB) 0x00003000 13312 MB (13 GB) 0x00003400 14336 MB (14 GB) 0x00003800 15360 MB (15 GB) 0x00003C00 16384 MB (16 GB) 0x00004000 Once we're done modding, we're gonna save the changes and convert the xml file back into hex, using this command: ./gfxutil -i xml -o hex device-properties.xml device-properties.hex Step 4 (reading the modded hex): Unpack gfx_hex (attached) file into your working directory and double click to run it. It should output the content of your modded hex into a terminal window, and it should look something like this: Select and copy that code. After that, open up Clover Configurator and paste that hex code in Devices -> Properties section (see below) and check the box for Inject. You can also add this manually into the config.plist file, if that's more of your thing. Step 5 (setting up final arrangements): We're almost done. But, if your experience is the same as mine, at this point you only got the loading bar back centered. Which, of course is a step forward. But we're not quite there yet. So, to add the logo as well, we will check the boxes for Patch VBios and Inject EDID in Clover Configurator (Graphics section). You can inject your own EDID if you have one. Though, in my experience, Clover does a really good job in adding the correct one itself. So you don't really need to add a custom EDID. Just to use Clover's InjectEDID feature. Also, in my experience, you don't need CsmVideoDrv.efi for this to work. And I've got pretty similar results with and without it. So, if you have issues with it, you can try without it, and vice-versa. When it's all done, save the changes to your config. Now, I would highly recommend you to make a backup of your current config.plist from EFI/EFI/Clover/config.plist anywhere you want. You might need it later. When that's done too, replace the config.plist in your Clover folder with the one you just modded, and restart. Keep your fingers crossed (toes too). And hope for the best. If everything ok, you should have a pretty close to perfect second stage boot. If not, you might have nothing or an unbootable system. To fix this, boot from your USB installer, or use boot flag nv_disable=1 (for Nvidia cards), upon booting, and revert the changes. Or, if you already know where is the problem, fix that and restart. That's it. Please, let me know if it worked for you. gfx_hex.zip IORegistryExplorer.app.zip gfxutil.zip device-properties.xml