Quadro M2000/GDM fails to return after each reboot on RHEL 7.4

Quadro M2000/GDM fails to return after each reboot if monitor is unplugged. The machine hangs on “Started GNOME Display Manager” message. But the login screen never comes up. Nouveau is blacklisted at the kernel and module level.
Attempted to add custom EDID to X.org but has not been successful. Open a ticket with Red Hat and and after seeing that the problem was only occurring when the monitor was detached, they threw it over the fence to Nvidia. I’m running 384.98.run file. All other services work fine and I can shell into the box and see that no gdm processes are running.

x-files.tar (2.49 MB)
nvidia-bug-report.log.gz (218 KB)

For the nvidia driver to allow X to start without a display connected, you have to use
Option “AllowEmptyInitialConfiguration”
in the Device/Screen section of xorg.conf. Then you will run into the next problem with gnome which still can’t start headless, you might succeed in that by faking a monitor using the ConnectedMonitor option in xorg.conf.

Thanks generix. I am going to give this a try. Take a look at the updated xorg. Am I even close with the syntax or do I need to fabricate another stanza in the monitor section and then reference that as ‘GPU-1’ ?
xorg.conf.txt (1.52 KB)

ConnectedMonitor takes the connector name as option, e.g.
Option “ConnectedMonitor” “DFP-0”
Maybe take the connector to which you’re attaching the custom edid, DP-7.

When attaching an edid, you don’t need a monitor section, btw.
Edit: just noticed you added the option to the display subsection, don’t know if that works, better put it in the device section together with the edid.

So without a monitor connected, GDM finally comes up. However, the resolution is a lot lower. Maybe I need an additional set of lines to specify resolution and dimensions ? Also, it looks like my edid line is commented out; I can’t remember if I did that or not.
I’m going to paste my current x conf here.

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 384.98  (buildmeister@swio-display-x86-rhel47-02)  Thu Oct 26 15:56:05 PDT 2017

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Files"
    FontPath        "/usr/share/fonts/default/Type1"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/input/mice"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       28.0 - 33.0
    VertRefresh     43.0 - 72.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    Option         "ConnectedMonitor" "DP-7"
#   Option         "CustomEDID" "GPU-0.DP-7:/root/edid.txt
EndSection

Section "Screen"

    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Update : I uncommented the EDID line, reboot just to test. Interestingly, even though GNOME comes up with very poor resolution, once I log in, it returns to the (native ?) resolution of the monitor/Nvidia card.

Maybe gdm just remembers the wrong monitor config, it’s saved in
/var/lib/gdm/.config/monitors.xml
to override, you can just copy your user’s ~/.config/monitors.xml there.