/* Void Main's Red Hat/Fedora Tips */

{ Red Hat/Fedora Tips(); } else { main(); }
Red Hat/Fedora X Terminal Server
#include <stddisclaimer.h>

I have a pretty healthy desktop system. It's a home built AMD Athlon 1600+ with 512MB of RAM. Red Hat 8.0/9/FC1 sings on this machine. I also have a couple of old Dell laptop computers. One is an old Latitude xpi 100Mhz with 72MB of RAM and the one I am creating this web page with is a little newer Dell Latitude CPi with only 64MB of RAM. The old one runs Red Hat 6.2 very nicely all on it's own. The newer one runs Red Hat 8.0/9/FC1 pretty well, but certainly nothing like the Athlon desktop.

One day while plugging away and things got slow because I had too many apps open it hit me that several years back I used Linux as a cheap Xterminal into our large AIX servers. I couldn't believe I hadn't been using the processing power in my house to it's full potential. Now it's as if I have the Athlon desktop resources shoved into my laptop case. And my wife and kids can use the desktop as if I'm not even there.

Pros: Use your computer resources more intelligently.

More than one person can use your fast machine with no noticable performance degredation.

Everything you need is already installed on a default Red Hat installation.

Cons: Can't think of any.

Ok, I'm convinced, now how do I set this up?

Let us begin: On your fast machine (the one you want to act as the terminal server) click System Settings->Login Screen on your menu. On the first tab (General) I set the "Remote Greeter" to "Graphical Greeter" so I get the same graphical login on my laptop as I get when I log in locally to the Athlon desktop:

GDM 1 screenshot

Now for the important part. Click the last tab (XDMCP). Click Enable XDMCP:

GDM 2 screenshot

NOTE: If you have firewalling (iptables) configured on either the client or server, or you have another firewall between your client and server, make sure port 177 is opened up. This is the default XDMCP port. See the XDMCP-HOWTO for more information.

That's it! Nothing more needs to be done on the X server side. Now for the client. There is really no configuration necessary as all you have to do is start your client machine up without X (runlevel 3) log in, start the "xfs" service and then start X by typing "X -broadcast". This should send a broadcast on your local network and your X server should respond to it and you should get the familar looking Red Hat graphical login screen. The difference is, this login screen is coming from your server (my desktop in my case).

Now, instead of having to log in and type that stuff you can just have this happen automatically when you start your laptop. I just modified one line in my /etc/inittab on my laptop so instead of starting the local graphical login manager it runs the "/usr/X11R6/bin/X -depth 16 -query xserver.voidmain.home". Change your default runlevel back to 5 at the top of this file if it is not already set that way. The -depth 16 means run X at 16 bit color (faster over a network than 24 or 32 bit color but still very pleasing to the eye). I used "-query xserver.voidmain.home" in place of "-broadcast" so X doesn't have to broadcast for a display. If you have multiple X servers you might want this. Here is a screen shot of the last line in my /etc/inittab where I have made this change:

inittab screenshot

Notice I just commented the original line out in case I want to revert back to using the local X server (on an airplane for instance, wireless doesn't reach that far).

And try doing this on a laptop with 64MB!:

vmware screenshot vmware screenshot

As you can see in the first shot I am running a session of Windows 2000 Advanced Server with the Exchange Administrator, Internet Exploder, and a copy of SuSe 8.0 with KDE 3.x and Konqueror running, both running under VMware on my Red Hat 8.0/9/FC1 desktop. All through my terminal server session from my laptop. And all while my Son is at the console of the desktop playing StarCraft under WineX. The second shot is Windoze 98 in VMware, again displayed on my laptop but running on the desktop. Obviously it isn't quite as nice of an experience because I am limited to an overall resolution of 800x600 on this laptop and had the guest VMware OSs set down to 640x480. It's nice having 1280x1024 for this sort of stuff and putting them in full screen mode so it *appears* to be the only OS running, but at least you *can* do some of these things remotely. I guess you could call that getting the most out of your available resources.

NOTE: Although Windows runs very well in VMware I *rarely* run Windows under it. I run everything for my work and my family entirely on Linux. The only reason I ever fire it up is for testing connectivity with Linux or for doing screenshots for articles like this. I now mainly use VMware for testing other Linux distributions, BSD, and Solaris x86.

NOTE2: Of course you can set up a full blown terminal server and having a hard drive in the client computer is totally optional. You could set it up to boot from floppy disk or network interface (PXE), obtain DHCP/bootp information, mount file systems from a remote computer and connect to the display of the remote computer. See the Linux Terminal Server Project.

That's about all there is to say about it other than I use my latop 99% of the time now in the comfort of my living room and I don't have to suffer because of low resources.

Have fun!

Forums
XDMCP HOWTO

Valid HTML 4.01!