Introduction to GDM

GDM is a system service that is responsible for providing graphical logins and managing local and remote displays.

This package is known to build and work properly using an LFS-9.0 platform.

Package Information

GDM Dependencies


AccountsService-0.6.55, GTK+-3.24.10, ISO Codes-4.3, itstool-2.0.6, keyutils-1.6, libcanberra-0.30, libdaemon-0.14, and Linux-PAM-1.3.1

Runtime Dependencies

gnome-session-3.32.0, gnome-shell-3.32.2, and elogind-241.3

User Notes:

Installation of GDM

It is recommended to have a dedicated user and group to take control of the gdm daemon after it is started. Issue the following commands as the root user:

groupadd -g 21 gdm &&
useradd -c "GDM Daemon Owner" -d /var/lib/gdm -u 21 \
        -g gdm -s /bin/false gdm &&
passwd -ql gdm


The gdm login screen is managed by gnome-shell, which relies on the systemd-localed daemon to get the system settings. Since this daemon is not present on this system, a sed is applied in the gnome-shell-3.32.2 instructions to change this behavior, but then gdm uses the system settings, which default to a US “qwerty” keyboard layout. This may be an inconvience to enter a password when the machine keyboard has a different layout. One possibility is to use the screen-keyboard from the accessibility menu. Another possibility is to change the defaults at compile time, by creating the following file:

cat > data/dconf/defaults/01-keyboard << EOF

where layout should be replaced with the acronym for your keyboard layout (one of the filenames in /usr/share/X11/xkb/symbols).

Install GDM by running the following commands:

sed 's@systemd@elogind@' -i data/pam-lfs/gdm-launch-environment.pam &&

./configure --prefix=/usr         \
            --sysconfdir=/etc     \
            --localstatedir=/var  \
            --without-plymouth    \
            --disable-static      \
            --enable-gdm-xsession \
            --with-systemdsystemunitdir=no \
            --with-pam-mod-dir=/lib/security &&

This package does not come with a usable test suite.

Now, as the root user:

make install

Command Explanations

--disable-static: This switch prevents installation of static versions of the libraries.

--with-initial-vt=7: Use this switch to make GDM start on VT7 instead of the first free VT.

--without-plymouth: GDM now explicitly requires plymouth to be installed. Use this switch to disable this dependency.

--with-default-pam-config=lfs: Use this switch if you did not create the /etc/lfs-release file or distribution auto detection will fail and you will be unable to use GDM.

--enable-gdm-xsession: This enables the installation of the GDM Xsession file.

Configuring GDM

Config Files


Configuration Information

The GDM daemon is configured using the /etc/gdm/custom.conf file. Default values are stored in GSettings in the gdm.schemas file. It is recommended that end-users modify the /etc/gdm/custom.conf file because the schemas file may be overwritten when the user updates their system to have a newer version of GDM.

Boot Script

To start the gdm automatically when the system is booted, install the /etc/rc.d/init.d/gdm init script included in the blfs-bootscripts-20190609 package and set the default runlevel to 5 (graphical login) as the root user:

make install-gdm

In order to permanently set the default runlevel to 5, starting the gdm greeter screen automatically, you can modify /etc/inittab. As the root user:

sed /initdefault/s/3/5/ -i /etc/inittab

You should also disable default elogind power management:

cat >> /etc/elogind/logind.conf << "EOF"


Installed Programs: gdm, gdmflexiserver, and gdm-screenshot
Installed Libraries: and (PAM Module)
Installed Directories: /etc/gdm, /usr/include/gdm, /usr/share/gdm, /usr/share/help/*/gdm, /var/cache/gdm, /var/lib/gdm, /var/log/gdm, and /var/run/gdm

Short Descriptions


is a login prompt for GNOME.


is a screenshot tool for GDM.

Last updated on 2019-08-29 13:29:12 -0700