Comment 6 for bug 1811023

Revision history for this message
PJSingh5000 (pjsingh5000) wrote :

I am using nvidia-driver-460 version 460.39-0ubuntu0.20.04.1.

    xserver-common version 2:1.20.9-2ubuntu1.2~20.04.1
    xserver-xephyr version 2:1.20.9-2ubuntu1.2~20.04.1
    xserver-xorg version 1:7.7+19ubuntu14
    xserver-xorg-core version 2:1.20.9-2ubuntu1.2~20.04.1

The GDM screen would only appear after typing Ctrl+Alt+F2 followed by Ctrl+Alt+F1.

The following seems to have fixed the issue for me, and the GDM screen now appears without having to resort to the above "trick".

 1. Edit the file /lib/udev/rules.d/61-gdm.rules.

    sudo nano /lib/udev/rules.d/61-gdm.rules

    The original file looks like this:

    # disable Wayland on Hi1710 chipsets
    ATTR{vendor}=="0x19e5", ATTR{device}=="0x1711", RUN+="/usr/lib/gdm3/gdm-disable-wayland"
    # disable Wayland when using the proprietary nvidia driver
    DRIVER=="nvidia", RUN+="/usr/lib/gdm3/gdm-disable-wayland"

    Comment all of the lines as shown:

    # disable Wayland on Hi1710 chipsets
    # ATTR{vendor}=="0x19e5", ATTR{device}=="0x1711", RUN+="/usr/lib/gdm3/gdm-disable-wayland"
    # disable Wayland when using the proprietary nvidia driver
    # DRIVER=="nvidia", RUN+="/usr/lib/gdm3/gdm-disable-wayland"

    Type Ctrl+X to exit, then Y, and then Enter to save the file.

 2. Ensure that the Wayland is not disabled in GDM.

    sudo nano /etc/gdm3/custom.conf

    Comment the "WaylandEnable" line, if it is not already commented, as shown:

    # WaylandEnable=false

    Type Ctrl+X to exit. If you made changes, type Y, and then Enter to save the file.

 3. Finally, reboot.

Explanation

The /lib/udev/rules.d/61-gdm.rules file is supposed to prevent GDM from displaying the Wayland session option when the NVIDIA proprietary drivers are installed, since NVIDIA does not support Wayland.

However, in Ubuntu 20.04, there seems to be another redundant mechanism or rule that also prevents GDM from displaying the Wayland session option. I suspect this, because even after making the above change, the Wayland session option is still not displayed in GDM. (Setting WaylandEnable=true in /etc/gdm3/custom.conf has no effect).

Therefore, I have a hunch that there are two conflicting rules, and disabling one of the rules (i.e. /lib/udev/rules.d/61-gdm.rules) seems to remove the conflict.

Here is the journalctl boot log before making the above changes. You can see there is an error loading the "fb" module.

/usr/lib/gdm3/gdm-x-session[964]: (II) Loading sub module "fb"
/usr/lib/gdm3/gdm-x-session[964]: (II) LoadModule: "fb"
/usr/lib/gdm3/gdm-x-session[964]: (II) Loading /usr/lib/xorg/modules/libfb.so
/usr/lib/gdm3/gdm-x-session[964]: (II) Module fb: vendor="X.Org Foundation"
/usr/lib/gdm3/gdm-x-session[964]: compiled for 1.20.9, module version = 1.0.0
/usr/lib/gdm3/gdm-x-session[964]: ABI class: X.Org ANSI C Emulation, version 0.4
/usr/lib/gdm3/gdm-x-session[964]: Xorg: ../../../../dix/privates.c:384: dixRegisterPrivateKey: Assertion `!global_keys[type].created' failed.
/usr/lib/gdm3/gdm-x-session[964]: (EE)
/usr/lib/gdm3/gdm-x-session[964]: (EE) Backtrace:
/usr/lib/gdm3/gdm-x-session[964]: (EE) 0: /usr/lib/xorg/Xorg (OsLookupColor+0x13c) [0x55936e23a59c]
/usr/lib/gdm3/gdm-x-session[964]: (EE) 1: /lib/x86_64-linux-gnu/libpthread.so.0 (funlockfile+0x60) [0x7f70b994541f]
/usr/lib/gdm3/gdm-x-session[964]: (EE) 2: /lib/x86_64-linux-gnu/libc.so.6 (gsignal+0xcb) [0x7f70b978218b]
/usr/lib/gdm3/gdm-x-session[964]: (EE) 3: /lib/x86_64-linux-gnu/libc.so.6 (abort+0x12b) [0x7f70b9761859]
/usr/lib/gdm3/gdm-x-session[964]: (EE) unw_get_proc_name failed: no unwind info found [-10]
/usr/lib/gdm3/gdm-x-session[964]: (EE) 4: /lib/x86_64-linux-gnu/libc.so.6 (?+0x0) [0x7f70b976171a]
/usr/lib/gdm3/gdm-x-session[964]: (EE) 5: /lib/x86_64-linux-gnu/libc.so.6 (__assert_fail+0x46) [0x7f70b9772f36]
/usr/lib/gdm3/gdm-x-session[964]: (EE) 6: /usr/lib/xorg/Xorg (dixRegisterPrivateKey+0x239) [0x55936e0f7ac9]
/usr/lib/gdm3/gdm-x-session[964]: (EE) 7: /usr/lib/xorg/modules/libglamoregl.so (glamor_init+0xcf) [0x7f70b4b9735f]
/usr/lib/gdm3/gdm-x-session[964]: (EE) unw_get_proc_name failed: no unwind info found [-10]
/usr/lib/gdm3/gdm-x-session[964]: (EE) 8: /usr/lib/xorg/modules/drivers/modesetting_drv.so (?+0x0) [0x7f70b87fcc00]
/usr/lib/gdm3/gdm-x-session[964]: (EE) unw_get_proc_name failed: no unwind info found [-10]
/usr/lib/gdm3/gdm-x-session[964]: (EE) 9: /usr/lib/xorg/modules/drivers/modesetting_drv.so (?+0x0) [0x7f70b87f4dd0]
/usr/lib/gdm3/gdm-x-session[964]: (EE) 10: /usr/lib/xorg/Xorg (AddGPUScreen+0xf5) [0x55936e0d92d5]
/usr/lib/gdm3/gdm-x-session[964]: (EE) 11: /usr/lib/xorg/Xorg (xf86PlatformMatchDriver+0xa44) [0x55936e134cf4]
/usr/lib/gdm3/gdm-x-session[964]: (EE) 12: /usr/lib/xorg/Xorg (xf86PlatformDeviceCheckBusID+0x225) [0x55936e13a035]
/usr/lib/gdm3/gdm-x-session[964]: (EE) 13: /usr/lib/xorg/Xorg (config_fini+0xa4a) [0x55936e1368da]
/usr/lib/gdm3/gdm-x-session[964]: (EE) 14: /usr/lib/xorg/Xorg (config_fini+0x15eb) [0x55936e13810b]
/usr/lib/gdm3/gdm-x-session[964]: (EE) 15: /usr/lib/xorg/Xorg (config_init+0xd) [0x55936e1355dd]
/usr/lib/gdm3/gdm-x-session[964]: (EE) 16: /usr/lib/xorg/Xorg (InitInput+0xb9) [0x55936e118c89]
/usr/lib/gdm3/gdm-x-session[964]: (EE) 17: /usr/lib/xorg/Xorg (InitFonts+0x36d) [0x55936e0dcf7d]
/usr/lib/gdm3/gdm-x-session[964]: (EE) 18: /lib/x86_64-linux-gnu/libc.so.6 (__libc_start_main+0xf3) [0x7f70b97630b3]
/usr/lib/gdm3/gdm-x-session[964]: (EE) 19: /usr/lib/xorg/Xorg (_start+0x2e) [0x55936e0c6a2e]
/usr/lib/gdm3/gdm-x-session[964]: (EE)
/usr/lib/gdm3/gdm-x-session[964]: (EE)
/usr/lib/gdm3/gdm-x-session[964]: Fatal server error:
/usr/lib/gdm3/gdm-x-session[964]: (EE) Caught signal 6 (Aborted). Server aborting
/usr/lib/gdm3/gdm-x-session[964]: (EE)
/usr/lib/gdm3/gdm-x-session[964]: (EE)
/usr/lib/gdm3/gdm-x-session[964]: Please consult the The X.Org Foundation support
/usr/lib/gdm3/gdm-x-session[964]: at http://wiki.x.org
/usr/lib/gdm3/gdm-x-session[964]: for help.
/usr/lib/gdm3/gdm-x-session[964]: (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
/usr/lib/gdm3/gdm-x-session[964]: (EE)
/usr/lib/gdm3/gdm-x-session[964]: (EE) Server terminated with error (1). Closing log file.
/usr/lib/gdm3/gdm-x-session[962]: Unable to run X server
gdm-launch-environment][912]: pam_unix(gdm-launch-environment:session): session closed for user gdm

Here is the journalctl boot log after making the above changes. You can see the "fb" module loads successfully.

/usr/lib/gdm3/gdm-x-session[1357]: (II) Loading sub module "fb"
/usr/lib/gdm3/gdm-x-session[1357]: (II) LoadModule: "fb"
/usr/lib/gdm3/gdm-x-session[1357]: (II) Loading /usr/lib/xorg/modules/libfb.so
/usr/lib/gdm3/gdm-x-session[1357]: (II) Module fb: vendor="X.Org Foundation"
/usr/lib/gdm3/gdm-x-session[1357]: compiled for 1.20.9, module version = 1.0.0
/usr/lib/gdm3/gdm-x-session[1357]: ABI class: X.Org ANSI C Emulation, version 0.4
/usr/lib/gdm3/gdm-x-session[1357]: (II) Loading sub module "wfb"