








			  Information for Linux Users

			 Orest Zborowski, Dirk Hohndel

			       February 26, 1997



1.  Linux versions on which XFree86 has been tested

XFree86 has been tested with Linux version 2.0.32 and several 2.1xx kernels.
It is known not to compile with kernel sources newer then somewhere around
2.1.70, due to incompatibilities in the joystick driver. Except for the joy-
stick driver, it works just fine with all 2.1.x kernels tested (including
2.1.88). It should work with any version since 1.0 without change. The binaries
and libraries are based on the 5.3.12 Elf C libraries, and the 1.7.14 dynamic
linker ld.so. You will at least need the 5.2.x Elf C libraries to successfully
use the servers.


2.  Backwards Compatibility

X11R6 is considered a major update from X11R5, so the shared libraries in
XFree86 3.1 and later are not compatible with XFree86 2.1.1 and older
libraries. To continue to run X11R5 applications, you must keep the old
libraries somewhere on your machine. They can be moved from /usr/X386/lib else-
where, but /etc/ld.so.conf must be updated.  All X11R5 applications should work
with the X11R6 servers without problems.

X11R6.1 is yet another update to X11R6. While the minor number for some
libraries has been increased to '1' it is believed to be fully compatible with
X11R6 based applications.

X11R6.3 is yet another update to X11R6.1. While the minor number for some
libraries has been increased to '3' it is believed to be fully compatible with
X11R6 based applications.

Very old binaries (linked to XFree86-1.2, XFree86-1.3 or XFree86-2.0 libraries)
will continue to work, but may need an explicit symlink from
/lib/libX{11,t,aw}.so.3 to /usr/X386/lib/libX{11,t,aw}.so.3.


3.  Installing XFree86

Starting with version 3.0, XFree86 is installed in /usr/X11R6.	Each binary
distribution of XFree86 3.X comes with a detailed installation document rele-
vant to that release. The most up-to-date information is kept there, while this
document describes basic features of XFree86 3.X on Linux and how to compile
the sources.





Information for Linux Users





Information for Linux Users



4.  Running XFree86

XFree86 requires about 4mb of virtual memory to run, although having 8mb of RAM
is probably the minimum comfortable configuration. A 387 coprocessor is helpful
for 386 machines, although greater gains in interactive performance are
obtained with an increase in physical memory.  Also, a faster graphics card,
bus or RAM, will improve server performance.

After unpacking the tar files, you need to include /usr/X11R6/lib in
/etc/ld.so.conf (where it should already be by default) or in your
LD_LIBRARY_PATH environment variable. Also, the configuration file
/etc/XF86Config or /usr/X11R6/lib/X11/XF86Config must be properly filled out
based on the host setup. Ideally this is done using XF86Setup or (if for some
reason this doesn't work) using xf86config. If you really insist in hand-creat-
ing your config file use XF86Config.eg as a starting point and README.Config as
guideline.  You may damage your hardware if you use a wrong XF86Config file, so
read the docs, especially the man pages and the other README files in
/usr/X11R6/lib/X11/doc.

XFree86 has the ability to perform VT switching to and from the X server. When
first started, XFree86 will automatically locate the first available VT (one
that hasn't been opened by any process), and run on that VT.  If there isn't
one available, XFree86 will terminate with an error message.  The server can be
run on a specific VT by using the ``vt<nn>'' option, where <nn> is the number
of an available VT (starting from 1). If you don't have a free VT XFree86 can-
not run. Normally you can simply disable one of the getty programs in
/etc/inittab, but if this is not an option, you can increase the number of
available VTs by increasing the value of NR_CONSOLES in include/linux/tty.h and
recompiling the kernel.

Once running inside X, switching to another VT is accomplished by pressing
Ctrl-Alt-<Fnn> where nn is the number of the VT to switch to.  To return to the
server, press the proper key-combination that moves you back to the VT that
XFree86 is using: by default, this is Alt-<Fmm>, where mm is the number of the
VT the server is running on (this number is printed when the server is
started).  Note that this is NOT the VT from which the server was started.

NOTE: you can redefine the text-mode keybindings with the `loadkeys' command
found in the kbd-0.81.tar.gz archive (or a later version thereof).  With this,
you can (for example) make Ctrl-Alt-<Fmm> work from text mode the same way it
works under the XFree86 server.

When the server is exited, it will return to the original VT it was started
from, unless it dies unexpectedly, when the switch must be done manually. There
still seem to be weird combinations of graphic cards and motherboards that have
problems to restore the textfont when returning from XFree86 to the text mode.
In these cases using the runx script from the svgalib distribution might help.

The XFree86 server now queries the kernel to obtain the key binding in effect
at startup. These bindings are either the default map in place when the kernel
was compiled, or reloaded using the `loadkeys' utility. Not all keys are bound:
kernel-specific, multiple keysym, and dead keys are not handled by the server.
All others are translated to their X equivalents.  Note that the XFree86 server
only allows for four modifier maps: unshifted, shifted, modeswitch unshifted








Information for Linux Users



and modeswitch shifted.  Depending on what the modeswitch key is (it is config-
urable in your XF86Config and defaults to Alt), XFree86 will read those tables
into its keymaps.  This means if you use certain keys, like left-Control, for
Linux modeswitch, that will not be mappable to X.


5.  Installing Xdm, the display manager

Since xdm is dynamically linked, there's no issue on export restriction outside
US for this binary distribution of xdm: it does not contain the DES encryption
code. So it's now included in the bin package.

However the file xc/lib/Xdmcp/WrapHelp.c is not included in the XFree86-3.3
source, so support for XDM-AUTHORIZATION-1 is not included here. You'll have to
get WrapHelp.c and rebuild xdm after having set HasXdmAuth in xf86site.def.

The file is available within the US; for details see ftp.x.org:/pub/R6/xdm-
auth/README.

To start the display manager, log in as root on the console and type: ``xdm
-nodaemon''.

You can start xdm automatically on bootup by disabling the console getty and
modifying /etc/inittab. Details about this setup depend on the Linux distribu-
tion that you use, so check the documentation provided there.

The xdm binary provided should run with both shadow- and non-shadow password
systems.


6.  xterm

The XFree86-3.3.2 binary release contains an xterm binary that has been linked
statically against libtermcap. This was done to make sure that it will cor-
rectly work with all distributions, regardless whether they rely on libtermcap
or libncurses. Contrary to the xterm binaries in some beta version following
XFree86-3.1.2, this binary does not rely on a recent libncurses being installed
on your system.


7.  Input devices

XFree86 now support the dynamic loading of drivers for external input devices
using the XInput extension. Currently supported devices are:

   o Joystick (xf86Jstk.so)

   o Wacom tablets (Wacom IV protocol only, xf86Wacom.so)

   o SummaSketch tablets (xf86Summa.so)

   o Elographics touchscreen (xf86Elo.so)

To use a specific device, add the line








Information for Linux Users



     load "module"


in the Module section of XF86Config, where module is the name of the .so file
corresponding to your device.  You also need to set up a XInput section in
XF86Config.  Refer to the XF86Config(5) man page for detailed configuration
instructions.

You can then change the device used to drive the X pointer with the xset-
pointer(1) command.

For joystick support, you'll need to install the joystick device driver in the
kernel.

7.1  Configuring PEX, XIE and GLX extensions

The PEX, XIE and GLX extensions are now supported as external modules.	If you
want to have access to these extensions, add the following lines to the Module
section of XF86Config:

	load	"pex5.so"
	load	"xie.so"


For GLX you need to get the appropriate GLX modules, first. They are, at this
time, not part of the XFree86 distribution.


8.  Compiling XFree86

There are no special instructions required for compiling XFree86.  This version
was compiled with gcc-2.7.2.1, the 5.3.12 Elf libraries and the 1.7.14 shared,
dynamic linker ld.so.  The server has been compiled with -m486, which optimizes
it for the 486 processor, but the binary will run on the 386 processor (there
is a slight increase in binary size over using -m386, but no loss of perfor-
mance).

All extensions and clients have been ported and tested. By default, the servers
are compiled without any extra extensions (PEX, XIE, etc), but libraries for
those extensions are always generated. They can be loaded at runtime, see the
XFree86 man page for details. By modifying site.def, extra extensions can be
compiled into the server.  Alternately, the link kit can be used to craft modi-
fied servers.

If an aout version of XFree86 is to be built and patches are applied which sig-
nificantly change the libraries, modified jump_xxx files will be needed. Those
can be generated according to instructions given in the DLL tools package, and
will be made available as XFree86 patches.

The JUMP_xxx defines used to compile the X libraries can also be used to com-
pile external X shared libraries, like Xaw3d. Detailed instructions are pro-
vided in /usr/X11R6/lib/X11/config/lnxLib.rules, where the X library defini-
tions are provided, as an example.









Information for Linux Users



9.  Bug Notification

Bug reports should be sent to XFree86@XFree86.org or posted to the comp.win-
dows.x.i386unix newsgroup.

     Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Linux.sgml,v 3.13.2.4 1998/02/26 20:11:26 hohndel Exp $





     $XConsortium: Linux.sgml /main/6 1996/10/28 04:47:37 kaleb $


















































Information for Linux Users





































































				   CONTENTS



1. Linux versions on which XFree86 has been tested  ......................... 1

2. Backwards Compatibility  ................................................. 1

3. Installing XFree86  ...................................................... 1

4. Running XFree86  ......................................................... 2

5. Installing Xdm, the display manager ...................................... 3

6. xterm .................................................................... 3

7. Input devices ............................................................ 3
   7.1 Configuring PEX, XIE and GLX extensions .............................. 4

8. Compiling XFree86  ....................................................... 4

9. Bug Notification  ........................................................ 5


































				       i


