[FIXED] Black screen on external monitor at 120Hz+ with NVIDIA 550+ Linux drivers (Zorin OS)
If you're using NVIDIA drivers version 550 or newer on Linux (e.g., Zorin OS, Ubuntu-based systems) and your external monitor shows a black screen or "no signal" when selecting 120Hz or higher, this guide will help you fix it.
Problem
- Monitor works fine at 60Hz
- But going to 120Hz, 144Hz or higher causes:
- Black screen
- No signal
- Monitor remains powered but displays nothing
Cause
Starting with version 550, the NVIDIA Linux driver enables HDMI DeepColor (hdmi_deepcolor=1
) by default via the nvidia-modeset
kernel module.
This can cause issues with:
- Some HDMI monitors
- Certain HDMI cables
- HDMI 2.0 connections that don't support high color depths and high refresh rates simultaneously
Solution: Disable HDMI DeepColor via kernel boot parameter
We'll add the following parameter to GRUB:
nvidia-modeset.hdmi_deepcolor=0
This disables DeepColor and allows 120Hz+ modes to work reliably.
Step-by-step instructions
1. Backup your GRUB config
sudo cp /etc/default/grub /etc/default/grub.bak
2. Edit the GRUB file
sudo nano /etc/default/grub
Look for this line:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
Change it to:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvidia-modeset.hdmi_deepcolor=0"
If you have other parameters there (e.g.
acpi=off
,nouveau.modeset=0
), just add this one at the end with a space.
3. Save and exit
- Press
CTRL + O
, thenEnter
to save - Press
CTRL + X
to exit nano
4. Update GRUB
sudo update-grub
5. Reboot
sudo reboot
Expected result
- Your external monitor should now work correctly at 120Hz, 144Hz or higher.
- No more black screen when switching to high refresh rates over HDMI.
Tested and confirmed working on Zorin OS with NVIDIA 555 and 570 drivers.
Optional: Revert the change
If you want to undo it later:
sudo cp /etc/default/grub.bak /etc/default/grub
sudo update-grub
sudo reboot