GNOME/GDM

From Gentoo Wiki
< GNOME(Redirected from GNOME/gdm)
Jump to: navigation, search

As part of the GNOME desktop suite, the GNOME Display Manager (GDM) is the daemon responsible for launching graphical display sessions via the Xorg display server or the gnome-shell directly via Wayland display protocol.

Configuration

Debugging

To enable debugging, edit the following configuration file:

FILE /etc/gdm/custom.conf
[debug] 
# Uncomment the line below to turn on debugging
Enable=true

On systems running systemd, this will configure GDM to write verbose output to the journal. Be sure to disable debugging when finished resolving any issues to save space in the journal.

See upstream's debug documentation for more details on debugging GDM.

Troubleshooting

GDM and Optimus

See the GDM section of the NVIDIA Optimus article when using GDM on platforms utilizing NVIDIA Optimus.

Enable tap to click in GDM

Tap to click is disabled by default in GDM's environment. Enabling this feature requires setting GNOME option org.gnome.desktop.peripherals.touchpad tap-to-click for the gdm user.

Grant permissions for gdm to access the X server:

user $xhost +SI:localuser:gdm

Then set the gsettings configuration value as the gdm user to enable tap to click:

user $sudo -u gdm gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true

The new setting will take effect after restarting the GDM service.

GDM crashes when attempting to launch a GNOME Wayland session

Problem: GDM is crashing when attempting to launch a GNOME Wayland session. Known to affect at least gdm-3.32.0.

Solution: This is most likely occurring because the NVIDIA kernel module is being loaded by the kernel and subsequently detected by udev - even if it not being used by the graphics stack. The udev rule (see /lib/udev/rules.d/61-gdm.rules) is shipped with GDM. Even if the system is not actively using the NVIDIA driver or NVIDIA hardware to render graphics, the rule will still trigger the /usr/libexec/gdm-disable-wayland" executable. This writes a configuration file to /run/gdm/custom.conf which is read by GDM at start time and disables support for Wayland sessions.

There are a few solutions to this problem:

  1. Uninstall the x11-drivers/nvidia-drivers package and remove the installed NVIDIA kernel modules. This is most likely the easiest solution, since it will remove the NVIDIA kernel module that triggers the udev rule (nvidia.ko) and prevent it from returning.
  2. Blacklist the NVIDIA kernel module from loading. This can is performed different ways: kernel command-line parameters via the secondary bootloader (GRUB2, systemd-boot, etc.) or adding a blacklist configuration file via modprobe.d.
  3. System administrators that want to keep the NVIDIA binary blob available for other desktop environments, but want to launch GNOME on Wayland and follow this last solution. It is simplest to manually editing the offending part of the udev rule so that gdm-disable-wayland cannot create the custom configuration file. To be safe, review Xorg's configuration files in the /etc/X11 directory to be sure NVIDIA is not being set as the primary Xorg driver. It is also a good idea to review the Xorg.0.log to double check. Simply comment out the last line:
FILE /lib/udev/rules.d/61-gdm.rules
# disable Wayland on Cirrus chipsets
ATTR{vendor}=="0x1013", ATTR{device}=="0x00b8", ATTR{subsystem_vendor}=="0x1af4", ATTR{subsystem_device}=="0x1100", RUN+="/usr/libexec/gdm-disable-wayland"
# disable Wayland on Hi1710 chipsets
ATTR{vendor}=="0x19e5", ATTR{device}=="0x1711", RUN+="/usr/libexec/gdm-disable-wayland"
# disable Wayland when using the proprietary nvidia driver
#DRIVER=="nvidia", RUN+="/usr/libexec/gdm-disable-wayland"

External resources