The K Desktop Environment

Chapter 4. Configuring your system to use KDM

This chapter assumes that your system is already configured to run the X Window System, and that you only need to reconfigure it to allow graphical login.

4.1. Setting up KDM

The fundamental thing that controls whether your computer boots to a terminal prompt (console mode) or a graphical login prompt is the default runlevel. The runlevel is set by the program /sbin/init under the control of the configuration file /etc/inittab. The default runlevels used by different Unix systems (and different Linux distributions) vary, but if you look at /etc/inittab the start of it should be something like this:

 # Default runlevel. The runlevels used by RHS are:
 # 0 - halt (Do NOT set initdefault to this)
 # 1 - Single user mode
 # 2 - Multiuser, without NFS
 # 3 - Full multiuser mode
 # 4 - unused
 # 5 - X11
 # 6 - reboot (Do NOT set initdefault to this)
 
 id:3:initdefault:  

All but the last line of this extract are comments. The comments show that runlevel 5 is used for X11 and that runlevel 3 is used for multi-user mode without X11 (console mode). The final line specifies that the default runlevel of the system is 3 (console mode). If your system currently uses graphical login (for example, using xdm) its default runlevel will match the runlevel specified for X11.

The runlevel with graphical login (xdm) for some common Linux distributions are:

The first step in configuring your system is to ensure that you can start KDM from the command line. Once this is working, you can change your system configuration so that KDM starts automatically each time you reboot your system.

To test KDM, you must first bring your system to a runlevel that doesn't run xdm. To do so, issue a command like this:

 /sbin/init 3

Instead of the number "3" you should specify the appropriate runlevel for console mode on your system.

Next you need to locate your xdm configuration directory; normally /etc/X11/xdm/ or /usr/X11R6/lib/X11/xdm/. The configuration directory contains the file Xsetup_0. If you build KDM from source code and the configure step is unable to find this directory, it will install a new version of Xsetup_0 from a template file in the KDM source tree. You can include the line:

 kdmdesktop

In your file to display some nice backgrounds (pictures and background colors). (I'm not sure if this still works; it is certainly not required). If your KDEDIR is not /opt/kde you may have to change the path to kdmdesktop.

If your system uses Pluggable Authentication Modules (PAM), which is normal with recent Red Hat and Mandrake systems, you should check that your PAM configuration permits login through the service named xdm. If you previously used xdm successfully, you should not need to make any changes to your PAM configuration in order to use KDM. /etc/pam.conf or /etc/pam.d/xdm. Information on configuring PAM is beyond the scope of this handbook, but PAM comes with comprehensive documentation (try looking in /usr/doc/pam*/html).

Now it's time for you to test KDM by issuing the following command:

 kdm -nodaemon

If you get a KDM login box and you are able to log in, things are going well. The main thing that can go wrong here is that the run-time linker might not find the shared Qt or KDE libraries. If you have a binary distribution of the KDE libraries, make sure KDM is installed where the libraries believe kde is installed (usually /opt/kde/bin) and try setting some environment variables to point to your KDE and Qt libraries. For example:

 export KDEDIR=/opt/kde
 export QTDIR=/usr/lib/qt2
 export PATH=$KDEDIR/bin:$QTDIR/bin:$PATH
 export LD_LIBRARY_PATH=$KDEDIR/lib:$QTDIR/lib

If you are still unsuccessful, try starting xdm instead, to make sure that you are not suffering from a more serious X configuration problem.

When you are able to start KDM successfully, you can start to replace xdm by KDM. Again, this is distribution-dependent.

If you don't like changing inittab, an alternative is to rename xdm to xdm.bak and make xdm a symbolic link to KDM.

At this stage, you can test KDM again by bringing your system to the runlevel that should now run KDM. To do so, issue a command like this:

 /sbin/init 5

Instead of the number "5" you should specify the appropriate runlevel for running X11 on your system.

The final step is to edit the initdefault entry in /etc/inittab to specify the appropriate runlevel for X11.

Warning

Before you make this change, ensure that you have a way to reboot your system if a problem occurs. This might be a "rescue" floppy-disk provided by your operating system distribution or a specially-designed "rescue" floppy-disk, such as tomsrtbt. Ignore this advice at your peril.

When you reboot your system, you should end up with the graphical KDM login box.

If this step is unsuccessful the most likely problem is that the environment used at boot time differs from the environment that you used for testing at the command line. Check files like /etc/X11/xdm/Xsetup_0 (and any scripts that it invokes) to make sure that your path is not being changed without your knowledge. If you are trying to get two versions of KDE to co-exist, be particularly careful that the settings you use for your PATH and LD_LIBRARY_PATH environent variables are consistent, and that the startup scripts are not over-riding them in some way.