Start by installing your distribution of choice. The specific file locations given below are for Fedora 5. Most distributions install only one DE by default, so make sure to select the desired DE during installation. Although many distributions, including Fedora, give the choice of GNOME or KDE, some have opted to provide only one DE.
GNOME and KDE coexist well. One is set as the system default, but both GDM and KDM allow you to select GNOME or KDE desktops on the fly for each login. The system default DM, on the other hand, is the only DM that will be used.
To select the system default DE and DM, edit /etc/sysconfig/desktop. It should have only two lines:
DE is either GNOME or KDE, and DM is either XDM, GNOME or KDE.
If the system does not automatically boot to a graphical login, change the default runlevel (initdefault) to 5 in /etc/inittab.
To use a font server, run ntsysv and select xfs to run at boot. Also, configure xfs by editing /etc/X11/fs/config and remove the line no-listen = tcp to allow outside connections to xfs.
KDM is configured using the file /etc/kde/kdm/kdmrc, which is in INI format. To allow remote connections, set Enable=true in the Xdmcp section. You probably also will want to customize the X-*-Greeter section, which controls the appearance of the login screen. Note that if the UseTheme parameter is true, many other parameters in this section will be overridden. KDM also can be configured using the KDE Control Panel, but it loses all the comments in kdmrc. I prefer to edit kdmrc directly.
GDM also has an INI format configuration file (/etc/gdm/custom.conf). Simply set Enable=true in the xdmcp section. The GDM configuration file is not heavily annotated, so the GUI configuration tool gdmsetup may be preferable. Run gdmsetup locally on the terminal server. On the Remote tab, change Style to Plain, Plain with face browser or Same as local. If in doubt, choose Plain.
For any DM, access is controlled by the file /etc/X11/xdm/Xaccess. Simply add the IP address or DNS name of each allowed host. A * on a line by itself will allow connections from any host.
This is everything necessary to allow a thin client to log in to a desktop on the terminal server, but more server configuration will be necessary later to access local thin-client hardware beyond KVM.
A thin client is not the only way to access the XDMCP server. Client software also can be run from a workstation. You can access either a desktop or directly run applications.
If X is not currently running, the following command provides a login to a remote desktop on a terminal server host:
X -query host
If X is already running, the same command also will work, with the local desktop and the remote desktops being on separate virtual terminals (VTs). To open the remote desktop in a window, use:
Xnest -query host
If either of these give the error “Server is already active for display 0”, select a different display number by adding :1 as the first option.
To run an X application remotely without a desktop, use:
ssh -X -l username host
to log in, and then run the application from the command line. The ssh option -C will add compression for slow connections.
If your workstation has tsclient installed, this provides a GUI front end for Xnest as well as client software for other protocols.
Most of the above functionality can be added to an MS Windows workstation by installing Cygwin. When installing Cygwin, add the package X11/xorg-x11-xwin to the default installation. Also, add Net/openssh if you want to use SSH. The above commands should then work in a Cygwin shell. For SSH, run startx first, then run ssh in the X terminal window that it creates.
Thin clients provide GUI tools that make basic network configuration similar to any other network appliance. Beyond the basic configuration, these tools allow the creation of sessions. A session defines the server to access and the protocol to use. XDMCP can be a session, but because the thin client is running X natively, connecting to an XDMCP server might be a basic display configuration setting. How this is done depends on the manufacturer. Other protocols are always configured as sessions.
The configuration details below were tested on an Igel 364 LX. They should be general enough to work with any thin client with ESD and NFS server capabilities, but these are not features that should be assumed.
- Non-Linux FOSS: Code Your Way To Victory!
- Vagrant Simplified
- Disney's Linux Light Bulbs (Not a "Luxo Jr." Reboot)
- Libreboot on an X60, Part I: the Setup
- Dealing with Boundary Issues
- System Status as SMS Text Messages
- Bluetooth Hacks
- New Products
- October 2015 Issue of Linux Journal: Raspberry Pi
- Linux and the Internet of Things