zearp / OptiHack

Dell OptiPlex 7020/9020 Hackintosh Stuff
https://zearp.github.io/OptiHack/
155 stars 53 forks source link

GT 710 Graphics Black screen when reaching desktop #36

Closed JohnAker33 closed 3 years ago

JohnAker33 commented 3 years ago

I'm using your EFI folder on a 7020 SFF. BIOS is flashed to A18 along with all the UEFI mods. Using your latest release with OC 0.6.7 and Big Sur 11.2.1. The GT 710 is by Zotac and has 1GB DDR3 Vram. My monitor is an HP 27es with dual HDMI inputs and one VGA input.

The OptiPlex 7020 has an i3-4150 CPU so I'm attempting to use a GT 710 for graphics. The HD4400 works but rather poorly. I've removed disable eGPU and HDMI patches from the config.plist. I've tried with video set to auto and set to Nvidia as well.

I see the progress bar go halfway across under the Apple logo. It then disappears. Seems that I reach the sign in page but it's completely black except for the mouse pointer. I enter the password and it gets to the desktop but only with a black screen. I deleted PciRoot(0x0)/Pci(0x2,0x0) completely as well but it made no difference. I've tried your EFI folder with a Quadro K600 and it works with no modifications at all to your config.plist. I use DP output adapted to HDMI on that. Doesn't have HDMI.

Any ideas for a solution ?

zearp commented 3 years ago

As the card should be natively supported the only thing I can suggest is to toggle the BIOS option from iGPU/auto to dGPU and see if that helps.

Removing the iGPU block will make WhateverGreen put the HD4400 in compute mode which is pretty handy. The HD4400 is problematic as no Mac has ever shipped with this chip so there's no support in the drivers. The best way to get around that is to either use a dGPU or upgrade to an i5 or i7.

It sounds as if it works but it's not using the correct outputs. Make sure you have removed the complete iGPU block in the config, including the ports part in the frame buffer section. As far as I know there's nothing else you need to do to get a supported dGPU to work. Of course the screen needs to be connected to the dGPU.

I have no dGPU's that are compatible in macOS so I don't have the means to test any of this myself.

JohnAker33 commented 3 years ago

I've used this GT 710 with success in High Sierra, Mojave and Catalina so it must be that something changed with 11.2 that prevents it from working OOB as it did before. I've tried it both ways with iGPU enabled and with only dGPU but it makes no difference. Also tried with enabling legacy Option ROMs but that made no difference. If I do find a solution I'll report the results here.

This is System Info/Graphics when I'm using it with Catalina 10.15.7 and the HDMI output.

NVIDIA GeForce GT 710 Zotac 1GB Fanless:

Chipset Model: NVIDIA GeForce GT 710 Type: GPU Bus: PCIe Slot: Slot-1 PCIe Lane Width: x1 VRAM (Total): 1023 MB Vendor: NVIDIA (0x10de) Device ID: 0x128b Revision ID: 0x00a1 ROM Revision: VBIOS 80.28.a6.00.10 Metal: Supported, feature set macOS GPUFamily1 v4 Displays: LG IPS FULLHD: Resolution: 1920 x 1080 (1080p FHD - Full High Definition)

zearp commented 3 years ago

Good point regarding Big Sur.

Did you change the SMBIOS between Catalina and Big Sur, or did you use 15,1 with both?

From what I understand you'll need to use a SMBIOS of a machine that comes with this card before it works. You might be able to whitelist it too but I'm not sure how macOS decides. I know some wireless drivers only work if your model is inside the driver. It's a very simple patch to add the model to the driver macOS uses for your card. It's a good option to try when other fixes don't work.

If you used 14,3 in Catalina you can also try it in Big Sur by adding -no_compat_check to the boot flags. I'd be interested to know if it works if you use the same SMBIOS as in Catalina, but maybe you've used 15,1 in Catalina too.

On paper the card should work in Big Sur when used with the correct SMBIOS.

JohnAker33 commented 3 years ago

Yes, I've used 15,1 on Catalina as well. Would -no_compat_check also work with 15,1 ?

zearp commented 3 years ago

Hmm it should just work but it isn't. Very odd. I did find others with your card reporting same issues but others have no issues. Maybe there are some differences between brands?

As a test try booting Big Sur with 14,3 with -no_compat_check in the boot flags, I wonder if that works. If it does its good to know but not a real solution as when using that SMBIOS you will probably not get any OS updates cuz 14,3 doesn't support Big Sur.

Do you happen to know which kext it used in Catalina? I can check if the kext in Big Sur has any checks or silliness and compare it to the one in Catalina. It might also be interesting to try the Catalina kext in Big Sur. Not easy with all the file system protections so I hope that won't be needed and a simple patch/whitelist can fix it.

JohnAker33 commented 3 years ago

I'd prefer to keep using iMac 15,1 if possible. Here's all the Nvidia related kexts in Catalina /S/L/E I'm not sure where to look.

Screen Shot 2021-02-19 at 8 08 09 AM

My guess would be that it used NVDAGK100Hal in Catalina. GK is for Kepler based Nvidia Cards. The chip in the GT 710 May be GK208 and not one of the 100 series like GK107 that does work in Big Sur.

Here's the specific Zotac model in use: https://www.newegg.com/zotac-geforce-gt-710-zt-71304-20l/p/N82E16814500395

zearp commented 3 years ago

Trying 14,3 would be just as test and sanity check. Like I said, I've read that it depends on SMBIOS in Big Sur for this card. So if it works with another SMBiOS then we can patch the kext in Big Sur or use the one from Catalina. You can also try other SMBIOS like 14,4 that does support Big Sur. But I really have no clue which SMBIOS/models shipped with the card you got. You'd have to check AnyMac or similar website to find which iMacs had the option to come with the GT 710.

I'll have a look at those kexts but can't promise anything since I can't test it

If I'd have to guess, something did change in the driver which causes it no longer to work out of the box in Big Sur. The fact it works fine in Catalina with the same config doesn't leave many other options. I don't know the differences between GT710 cards but if one is based on a complete different architecture that may also explain things.

My quick search revealed you're not alone with this issue. Some have no problems at all whereas others have the same issue as you do. All with what looks like the same card/chipset. Maybe the (small) differences between the different brands are more of an issue in the Big Sur drivers than in previous versions.

I would suggest checking out the InsanelyMac forums and maybe some other places where people reported the same issue. For me it's hard to do much more than suggest things cuz I don't have this card to test with.

JohnAker33 commented 3 years ago

I'll try switching to 14,3 and -no_compat_check to see if it works or not.

By the time iMac 15,1 was released in Late 2014, Apple wasn't using any Nvidia GPUs in desktop Macs. They had switched to AMD again. So the Nvidia support was only for Mac Pro 3,1 4,1 and 5,1. Cards like the GT 710 were only supported for older MPs with Xeons that have no iGPU.

But I really have no clue which SMBIOS/models shipped with the card you got. You'd have to check AnyMac or similar website to find which iMacs had the option to come with the GT 710.

JohnAker33 commented 3 years ago

Using iMac 14,3 with -no_compat_check didn't make a difference with the black screen issue. BIOS was set to use the dGPU only.

zearp commented 3 years ago

So the Nvidia support was only for Mac Pro 3,1 4,1 and 5,1. Cards like the GT 710 were only supported for older MPs with Xeons that have no iGPU

Interesting, that makes me think that Big Sur has introduced some kind of check that wasn't in the kext in Catalina. It might work the same as for wifi.

Like the old MacBook Air cards that go for $5 on eBay but wil only work on certain SMBIOS. To make them work on anything else you need to add a search/replace patch for the wifi kext to include your SMBIOS. Very easy to do. Simply search for a supported model name and replace it with yours. Like I did in my NUC config.

It would be matter of checking both kexts (Catalina vs Big Sur) in a hex editor and see if there's such stuff going on. If so, you will need to replace the board-id. For example the iMac 15,1 board-id is Mac-42FD25EABCABB274 and the board-id for Mac Pro 5,1 is Mac-F221BEC8. So you would replace Mac-F221BEC8 with Mac-42FD25EABCABB274 to patch the kext. In my example I replace the existing one with the Mac mini 8,1 board-id. You can try this by replacing a SMBIOS with the 15,1 one for a Mac Pro you're sure to support this card in Big Sur.

I can check this for you but I don't know when I have the time to sit down and do this. It's not hard to try out yourself. You'll just have to find the needed information and add a search/replace patch to the config for the kext responsible. You can find the correct naming for the patch with kextstat while booted into Catalina. Like the wifi driver needed com.apple.driver.AirPort.Brcm4360.

Hope all thismakes some sense.

JohnAker33 commented 3 years ago

Sounds like an interesting approach to this new roadblock for the GT 710. I've got other options such as an HD4600 i3-4330 or a Quadro K600 that work OOB. I'll probably just go with one of those two. Thanks for all your help and input and for posting this Dell Optiplex guide. Nice work on that. It's rare to find guides that go into this much detail.

zearp commented 3 years ago

Your GT 710 issue is pretty odd, in threads on it some people have no issues at all and others have same issue as you do. The only difference being the brands people have. Guess different chipset implementations and VBIOS come into play there. It's a nice rabbit hole if you're into that.

Haha, thanks. I went all the way with these machines to challenge myself a bit. Go as deep as possible including updating microcodes and adding NVMe support to the BIOS. It was quite a journey!

Let me know if you find a fix so I can update the config if needed. Ideally you would be able to run a dGPU as main card with iGPU in compute mode. You'll get decent DRM and can use the iGPU to do decoding and computing tasks.

JohnAker33 commented 3 years ago

It would be nice if we could produce a list of which GT 710s do still work OOB with Big Sur.

I can report that the Quadro K600 works with no changes at all to the config.plist. They are all reference so any one, PNY, Dell or HP branded should work. Prices are also good on the used market, less than what a new GT 710 costs. They will also work in the MT or the SFF models so it's a can't miss choice for dedicated graphics.

Screen Shot 2021-02-19 at 10 21 21 AM

JohnAker33 commented 3 years ago

Here's the best NVIDIA GPU for those that want multi 4K monitors. The NVS 510 has 4 mini DP outputs. All are DP 1.2. Sells at very low prices on Ebay. Works OOB like the Quadro K600.

https://www.ebay.com/itm/NVIDIA-NVS-510-Low-Profile-Graphics-Card/402700806052

JohnAker33 commented 3 years ago

Here's why I think the Quadro K600 and NVS 510 both still work OOB with Big Sur. Apple retained support for the Late 2013 MacBook Pro which has a GK107 (755M) chip in it's MXM card. The K600 and NVS 510 both have the same GK107. In both Quadro cards half of the cores are disabled and they use DDR3 ram but it's still a GK107 GPU used in all of these. The Zotac GT 710 that no longer works is GK208 based. Apple never used that GPU in the Macs that still have support.

Screen Shot 2 Screen Shot 3 Screen Shot 7 Source: Techpowerup.com

This means that support for these GK107 Quadro cards is certain to last through all future updates to Big Sur. After that it may be dropped. In conclusion, it appears that what macOS looks for is the actual GPU, not the Mac model (SMBIOS) or even the name of the graphics card in the Mac (GT755M). The GPU core (GK107) is the common denominator for native graphics support. The solution may involve making the GK208 (GT 710) look like GK107 to macOS then my Zotac GT 710 would work. Would this require a Vbios mod for the GT 710 ?

zearp commented 3 years ago

I don’t know. You’ll have to experiment and report back your findings. I don’t have this card so all I can do is guess which is far from ideal. Feel free to update this issue if you find fixes or new info.