Contribute
Register

Graphics blues, black screen after verbose boot stage/before login.

Status
Not open for further replies.
Re: Where did I get OSX from my mackbook pro late 2009, with the createinstall method.

I have tried the injectEDID and CustomEDID flags; both separately and in unison but I do not know that they were correct. In the zip I attached I have the xrandr output and show the CustomEDID block i was using in the config.plist if you could take a look and verify I am doing it right.

CustomEDID has no effect without InjectEDID.

You definitely need to patch IOKit.
 
OK, I have made some progress/gotten more details. The current status is that when I boot without nv_disable or nvda_drv set I boot into osx at 4k res on the laptop display. The 970m is not accelerating anything in this state it looks like it is using the vesa fallback and getting very slow refresh (<2 second).

If I turn on nvda_drv and reboot I see all of the verbose boot and then right before login the laptop display goes black (to sleep) but I can see hd activity.

If I plug in my 1080p tv when the the laptop screen is black and nvda is turned on I get a fully recognized 970m+1080p screen and I am able to log in. Looks Great! but the laptop display is no where to be found AFAIK in the device list.

If I plug in the TV when booted into the no nv_disable or nvda_drv config while the laptop screen is working and no nvida acceleration, the tv does not sync up and i dont see a device populated for it.

I have attached the ioregistry explorer's from both states I am describing...

View attachment hookedup-hdmi-and-970mnvda.ioreg View attachment booted-4k-nonvda.ioreg

Any Idea how I get the display to work at 4k while also getting the nvidia drv turned on? It seems like it must be something to do with edid or pci addressing/mapping of the display? I am at a loss but it feels like it is so close. Thank you for your help!

heres the edid from linux when the display is working well with the m970 for reference.

View attachment edid.txt
 
OK, I have made some progress/gotten more details. The current status is that when I boot without nv_disable or nvda_drv set I boot into osx at 4k res on the laptop display. The 970m is not accelerating anything in this state it looks like it is using the vesa fallback and getting very slow refresh (<2 second).

As expected.

If I turn on nvda_drv and reboot I see all of the verbose boot and then right before login the laptop display goes black (to sleep) but I can see hd activity.

If I plug in my 1080p tv when the the laptop screen is black and nvda is turned on I get a fully recognized 970m+1080p screen and I am able to log in. Looks Great! but the laptop display is no where to be found AFAIK in the device list.

It is probably an EDID issue.

If I plug in the TV when booted into the no nv_disable or nvda_drv config while the laptop screen is working and no nvida acceleration, the tv does not sync up and i dont see a device populated for it.

As expected. VESA drivers support only one display.

Any Idea how I get the display to work at 4k while also getting the nvidia drv turned on? It seems like it must be something to do with edid or pci addressing/mapping of the display? I am at a loss but it feels like it is so close. Thank you for your help!

Did you try native OS X drivers (no nv_disable=1, no nvda_drv=1).

Did you patch IOKit?
 
Yep, I am sorry for not being clear I was using nv_disable=1 to get to the 4k no nvidia using vesa mode (crazy slow screen updates and flashing) and rebooting with nvda_dev=1 to start the nvidia driver which only worked on the hdmi port as described.

I had not patched iokit, and just went to do it as i just found a patch that matches my md5. The weird thing is after the patch I was getting a mach-0 boot error so i booted into a install usb and replaced iokit with an unmodified version and rebooted (forgetting to set nv_disable) and now it is booting into 4k lcd + nvidia full acceleration. no ****ing idea why it is now. but my iokit is md5 checksummed as unpatched 10.11.3 final. *hands in the air*, don't get me wrong I love that it is now working but I hate to high hell that I don't get what if anything changed to make it start. After each change I would test both nv_disable and nvda_drv boots and this was not working before i just copied over the original iokit.

I guess I can close this thread but I would really like to know how this resolved and document it instead of just accepting that it works for magic reasons. =(
 
Yep, I am sorry for not being clear I was using nv_disable=1 to get to the 4k no nvidia using vesa mode (crazy slow screen updates and flashing) and rebooting with nvda_dev=1 to start the nvidia driver which only worked on the hdmi port as described.

There are two possible driver sets for Nvidia in OS X. One provided by Apple; the other provided by Nvidia.

nvda_drv=1 allows the Nvidia web drivers to start
lack of nv_disable=1 allows the Apple Nvidia drivers to start.

I had not patched iokit, and just went to do it as i just found a patch that matches my md5. The weird thing is after the patch I was getting a mach-0 boot error so i booted into a install usb and replaced iokit with an unmodified version and rebooted (forgetting to set nv_disable) and now it is booting into 4k lcd + nvidia full acceleration. no ****ing idea why it is now.

Now you're using native Apple Nvidia drivers? (assuming nvda_drv=1 is not set...)

but my iokit is md5 checksummed as unpatched 10.11.3 final. *hands in the air*, don't get me wrong I love that it is now working but I hate to high hell that I don't get what if anything changed to make it start. After each change I would test both nv_disable and nvda_drv boots and this was not working before i just copied over the original iokit.

Could have been a kernel cache thing...
 
It is reverted back to the initial problem again. I had rebooted 5 or 6 times when it started working and it kept working, and I made a commit of my EFI slice and carbon copy clone of my osx partition. Then a few hours ago I had to reboot to linux and back and it now is back to the same issue. I had not made any changes to efi or osx system. The thing is my efi partition and osx partition when restored to that known working copy are not working any more.

At a loss here -- it still feels like I don't know why it randomly started working nor why it appears to have stopped. =(

Any ideas?
 
It is reverted back to the initial problem again. I had rebooted 5 or 6 times when it started working and it kept working, and I made a commit of my EFI slice and carbon copy clone of my osx partition. Then a few hours ago I had to reboot to linux and back and it now is back to the same issue. I had not made any changes to efi or osx system. The thing is my efi partition and osx partition when restored to that known working copy are not working any more.

At a loss here -- it still feels like I don't know why it randomly started working nor why it appears to have stopped. =(

Any ideas?

Make sure your kernel cache is building clean (without errors).
 
sudo kextcache -t -v -system-prelinked-kernel
Created old kernelcache copy "/System/Library/Caches/com.apple.kext.caches/Startup/kernelcache"
Created prelinked kernel "/System/Library/PrelinkedKernels/prelinkedkernel"
Created prelinked kernel using "/System/Library/Kernels/kernel"

sudo kextcache -t -v -system-caches
Directory caches updated for /System/Library/Extensions.
Directory caches updated for /Library/Extensions.



Looks like they are being built ok -- I should expect to see the errors there if not right?
 
sudo kextcache -t -v -system-prelinked-kernel
Created old kernelcache copy "/System/Library/Caches/com.apple.kext.caches/Startup/kernelcache"
Created prelinked kernel "/System/Library/PrelinkedKernels/prelinkedkernel"
Created prelinked kernel using "/System/Library/Kernels/kernel"

sudo kextcache -t -v -system-caches
Directory caches updated for /System/Library/Extensions.
Directory caches updated for /Library/Extensions.



Looks like they are being built ok -- I should expect to see the errors there if not right?

Per Apple documentation, correct way to rebuild cache:
Code:
sudo touch /System/Library/Extensions && sudo kextcache -u /
 
Status
Not open for further replies.
Back
Top