Fix monitor resolution on linux with nvidia GPU because the monitor EDID information is unavailable.
This fix assume we are using multiple monitor setup with the same monitor, so we can grab the EDID information of the monitor, from the other monitor attached to another output port (D-SUB, DVI, HDMI, DisplayPort)
In my setup, I have 3 Dell S2415H attached to D-SUB, HDMI, and DVI port.
The monitor which was attached to the D-SUB port (VGA-0), doesn't has any EDID information available, thus I was unable to use the native 1920x1080 resolution.
Step to overcome the situation:
- install nvidia driver
- dump binary monitor EDID data using
nvidia-settings:- run the
nvidia-settingsapp - choose monitor which has correct EDID information (I selected
DVI-D0monitor) - on the right bottom corner, there is a
Acquire EDID...button - save the EDID in binary format to some location (ie: /etc/X11/dell-s2415h-edid.bin)
- run the
- get the display name of the monitor which doesn't has the EDID information:
- use
nvidia-xconfig --query-gpu-infocommand - it will show my
Display Device 0 (CRT-0)doesn't has any EDID information available - the
CRT-0will be the display name of the monitor which we will use when updating thexorg.conf
- use
- if we don't have any
xorg.confyet in/etc/X11/xorg.conf, we can generate one usingnvidia-settingsfrom theXServer Display Configurationpage - edit the
xorg.conf, and on theDevicesection, add this lineOption "CustomEDID" "CRT-0:/etc/X11/dell-s2415h-edid.bin"
The final xorg.conf will have something like this:
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GT 710"
Option "CustomEDID" "CRT-0:/etc/X11/dell-s2415h-edid.bin"
EndSection
Reference: