Only one external monitor gets video signal, even though two external monitors get detected

I have a three display setup, 1st screen is the laptop screen, second screen is my monitor connected to physical HDMI port on my laptop, and 3rd monitor connected to usb-c port (via usb-c docking station, that has 2 HDMI outputs) which also has display-port within it.

Only one external monitor gets input. If I disconnect the HDMI cable for 2nd monitor, the 3rd monitor gets video signal. If I connect the HDMI cable back for 2nd monitor, 2nd monitor gets signal and 3rd monitor screen goes black. If I connect both monitors to the HDMI outs in my usb-c docking station, they both go black.

In ubuntu settings>Displays, all three monitors are detected. In nvidia settings app, both external monitors are shown.

On switching to windows, everything works fine.

Machine Details:

  • Laptop: MSI Bravo 17 C7VEK (ryzen 7735 CPU)
  • OS: Ubuntu 22.04
  • Graphics card + driver: RTX 4060 + 545 driver (proprietary)

I did echo $XDG_SESSION_TYPE and it shows x11

❯ uname -a

Linux sun 6.2.0-37-generic #38~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu
Nov 2 18:01:13 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

Any help is appreciated.

Please run nvidia-bug-report.sh as root and attach the resulting nvidia-bug-report.log.gz file to your post.

Hello @generix ,
Here is the requested attachment. Appreciate your help on this.

Regards,
HPS
nvidia-bug-report.log.gz (1014.8 KB)

The connectors are independent of each other so there shouldn’t be any interference. Maybe both monitor have the same edid so the driver can’t tell the apart and gets confused, did you try to connect a differnt monitor to the hdmi port while have one of the Philips on USB-C?

Thank you for your answer @generix . If I understand correct, I need to try with a different make of the monitor?

I have two Philips monitors, both of same make (222 EL). I connected one monitor to HDMI port present on laptop and another one to HDMI out of my usb-c docking station. I don’t have another monitor of a different make accessible to me at home.

I ran sudo get-edid | parse-edid and piped it to this file attached: edid-2monitors.txt
edid-2monitors.txt (1.5 KB)

Also, here is how the nvidia settings look like:

On windows side, everything works fine. Both monitors get signal.

Is there a way to get around edid issue if that is the cause?

Best Regards,
HPS

@generix
I saw the nvidia settings app allows to acquire edid for each monitor and save it to a bin file… I did for both… here is the parsed edids for both:

❯ parse-edid < edid-DP-0.2.bin
Checksum Correct

Section "Monitor"
	Identifier "Philips 222EL"
	ModelName "Philips 222EL"
	VendorName "PHL"
	# Monitor Manufactured week 11 of 2011
	# EDID version 1.3
	# Digital Display
	DisplaySize 480 270
	Gamma 2.20
	Option "DPMS" "true"
	Horizsync 30-83
	VertRefresh 56-76
	# Maximum pixel clock is 160MHz
	#Not giving standard mode: 1920x1080, 60Hz
	#Not giving standard mode: 1280x720, 60Hz
	#Not giving standard mode: 1280x800, 60Hz
	#Not giving standard mode: 1280x1024, 60Hz
	#Not giving standard mode: 1360x765, 60Hz
	#Not giving standard mode: 1440x900, 60Hz
	#Not giving standard mode: 1680x1050, 60Hz
	Modeline 	"Mode 0" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync 
EndSection

and now for the 2nd monitor:

❯ parse-edid < edid-HDMI-0.bin
Checksum Correct

Section "Monitor"
	Identifier "Philips 222EL"
	ModelName "Philips 222EL"
	VendorName "PHL"
	# Monitor Manufactured week 11 of 2011
	# EDID version 1.3
	# Digital Display
	DisplaySize 480 270
	Gamma 2.20
	Option "DPMS" "true"
	Horizsync 30-83
	VertRefresh 56-76
	# Maximum pixel clock is 170MHz
	#Not giving standard mode: 1920x1080, 60Hz
	#Not giving standard mode: 1280x720, 60Hz
	#Not giving standard mode: 1280x800, 60Hz
	#Not giving standard mode: 1280x1024, 60Hz
	#Not giving standard mode: 1360x765, 60Hz
	#Not giving standard mode: 1440x900, 60Hz
	#Not giving standard mode: 1680x1050, 60Hz
	Modeline 	"Mode 0" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync 
EndSection

Adding the edid.bin files for both monitors here as well.
edid.zip (638 Bytes)

Does it mean that EDIDs are same for both monitors?

No, they have different serial numbers.

Thanks @generix . So edid is not the likely issue.

Any thoughts what the cause may be?

Best Regards,
HPS

Did you already try an ealier driver like 535?

Hello @generix ,
yes, I tried 535 first. Same issue. Then I switched to 545.

Best Regards,
HPS

Hello @generix
Switched back to 535 per your suggestion (see screenshot below). The issue remains. I tried more:

  1. Booted into windows, all three screens work as expected in an extended display manner.
  2. Booted back into ubuntu. Disconnected 1st external monitor (connected to HDMI port on laptop). The 2nd external monitor (usb-c/display-port) receives signal (along with laptop screen). Now I connect back 1st external monitor and the 2nd external monitor goes black.
  3. When I connect both external monitors to my docking station that has 2 HDMI outs and is connected via usb-c/displayport, both screens go black (no monitor currently connected to laptop’s HDMI port). This configuration too works fine on windows side, the issue is only on ubuntu side.

From what I observe, there seems to be some issue in the ubuntu nvidia driver regarding usb-c/displayport. Please let me know your thoughts.

wanted to know if there is any workaround. Seems like a common issue. For example another thread with people reporting similar issues, and this was 3 years ago. The difference is that in my case its the monitor connected to laptop’s usb-c/display-port that gets issues if laptop’s HDMI port is in use. Again, only in ubuntu (i.e. using linux nvidia 535/545 driver). In windows11, everything works fine.