*BSD News Article 11164


Return to BSD News archive

Received: by minnie.vk1xwt.ampr.org with NNTP
	id AA1333 ; Tue, 23 Feb 93 14:35:39 EST
Newsgroups: comp.unix.bsd
Path: sserve!manuel.anu.edu.au!munnari.oz.au!spool.mu.edu!caen!destroyer!cs.ubc.ca!uw-beaver!newsfeed.rice.edu!rice!news.Rice.edu!rich
From: rich@Rice.edu (Richard Murphey)
Subject: XFree86 1.2 for 386BSD Available
In-Reply-To: dwex@cbnewsj.cb.att.com's message of Mon, 15 Feb 1993 13:18:36 GMT
Message-ID: <RICH.93Feb15114759@omicron.Rice.edu>
Followup-To: comp.unix.bsd
Sender: news@rice.edu (News)
Reply-To: Rich@Rice.edu
Organization: Department of Electrical and Computer Engineering, Rice
	University
References: <1993Feb15.131836.14649@cbnewsj.cb.att.com>
Date: Mon, 15 Feb 1993 17:47:59 GMT
Lines: 274


The XFree86-1.2 binary release for 386BSD is available by anon ftp
from agate.berkeley.edu in /pub/386BSD/0.1-ports/XFree86-1.2.

The posting `Announcing the release of XFree86 1.2' has general
information about the XFree86 1.2 release.

The 386BSD specific details below are a copy of 
agate.berkeley.edu:/pub/386BSD/0.1-ports/XFree86-1.2/README.386BSD.

Rich



               README for XFree86 1.2 on 386BSD 0.1
               ------------------------------------

Contents
--------
    1) What and Where is XFree86?
    2) Installing The Binaries
    3) Configuring X for Your Hardware
    4) Running X
    5) Kernel Support for X
    6) Rebuilding the XFree86 Distribution
    7) Building New X Clients


1 - What and Where is XFree86?
------------------------------

XFree86 is a port of X11R5 that supports several versions of Intel-based
Unix.  It is derived from X386 1.2, which was the X server distributed with
X11R5.  This release consists of many new features and performance
improvements as well as many bug fixes.  The release is available as source
patches against the MIT X11R5 code, as well as binary distributions for many
architectures.

The sources for XFree86 are available by anonymous ftp from
export.lcs.mit.edu in /contrib/XFree86 and ftp.physics.su.oz.au in /XFree86.
Binaries for X386 on 386BSD as well as the above sources are available from
agate.berkeley.edu (128.32.136.1) in /pub/386BSD/0.1-ports/XFree86-1.2.

2 - Installing the Binaries
---------------------------

The binary distribution comes in a number of tar archives which are
the executables, server, fonts, include files, libraries, man pages,
linkkit, and config files.  Those much longer than 1 meg are split.

You must choose between two versions of the server, one for the stock
console driver, pccons, and one for Holger Veit's enhanced console
driver, codrv.  Get either XFree86-server-1.2-pccons.tar.Z or
XFree86-server-1.2-codrv.tar.Z according to which driver is present in
your kernel.  If you don't have a kernel with X support, see item 5.
To unpack and install the full distribution use:

 zcat XFree86-1.2-bin.tar.Z.* |tar xf -
 tar xzf XFree86-1.2-server-pccons.tar.Z
 zcat XFree86-1.2-fonts.tar.Z.* |tar xf
 tar xzf XFree86-1.2-fonts-scaled.tar.Z
 tar xzf XFree86-1.2-inc.tar.Z
 zcat XFree86-1.2-lib.tar.Z.* |tar xf
 tar xzf XFree86-1.2-man.tar.Z
 tar xzf XFree86-1.2-xinit-config.tar.Z
 tar xzf XFree86-1.2-xdm-config.tar.Z
 zcat XFree86-1.2-linkkit-pccons.tar.Z.* |tar xf
 ./X386/lib/X11/etc/x386install

If you have previously installed XFree86 and have customized your xinit
scripts, omit XFree86-xinit-config.tar.Z.  If you have customized your xdm
config files, extract XFree86-xdm-config.tar.Z somewhere else and merge
the changes in the new X386/lib/X11/xdm/Xsession file into your customized
version.  The scaled fonts, XFree86-fonts-scaled-1.2.tar.Z, and the kit
for linking a server for each console driver, XFree86-linkkit-pccons.tar.Z
or XFree86-linkkit-codrv.tar.Z, are also optional.

x386install creates links so that the distribution appears to be in
/usr/X386, puts the X man pages in /etc/man.conf, creates /dev/vga if
needed, adds /usr/X386/bin to the default path in /etc/csh.login, and when
using the pccons driver, changes `console' to `vga' in /etc/ttys so that the
X server will interact properly with the console login session.

Note: Do not uncompress the font files themselves or your server will
abort when unable to find the 'fixed' font as listed in fonts.dir.

When using the pccons console driver together with xdm, unless you
have configured the console to be one of the com ports or have
disabled logins on the PC console, /etc/ttys must be changed as shown
below.  If /etc/ttys is changed, you must reboot for the change to
take effect (e.g. `sync;shutdown -r now').  Although `kill -HUP 1'
should work instead, it will sometimes hang the console, so rebooting
is safer.

Remember to add /usr/X386/bin to your shell's `path' variable.

3 - Configuring X for Your Hardware
-----------------------------------
	
You *must* edit /usr/X386/lib/X11/Xconfig to suit your hardware.

The Xconfig file tells the X server what kind of monitor, adapter and
mouse you have.  'man X386' and /usr/X386/lib/X11/Xconfig.sample
describe the contents.

Once you understand the structure of Xconfig, try to find your
specific monitor and vga card in /usr/X386/lib/X11/etc/modeDB.txt.  If
your Clocks and ModeDB lines are there, grab the values there and put
them in your Xconfig.  If modeDB.txt does not have your hardware, read
/usr/X386/lib/X11/etc/VideoModes.doc for instructions on how to create
the video timing values given your vga card and monitor specs.  The
manual for your monitor and adapter should have these values.  Given
your clock frequency and horizontal frequency of your monitor, the
program xclk (on agate.berkeley.edu in /pub/386BSD/0.1-ports/XFree86-1.1)
can calculate a ModeDB line for you.

X386 will print out the Clocks values for your vga card if you leave
the Clocks line out of your Xconfig and run 'xinit >& xinit.out'.

If your mouse does not work try using kermit or tip to connect to the
mouse serial port and verify that it does indeed generate characters.

4 - Running X
-------------

8mb of memory is a recomended minimum for running X.  The server,
window manager and an xterm take about 2.5 Mb of memory themselves.
On a 4Mb system that would leave very little left over for other
applications like gcc that expect a few meg free.  X will work with
4Mb of memory, but in practice compillation while running X can take 5
or 10 times as long due to constant paging.

The easiest way for new users to start X windows is to type 'startx >&
startx.log'.  Note that this redirects error messages to a file that
would otherwise be lost.  To get out of X windows, exit from the
console xterm.  You can customize your X environment using .xinitrc,
..xserverrc, and .twmrc files in your home directory as described in
the xinit and startx man pages.

Or you can run the X display manager (xdm).  Root can invokes `xdm
-nodaemon' on the console to start the display manager.  If you would
rather run xdm on bootup, and add code like the following to your
/etc/rc.local script.  (If you are using the pccons driver, you must
also disable logins on the console by removing `vga' from /etc/ttys.)

  if [ -x /usr/X386/bin/xdm ]; then
    echo -n ' xdm'; /usr/X386/bin/xdm
  fi


If you have replaced crypt on your system (see Chris Demetriou's
/usr/386bsd.errata/crypt.instructions) and use encrypted passwords,
you cannot use the supplied xdm binary.  The supplied xdm binary uses
the 386BSD 0.1's dummy crypt routine that prints the message 'Crypt
not present in system' in the xdm-errors file each time a user logs
in.  You can ignore this.  It merely tells you that passwords are
unencrypted.

Export restrictions prevent us from providing binaries with a real
crypt in the US, but Thomas Meidinger <pingo@guug.de> has made an
xdm with DES available on cony.gsf.de (146.107.1.2) in /pub/xdm.

Or, to recompile xdm with DES, first install a working crypt according
to Chris Demetriou's /usr/386bsd.errata/crypt.instructions.  Once you
have patched your libc's crypt, you can recompile it.  Amancio Hasty
put the xdm sources alone on nova.cc.purdue.edu (128.210.7.22) in
/pub/386bsd/submissions/XFree86/xdm-src-1.1.tar.Z.

5 - Kernel Support for X
------------------------

You will need either a 386BSD kernel binary which supports X or kernel
patches that add X support.
  
The easiest way to get an up-to-date kernel binry is to ftp it from
agate.berkeley.edu in /pub/386BSD/386bsd-0.1/unofficial/patch-kit.
386bsd.nostrip.X supports X and uses the pccons console driver.

We also supply kernel binaries that have all of patchkit-0.2, XFree86
support and Julian's scsi drivers.  There are two versions:

kernel-1.2.pccons.tar.Z - uses the stock pccons console driver
kernel-1.2.codrv.tar.Z - uses Holger Veit's enhanced console driver

Unless you have replaced your keybord driver, use kernel-1.2.pccons.tar.Z:
  cd /tmp
  tar xzf kernel-1.2.pccons.tar.Z
  mv /386bsd /386bsd.alt
  mv 386bsd /386bsd
  shutdown -r now

If you want to recompile your kernel, we suggest you use patchkit
0.2.1 or the most recent version to add X support because at least one
patch (for the bell, patch00078.tar.Z) isn't included with previous
versions.  It's available by anon ftp from agate.berkeley.edu in
/pub/386BSD/386bsd-0.1/unofficial/patch-kit.

Be sure you don't apply both the patchkit *and* the kernel patches
distributed with previous versions XFree86.  They are identical to
those in the patchkit because they were contributed to patchkit
version 0.1.  That is, if you apply patches 28-31 from the patchkit,
don't apply the kernel patches that were distributed with XFree86 1.1.

Also, you *must* add `option XSERVER,UCONSOLE' to your kernel
configuration file when you rebuild the kernel.

Holger Veit's replacement keyboard driver is superior to the pccons
driver.  It's available by anonymous ftp from ref.tfs.com as
/usr/src/sys.extras/veit-console/keycap-0.1.1.tar.Z. His README there
contains instructions on configuring your kernel, and BUGLIST.270193
contains patches needed when using patchkit-2.0.

For a general description of BSD kernel configurtion get
smm.02.config.ps.Z from gatekeeper.dec.com (16.1.0.2) in
/pub/BSD/manuals. It is a ready postscript copy of the kernel
configutation chapter from the systems maintainers manual.

6 - Rebuilding the XFree86 Distribution
---------------------------------------

To rebuild the distribution you will need mit X11R5 sources, fixes 1-22,
Type 1 font sources and patches, XFree86-1.2.sh, and XFree86-1.2.diff.  On
export.lcs.mit.edu the files are: /pub/R5/mit-*/mit-*, pub/R5/fixes/fix-01
through 22, contrib/XFree86/Type1.tar.Z, contrib/XFree86/Type1.patch{1,2}.Z
contrib/XFree86/XFree86-1.2.sh and contrib/XFree86/XFree86-1.2.diff.
Extract the mit-*.tar.Z files, apply patches fix-*, extract Type1.tar.Z in
mit/fonts/lib/font, apply Type1.patch1, Type1.patch2, and then run
XFree86-1.2.sh and apply XFree86-1.2.diff from the directory containing
your mit directory.  Finally, apply mit/server/ddx/x386/etc/stdlib.diff, a
patch for /usr/include/stdlib.h needed for using gcc's builtin alloca.

If you are using Holger Veit's console driver (codrv), uncomment the
Has386BsdCoDriver line in mit/config/site.def.

If you are using gcc-2.x, add the following line to mit/config/site.def,
make sure that your path is set so that running `gcc' finds the correct
compiler:

#define HasGcc2     YES

You should then be able to invoke `make World' in the mit directory to
build the distribution.  The files mit/RELNOTES.TXT and
mit/server/ddx/x386/README contain information on how to configure and
build the distribution.

7 - Building New X Clients
--------------------------

The easiest way to build a new client (X application) is to use xmkmf
if an Imakefile is included in the sources.  Type 'xmkmf -a' to create
the Makefiles, check the configuration if necessary and type 'make'.
Whenever you install additional preformatted man pages you should
update whatis.db by running the mkwhatis script in /usr/X386/man.  To
avoid the `Virtual memory exhausted' message from cc while compiling,
increase the data and stack size limits (in csh type `limit datasize
32M' and `limit stacksize 16M').

If you are using gcc-2.x, make sure that /usr/X386/lib/X11/config/site.def
contains the following line:

#define HasGcc2     YES


Many thanks to
- Pace Willison for providing the initial port to 386BSD.
- Amacio Hasty for fixing cursor restoration, mouse bugs and many others.
- Christoph Robitschko for fixing com.c and thus select().
- Nate Williams the patchkit support for X.

Rich Murphey
David Dawes


$Header: /home/id/rich/faq/RCS/README.386BSD,v 1.7 93/02/15 01:50:43 rich Exp Locker: rich $