zearp / Nucintosh

Intel NUC Hackintosh Stuff
722 stars 85 forks source link

Two monitor setup #12

Closed mhvp closed 3 years ago

mhvp commented 3 years ago

If you only have one monitor turned on and wait until it builds up to the selection screen both monitors work fine. However if you let it go to the selection screen it goes all the way through the boot sequence then kills both monitors. This is not unique to your implementation that happens on all Implementations for the NUC I've found so far.

My current workaround is to keep the monitors off until the computer has booted allowing the boot partition to automatically boot into the OS. Once I've given it a few seconds then turn on the monitors and everything is fine.

It would be nice if there was a solution.

zearp commented 3 years ago

Try adding the force-online property to the framebuffer section or igfxonln=1 to the boot flags, it should force all screens the be on. You can also try removing the connector entries if that setting doesn't work. Or maybe a combination of both.

I've tested some dual screen setups and haven't run into anything where the screens stop working. Please let me know what steps should I take to reproduce this. I'm a little bit confused as to how I can reproduce. Booting up with 2 screens attached and turned on it will result in both screens not functioning but macOS itself runs fine (eg you can connect with VNC or ping it)?

vardumper commented 3 years ago

I can actually confirm problems/issues with two monitor setups. Booting from Thunderbolt/recognizing the Thunderbolt Screen does not work. Unplugging TB cable, then booting then plugging in it does with some monitors, not with others. The HDMI monitor works smoothly though, not the TB one. I will try the suggested settings and report back.

zearp commented 3 years ago

Ok, let me know. Also let me know (ELI5) how I can reproduce it here cuz I'm still a bit confused. Reproducing is very important to find a proper fix.

vardumper commented 3 years ago

In my home setup I use the NUC8i7BEH with a Dell U2718Q 4K Monitor with either HDMI to HDMI in or preferably Thunderbolt to DP in (this is what's not working currently - no signal arrives at the monitor).

At the office I the same NUC but have two low-res Dell Monitors one with HDMI to HDMI the other with TB to DP which does only work when plugging it in after boot. When both are plugged in on boot, the loading text stuff is mirrored on both, then they go black.

zearp commented 3 years ago

I tried to reproduce but didn't manage. I did notice however the cable + screen combo matters a lot. For example on my Phillips screen my el-cheapo HDMI cable does not work at all including NUC logo/early boot but the same cable works on my Samsung screen. My more expensive HDMI cable works on both screens.

Booting with both screens turned on works for me, it only displays the boot output to the screen connected to the HDMI port on the NUC. Once it loads the login UI the other screen get a picture and both work ok. Tried in mirror mode and in extended desktop mode. One screen connected to HDMI on the NUC the other connected using usb-c hub with HDMI output.

I used the config without modifications but I do know some monitors benefits from the force-online option. Specially when waking up from sleep, if a screen stays off this option sorts it out.

So my guess would be that its somehow related to the cables. Does each screen work on its own with the current cables? Testing each screen with its cable alone is how I found out the cable didn't work with one but did work with the other. I don't have enough HDMI cables to do more testing. Only got one high quality and the rest is all from cheap Chinese TV boxes I used to tinker with (don't ask lol).

Is there anything I'm missing here? Do you want me to try booting with one of the screens turned off?

zearp commented 3 years ago

@vardumper I can't test Thunderbolt cuz I don't have Thunderbolt screens. Are you sure it's Thunderbolt and not usb-c? If it's a real Thunderbolt display then the current ACPI patches may not be enough. It works with e-gpu and a hub I've tried but maybe Thunderbolt displays need more...

I assume Thunderbolt security is set to legacy. Can you test if removing (or remaking the connector parts) of the framebuffer patch would help and/or enabling force online helps. Cuz I have no problems with HDMI or usb-c to DisplayPort/HDMI with dual screens so there's not much I can do from my end unfortunately.

vardumper commented 3 years ago

igfxonln=1

how do I do that? are we talking modifications to config.plist or is that someplace else?

vardumper commented 3 years ago

connector entries

I cannot seem to find any matches for connector in config.plist

zearp commented 3 years ago

@vardumper Yes, sorry. Add it in the config file boot-args section where it only has -v now. Just add the boot flag there. I'm not sure if it helps but can't hurt to try. On my old screen it was needed else it wouldn't wake up after sleep.

The connector entries are here. They may not be needed on every configuration and could cause trouble on some. It's tricky to make something that works for all the different combo's that are possible. Specially since some screens are fussy and require more configuration. Some may even need EDID injection to work properly.

I added these connectors cuz it's what worked for me in my limited testing and to setup lspcon, which these models use to get some sort of HDMI 2.0 output. More info about lspcon can be found here.

neatguo commented 3 years ago

When two displays,you could try this method. In the bios:

  1. set devices-->video --> igd primary video port -> hdmi
  2. igd second port -> none

I have two 4k diplays. Sometimes two screen have no signal, but the system is starting normally. When go to the login page and it will be OK. Sometime there will be snowflakes at startup NUC on hdmi port. Replug will fix it.

mhvp commented 3 years ago

Perfect thank you neatguo, That has sorted it.:)

mhvp commented 3 years ago

Just for the reference I have a Dell 49 inch widescreen the only way to get the highest resolution is to split the monitor as though it has two connections this way each half of the monitor runs 2560x1440. So as far as the NUC is concerned it is running to monitors.

zearp commented 3 years ago

@neatguo Nice find! I wonder what exactly those things do. I'll have to dive into that and see if it changes anything in the ACPI tables or something. Thanks for sharing.

zearp commented 3 years ago

I suggest anyone still having issues to try some suggestions mentioned in this thread. I can't reproduce it, so I really have no clue how to fix it. Maybe someone can donate a Thunderbolt screen to me 😝

purplemountain commented 2 years ago

When two displays,you could try this method. In the bios:

  1. set devices-->video --> igd primary video port -> hdmi
  2. igd second port -> none

I have two 4k diplays. Sometimes two screen have no signal, but the system is starting normally. When go to the login page and it will be OK. Sometime there will be snowflakes at startup NUC on hdmi port. Replug will fix it.

I really appreciate your comment, I've been trying to find the answer from the framebuffer patching for several days. But, your comment reminds me to check the BIOS at first even though it's different from your comment. I need to change the primary display from PCI#1 to iGFX and, change the primary HDMI from 2 to 3. It works now! FYI, my problem is that I can boot with two monitors & log in, but two screens turn to crashed with some horizontal lines. But, there is no issue with the single monitor. I need to replug the HDMI port then both screens turn to normal but it's really inconvenient.

Intel i7-8700K CPU Gigabyte Z370 Gaming WIFI No external GPU but using UHD630 iGPU only Two external monitors are attached (1st DP, 2nd HDMI). Only two ports exist Using Framebuffer: 07009B3E because 00009B3E doesn't support the dual monitors no matter how using framebuffer-con1-enable & framebuffer-con2-enable at the same time.

When booting, two screens turn to black, then 1st screen turns on in green color & turns to black. Next, 2nd screen turns on in green color & turns to black. Finally, both screens turn on.

One issue that remains is the 1st display, the resolution is at 2560x1080, showing some blurred font even though the 2nd display FHD has no issue. But, it's out of the scope of the framebuffer issue I guess.

Thanks again!