EDID file not working as expected

Hi all.

I’ve run into issues while trying to emulate 4k monitor via EDID file.
My GPU is Quadro RTX4000 on a CentOS 7 OS. I’m connecting my 4k benQ monitor, exporting edid file from the nvidia control panel utility. Afterwards I’ve added the following lines to my Screen sections in xorg.conf:

Option “CustomEDID” “GPU-0.DFP-3:/etc/X11/edid.txt”

I follow up with a restart of the PC, then my log contains the following:

    X.Org X Server 1.20.1
X Protocol Version 11, Revision 0
[ 60106.070] Build Operating System:  3.10.0-693.17.1.el7.x86_64
[ 60106.070] Current Operating System: Linux CG-272 5.6.14-1.el7.elrepo.x86_64 #1 SMP Tue May 19 12:17:13 EDT 2020 x86_64
[ 60106.070] Kernel command line: BOOT_IMAGE=/vmlinuz-5.6.14-1.el7.elrepo.x86_64 root=UUID=a737b9b9-594b-490f-8ff6-d2dce9ea7f69 ro crashkernel=auto spectre_v2=retpoline nomodeset rhgb quiet
[ 60106.070] Build Date: 15 November 2018  04:59:43PM
[ 60106.070] Build ID: xorg-x11-server 1.20.1-5.1.el7
[ 60106.070] Current version of pixman: 0.34.0
[ 60106.070]    Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
[ 60106.070] Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 60106.070] (==) Log file: "/var/log/Xorg.0.log", Time: Tue Mar  9 10:59:20 2021
[ 60106.071] (==) Using config file: "/etc/X11/xorg.conf"
[ 60106.071] (==) Using config directory: "/etc/X11/xorg.conf.d"
[ 60106.071] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[ 60106.071] (==) ServerLayout "Layout0"
[ 60106.071] (**) |-->Screen "Screen0" (0)
[ 60106.071] (**) |   |-->Monitor "Monitor0"
[ 60106.071] (**) |   |-->Device "Device0"
[ 60106.071] (**) |-->Input Device "Keyboard0"
[ 60106.071] (**) |-->Input Device "Mouse0"
[ 60106.071] (==) Automatically adding devices
[ 60106.071] (==) Automatically enabling devices
[ 60106.071] (==) Automatically adding GPU devices
[ 60106.071] (==) Automatically binding GPU devices
[ 60106.071] (==) Max clients allowed: 256, resource mask: 0x1fffff
[ 60106.071] (**) FontPath set to:
        /usr/share/fonts/default/Type1,
        catalogue:/etc/X11/fontpath.d,
        built-ins
[ 60106.071] (==) ModulePath set to "/usr/lib64/xorg/modules"
[ 60106.071] (WW) Hotplugging is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
[ 60106.071] (WW) Disabling Keyboard0
[ 60106.071] (WW) Disabling Mouse0
[ 60106.071] (II) Loader magic: 0x56228b003020
[ 60106.071] (II) Module ABI versions:
[ 60106.071]    X.Org ANSI C Emulation: 0.4
[ 60106.071]    X.Org Video Driver: 24.0
[ 60106.071]    X.Org XInput driver : 24.1
[ 60106.071]    X.Org Server Extension : 10.0
[ 60106.071] (II) xfree86: Adding drm device (/dev/dri/card0)
[ 60106.071] (II) Platform probe for /sys/devices/pci0000:85/0000:85:00.0/0000:86:00.0/drm/card0
[ 60106.071] (II) Platform PCI device at pci:0000:85:00.0
[ 60106.092] (--) PCI: (3@0:0:0) 1a03:2000:1a03:2000 rev 65, Mem @ 0x9c000000/16777216, 0x9d000000/131072, I/O @ 0x00002000/128, BIOS @ 0x????????/65536
[ 60106.092] (--) PCI:*(134@0:0:0) 10de:1eb1:10de:12a0 rev 161, Mem @ 0xdf000000/16777216, 0x397fe0000000/268435456, 0x397ff0000000/33554432, I/O @ 0x0000d000/128, BIOS @ 0x????????/131072
[ 60106.092] (II) LoadModule: "glx"
[ 60106.093] (II) Loading /usr/lib64/xorg/modules/extensions/libglx.so
[ 60106.093] (II) Module glx: vendor="X.Org Foundation"
[ 60106.093]    compiled for 1.20.1, module version = 1.0.0
[ 60106.093]    ABI class: X.Org Server Extension, version 10.0
[ 60106.093] (II) LoadModule: "nvidia"
[ 60106.093] (II) Loading /usr/lib64/xorg/modules/drivers/nvidia_drv.so
[ 60106.094] (II) Module nvidia: vendor="NVIDIA Corporation"
[ 60106.094]    compiled for 1.6.99.901, module version = 1.0.0
[ 60106.094]    Module class: X.Org Video Driver
[ 60106.094] (II) NVIDIA dlloader X Driver  450.66  Wed Aug 12 19:44:12 UTC 2020
[ 60106.094] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
[ 60106.094] (++) using VT number 1

[ 60106.094] (II) Loading sub module "fb"
[ 60106.094] (II) LoadModule: "fb"
[ 60106.094] (II) Loading /usr/lib64/xorg/modules/libfb.so
[ 60106.094] (II) Module fb: vendor="X.Org Foundation"
[ 60106.094]    compiled for 1.20.1, module version = 1.0.0
[ 60106.094]    ABI class: X.Org ANSI C Emulation, version 0.4
[ 60106.094] (II) Loading sub module "wfb"
[ 60106.094] (II) LoadModule: "wfb"
[ 60106.094] (II) Loading /usr/lib64/xorg/modules/libwfb.so
[ 60106.094] (II) Module wfb: vendor="X.Org Foundation"
[ 60106.094]    compiled for 1.20.1, module version = 1.0.0
[ 60106.094]    ABI class: X.Org ANSI C Emulation, version 0.4
[ 60106.094] (II) Loading sub module "ramdac"
[ 60106.094] (II) LoadModule: "ramdac"
[ 60106.094] (II) Module "ramdac" already built-in
[ 60106.095] (**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32
[ 60106.095] (==) NVIDIA(0): RGB weight 888
[ 60106.095] (==) NVIDIA(0): Default visual is TrueColor
[ 60106.095] (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
[ 60106.095] (**) NVIDIA(0): Option "CustomEDID" "GPU-0.DFP-3:/etc/X11/edid.txt"
[ 60106.095] (**) NVIDIA(0): Enabling 2D acceleration
[ 60106.095] (II) Loading sub module "glxserver_nvidia"
[ 60106.095] (II) LoadModule: "glxserver_nvidia"
[ 60106.095] (II) Loading /usr/lib64/xorg/modules/extensions/libglxserver_nvidia.so
[ 60106.102] (II) Module glxserver_nvidia: vendor="NVIDIA Corporation"
[ 60106.102]    compiled for 1.6.99.901, module version = 1.0.0
[ 60106.102]    Module class: X.Org Server Extension
[ 60106.102] (II) NVIDIA GLX Module  450.66  Wed Aug 12 19:41:37 UTC 2020
[ 60106.102] (II) NVIDIA: The X server does not support PRIME Render Offload.
[ 60107.183] (--) NVIDIA(0): Valid display device(s) on GPU-0 at PCI:134:0:0
[ 60107.183] (--) NVIDIA(0):     DFP-0
[ 60107.183] (--) NVIDIA(0):     DFP-1
[ 60107.183] (--) NVIDIA(0):     DFP-2 (boot)
[ 60107.183] (--) NVIDIA(0):     DFP-3
[ 60107.183] (--) NVIDIA(0):     DFP-4
[ 60107.183] (--) NVIDIA(0):     DFP-5
[ 60107.183] (--) NVIDIA(0):     DFP-6
[ 60107.184] (II) NVIDIA(0): NVIDIA GPU Quadro RTX 4000 (TU104GL-A) at PCI:134:0:0 (GPU-0)
[ 60107.184] (--) NVIDIA(0): Memory: 8388608 kBytes
[ 60107.184] (--) NVIDIA(0): VideoBIOS: 90.04.32.00.03
[ 60107.184] (II) NVIDIA(0): Detected PCI Express Link width: 16X
[ 60107.184] (--) NVIDIA(GPU-0): DFP-0: disconnected
[ 60107.184] (--) NVIDIA(GPU-0): DFP-0: Internal DisplayPort
[ 60107.184] (--) NVIDIA(GPU-0): DFP-0: 2660.0 MHz maximum pixel clock
[ 60107.184] (--) NVIDIA(GPU-0):
[ 60107.184] (--) NVIDIA(GPU-0): DFP-1: disconnected
[ 60107.184] (--) NVIDIA(GPU-0): DFP-1: Internal TMDS
[ 60107.184] (--) NVIDIA(GPU-0): DFP-1: 165.0 MHz maximum pixel clock
[ 60107.184] (--) NVIDIA(GPU-0):
[ 60107.184] (--) NVIDIA(GPU-0): DFP-2: disconnected
[ 60107.184] (--) NVIDIA(GPU-0): DFP-2: Internal DisplayPort
[ 60107.184] (--) NVIDIA(GPU-0): DFP-2: 2660.0 MHz maximum pixel clock
[ 60107.184] (--) NVIDIA(GPU-0):
[ 60107.185] (--) NVIDIA(GPU-0): DFP-3: disconnected
[ 60107.185] (--) NVIDIA(GPU-0): DFP-3: Internal TMDS
[ 60107.185] (--) NVIDIA(GPU-0): DFP-3: 165.0 MHz maximum pixel clock
[ 60107.185] (--) NVIDIA(GPU-0):
[ 60107.185] (--) NVIDIA(GPU-0): DFP-4: disconnected
[ 60107.185] (--) NVIDIA(GPU-0): DFP-4: Internal DisplayPort
[ 60107.185] (--) NVIDIA(GPU-0): DFP-4: 2660.0 MHz maximum pixel clock
[ 60107.185] (--) NVIDIA(GPU-0):
[ 60107.185] (--) NVIDIA(GPU-0): DFP-5: disconnected
[ 60107.185] (--) NVIDIA(GPU-0): DFP-5: Internal TMDS
[ 60107.185] (--) NVIDIA(GPU-0): DFP-5: 165.0 MHz maximum pixel clock
[ 60107.185] (--) NVIDIA(GPU-0):
[ 60107.185] (--) NVIDIA(GPU-0): DFP-6: disconnected
[ 60107.185] (--) NVIDIA(GPU-0): DFP-6: Internal DisplayPort
[ 60107.185] (--) NVIDIA(GPU-0): DFP-6: 2660.0 MHz maximum pixel clock
[ 60107.185] (--) NVIDIA(GPU-0):
[ 60107.185] (EE) NVIDIA(0): Failed to assign any connected display devices to X screen 0.
[ 60107.185] (EE) NVIDIA(0):     Set AllowEmptyInitialConfiguration if you want the server
[ 60107.185] (EE) NVIDIA(0):     to start anyway
[ 60107.185] (EE) NVIDIA(0): Failing initialization of X screen

Also my dmesg is permanently spammed with the following error

[60206.688358] resource sanity check: requesting [mem 0x000c0000-0x000fffff], which spans more than PCI Bus 0000:00 [mem 0x000c4000-0x000c7fff window]
[60206.688551] caller os_map_kernel_space+0x97/0xb0 [nvidia] mapping multiple BARs

I need advice if this is an issue with the GPU or maybe I’m doing something wrong.

Thanks

You also have to tell the driver that there’s a monitor connected (while there really isn’t one)

Option "ConnectedMonitor" "DFP-3"
1 Like

That was spot on! Thank you so much.
My next question is what is the correct syntax to add metamodes? Right now this configuration only provides me with fullHD resolution:

[    15.466] (==) NVIDIA(0): No modes were requested; the default mode "nvidia-auto-select"
[    15.466] (==) NVIDIA(0):     will be used as the requested mode.
[    15.466] (==) NVIDIA(0):
[    15.467] (II) NVIDIA(0): Validated MetaModes:
[    15.467] (II) NVIDIA(0):     "DFP-3:nvidia-auto-select"
[    15.467] (II) NVIDIA(0): Virtual screen size determined to be 1920 x 1080

Obviously something needs to be added so I can get 3840x2160, but I’m not sure what exactly.

https://wiki.archlinux.org/index.php/xrandr#Adding_undetected_resolutions

Maybe you can try this.

I guess that’s due to DFP-3 being a HDMI output and since there’s no real monitor, no bandwidth check is done so it’s using the 165MHz default pixelclock. You could either work around this by disabling pixelclock checks or use e.g. DFP-2 which is displayport with higher pixelclock.

1 Like

Changing to DFP-2 did the job for me. Now I have 4k@60hz which is exactly what I wanted.
Can you tell me where I can learn a bit more how different DFP ports respond to hdmi/dp etc because that’s something I just learned. I thought that all DFP-* are the same.

It’s in the xorg.log you provided

[ 60107.184] (--) NVIDIA(GPU-0): DFP-2: disconnected
[ 60107.184] (--) NVIDIA(GPU-0): DFP-2: Internal DisplayPort
[ 60107.184] (--) NVIDIA(GPU-0): DFP-2: 2660.0 MHz maximum pixel clock
[ 60107.184] (--) NVIDIA(GPU-0):
[ 60107.185] (--) NVIDIA(GPU-0): DFP-3: disconnected
[ 60107.185] (--) NVIDIA(GPU-0): DFP-3: Internal TMDS
[ 60107.185] (--) NVIDIA(GPU-0): DFP-3: 165.0 MHz maximum pixel clock

TMDS is DVI/HDMI protocol.

1 Like

THank you for your insight