Redhat 7.3 X11 problems (with S3, at least)

Problem:

The 7.3 install correctly detects the S3 chip based videocard I have (built into the motherboard of a Compaq presario 4505).

However, the install decides to give me the latest X11, /usr/X11R6/bin/XFree86 v4.2, as well as an old S3-specific one (called /usr/X11R6/bin/XF86_S3) that is version 3.6.

This wouldn't be so bad, except:
This seems to happen no matter what you select in the install; choosing either or both "classic X11" and the "new X11" makes no difference.  If it matters, I always chose Gnome and to do a graphical login.

I wasted a lot of time trying to install different ways (classic X11 vs. the new one) to avoid this bug.

What to do?

Well, first off, I thought there was some little tweak to XF86Config and then it would work.  Fiddled with it, nope.

Then I realized it was for the old 3.x XFree86.  So, I tried to get RedHat's anaconda to make be 4.2 one.  But it doesn't look like anaconda is installed, at least not by default.  Then, using the latest 4.2 XFree86, I had it write out a sample XF86Config file for me (-configure option).  Fiddled with it, but I couldn't get that to work.  Also tried xf86config; again, a useless XF86Config file.  Another hour wasted.  Could I make a 4.2 XF86Config from scratch?  Eventually, probably, yes.  Do you want to spend your life dealing with X11 configuration files?  I don't.  This hassle is what RedHat and other vendors are supposed to be solving.

Alright.  So running  "XF86_S3" does launch X.  That's how I knew the /etc/X11/XF86Configure I have was a 3.x version.  However, when you just run XF86_S3 you just don't have a window manager, or Gnome, or anything else.  Kill it with ctrl-alt-backspace.  (but you knew that already, because everyone using linux more than a little has to deal with X11 problems at some point).

What's needed is a way to get "startx" to use XF86_S3 (with the functional XF86Config anaconda made) and then startx can go on to launch Gnome and all that good stuff we need.

Following symbolic links, we see that
/usr/X11R6/bin/X
links to
/usr/X11R6/bin/XFree86
and this is probably what "startx" uses to find X.
Also in /usr/X11R6/bin is XF86_S3.  So:
  1. mv XFree86 XFree86.version4 (always save backup copies is my philosophy)
  2. rm X (the now broken symbolic link)
  3. ln -s  XF86_S3 X
Now anything running /usr/X11R6/bin/X will actually run the old XF86_S3.

Type "startx" and voila - watch it all come up just fine.  Well ... I have had some erratic problems with the panel and window manager initially but now it consistently comes up ok.

Solving linux problems is like puzzling out infocom adventure games.  Linux is both fun (when you succeed in fixing something, anyway) and frustrating (because ya know if ya were using Windows, crap like this would be taken care of already and you wouldn't be wasting your time on it).


Final note - after all this, I discover "Xconfigurator" in /usr/X11R6/bin.  This may be able to make a functional XF86Config-4 for you.  After doing the above switcharoo it crashes on the second screen or so, undoubtedly because its expecting a 4.x version of X.  Since I'm using this machine primarily as a server, I don't care about X performance, just that it runs enuf to fiddle occasionally, so I'm keeping what I gots.  Good luck.

Linux home