








		      README for XFree86 3.3.2 on OpenBSD

				Matthieu Herrb

		      Last modified on: 20 February 1998



1.  What and Where is XFree86?

XFree86 3.3.2 is a port of X11R6.3 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 X Consortium X11R6.3 code, as well as binary distributions
for many architectures.

See the Copyright Notice.

The sources for XFree86 are available by anonymous ftp from:

ftp://ftp.XFree86.org/pub/XFree86/current

Binaries for OpenBSD 2.2  are available from:

ftp://ftp.XFree86.org/pub/XFree86/current/binaries/

A list of mirror sites is provided by ftp://ftp.XFree86.org/pub/XFree86/MIRRORS

XFree86 3.3.2 also builds on other OpenBSD architectures. See section Building
on other architectures (section 9.3, page 7) for details.


2.  Bug Reports for This Document

Send email to matthieu@laas.fr (Matthieu Herrb) or XFree86@XFree86.org if you
have comments or suggestions about this file and we'll revise it.


3.  New features in this release

  1.  See the Release Notes for non-OS dependent new features in XFree86 3.3.2.


4.  Installing the Binaries

Refer to section 5 of the Release Notes  for detailed installation instruc-
tions.






README for XFree86 3.3.2 on OpenBSD





README for XFree86 3.3.2 on OpenBSD



5.  Configuring X for Your Hardware

The XF86Config file tells the X server what kind of monitor, video card and
mouse you have.  You must create it to tell the server what specific hardware
you have.

XFree86 3.2 introduced a new, user-friendly configuration utility called
XF86Setup. It has to be run as root. Refer to its documentation for details
about its use.

You'll need info on your hardware:

   o Your mouse type, baud rate and its /dev entry.

   o The video card's chipset (e.g. ET4000, S3, etc).

   o Your monitor's sync frequencies.

The recommended way to generate an XF86Config file is to use the XF86Setup
utility.  The xf86config text utility is still there for the (few) cases where
XF86Setup can't be used. Also, there is a sample file installed as
/usr/X11R6/lib/X11/XF86Config.eg, which can be used as a starting point.

For details about the XF86Config file format, refer to the XF86Config(5) manual
page.

In order to protect your hardware from damage, the server will no longer read
XF86Config files from a user's home directory, but requires that it be in
/etc/XF86Config, /usr/X11R6/lib/X11/XF86Config.hostname or
/usr/X11R6/lib/X11/XF86Config.

Once you've set up a XF86Config file, you can fine tune the video modes with
the xvidtune utility.

5.1  About mouse configuration

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

The OpenBSD pms driver	provides both "raw" and "cooked" (translated) modes.
"raw" mode does not do protocol translation, so XFree86 would use the PS/2 pro-
tocol for talking to the device in that mode.  "cooked" mode is the old Bus-
Mouse translation.  By default, the driver runs in "cooked" mode.  It can be
switched using ioctls or by opening the first minor device which is /dev/psm0.

Only standard PS/2 mice are supported by this driver. Newest PS/2 mice that
send more than three bytes at a time (especially intellimouse, or mouseman+
with a "3D" roller) are not supported yet.

See README.mouse  for general instruction on mouse configuration in XFree86.

5.2  Other input devices

XFree86  supports the dynamic loading of drivers for external input devices








README for XFree86 3.3.2 on OpenBSD



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

     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 enable the joystick device driver in the
kernel.  See joy(4) for details.

5.3  Configuring PEX and XIE extensions

The PEX and XIE extensions are	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"


6.  Installing Xdm, the display manager

The file xc/lib/Xdmcp/WrapHelp.c is not available in France (where the binary
distribution is built) 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
host.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 un-commenting the following code in
/etc/rc.local:











README for XFree86 3.3.2 on OpenBSD



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

On the default OpenBSD 2.2 installation, you will also need to create the vir-
tual console device for the X server:

     cd /dev
      ./MAKEDEV ttyC5

It's also better to specify explicitly the virtual console to be used by the X
server. If you're experimenting keyboards lockup with xdm, in
/usr/X11R6/lib/X11/xdm/Xservers, replace the line:

     :0 local /usr/X11R6/bin/X


by:

     :0 local /usr/X11R6/bin/X vt06


7.  Running X

8mb of memory is a recommended minimum for running X.  The server, window man-
ager and an xterm take about 4 Mb of memory themselves.  On a 4Mb system that
would leave nothing left over for other applications like gcc that expect a few
meg free.  X will work with 4Mb of memory, but in practice compilation 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''.  Error messages are lost unless you redirect them because the
server takes over the screen.

To get out of X windows, type: ``exit'' in the console xterm.  You can cus-
tomize your X by creating .xinitrc, .xserverrc, and .twmrc files in your home
directory as described in the xinit and startx man pages.


8.  Kernel Support for X

To make sure X support is enabled under  OpenBSD, the following line must be in
your config file in /sys/arch/i386/conf:

     options XSERVER

The server supports the two standard  OpenBSD/i386 console drivers: pccons and
pcvt. They are detected at runtime and no configuration of the server itself is
required.

The pcvt console driver is now the default in OpenBSD.	It offers several vir-
tual consoles and international keyboard support.

When not using XKB, the server can read the actual keymap from the keyboard








README for XFree86 3.3.2 on OpenBSD



driver and use to build the X keymap. Be sure to use ``RightAlt ModeShift'' in
XF86Config to have the right Alt key behave as AltGr.

Syscons and codrv are not bundled with OpenBSD. They are available by anonymous
FTP from a number of sites. They are not supported by the XFree86 binary dis-
tribution anymore. You can compile support for them by adding -DSYSCONS_SUPPORT
or -DCODRV_SUPPORT to XFree86ConsoleDefines in xf86site.def. See the section
Console drivers (section 9.1, page 7) for details.

8.1  Aperture Driver

By default OpenBSD includes the BSD 4.4 kernel security feature that disable
access to the /dev/mem device when in multi-users mode. But XFree86 servers can
take advantage (or require) linear access to the display memory.

The P9000, Mach64 and AGX servers require linear memory access, other acceler-
ated servers can take advantage of it, but do not require it.  Some drivers in
the SVGA server require linear memory access too, notably the Matrox driver.

There are two ways to allow XFree86 to access linear memory:

  1.  Disable the kernel security feature by adding `option INSECURE' in the
      kernel configuration file and build a new kernel.

      In OpenBSD 2.2 and later, you will also need to comment out the line ini-
      tializing securelevel to 1 in /etc/rc.securelevel.


  2.  Install the aperture driver:

	1.   The first step is highly dependent from your exact operating sys-
	    tem version:

	       o  OpenBSD 2.0

		 Use the aperture driver from /usr/lkm:

		 add the following lines to the end of /etc/rc.local:

		       KERNDIR=/usr/lkm
		       if [ -f ${KERNDIR}/ap.o ]; then
			 modload -o ${KERNDIR}/ap -e ap -p ${KERNDIR}/apinstall ${KERNDIR}/ap.o
		       fi

	       o  OpenBSD 2.1, 2.2

		 Uncomment the lines loading the aperture driver from
		 /etc/rc.securelevel

	       o  OpenBSD-current


		 In addition to the loadable kernel module, you can now use an
		 in-kernel aperture driver. Add 'option APERTURE' to your








README for XFree86 3.3.2 on OpenBSD



		 kernel configuration file, build and install the new kernel
		 and run ./MAKEDEV std in /dev. Edit /etc/sysctl.conf to set
		 the variable machdep.allowaperture to 1.


	2.   Reboot your system. XFree86 will auto-detect the aperture driver
	    if available.


      Warning: if you boot another kernel than	/bsd, loadable kernel modules
      can crash your system. Always boot in single user mode when you want to
      run another kernel.


	   Caveat: the	aperture driver only allows one access at a time
	   (so that the system is in the same security state once X is
	   launched). This means that if you run multiple servers on mul-
	   tiples VT, only the first one will have linear memory access.
	   Use 'option INSECURE' if you need more that one X server at a
	   time.

8.2  MIT-SHM

OpenBSD supports System V shared memory. If XFree86 detects this support in
your kernel, it will support the MIT-SHM extension.

To add support for system V shared memory to your kernel add the lines:

      # System V-like IPC
      options	      SYSVMSG
      options	      SYSVSEM
      options	      SYSVSHM

to your kernel config file. Then from /sys/arch/i386/config, type:

      # rm -f ../compile/<KERNEL-NAME>/*
      # config <KERNEL-NAME>
      # cd ../compile/<KERNEL-NAME>
      # make depend
      # make

Then install your new kernel and re-boot:

      # cp /bsd /obsd
      # cp bsd /
      # reboot


9.  Rebuilding the XFree86 Distribution

The server link kit allow you to rebuild just the X server with a minimum
amount of disk space.  Just unpack it, make the appropriate changes to the
xf86site.def, type ``./mkmf'' and ``make'' to link the server.	See
/usr/X11R6/lib/Server/README for more info.








README for XFree86 3.3.2 on OpenBSD



See INSTALL for instructions on unbundling and building the source distribu-
tion.

You should configure the distribution by editing xc/config/cf/xf86site.def
before compiling.  To compile the sources, invoke ``make World'' in the xc
directory.

9.1  Console drivers

XFree86 3.3.2 has a configuration option to select the console drivers to use
in xf86site.def:

   o  if you're using pccons put:

	   #define XFree86ConsoleDefines -DPCCONS_SUPPORT

   o if you're using pcvt put:

	   #define XFree86ConsoleDefines -DPCVT_SUPPORT

   o if you're using syscons put:

	   #define XFree86ConsoleDefines -DSYSCONS_SUPPORT

   o if you're running codrv put:

	   #define XFree86ConsoleDefines -DCODRV_SUPPORT


If you don't define XFree86ConsoleDefines in xf86site.def the pccons and pcvt
drivers will be supported.

9.2  console.h and ioctl_pc.h files:

If you want to build a server supporting codrv and you don't already have the
corresponding header file ioctl_pc.h installed in /usr/include/machine, then
install the copy that is supplied in xc/programs/Xserver/hw/xfree86/etc.  If
you run OpenBSD-current you probably want to install it in
/usr/src/sys/arch/i386/include too, so that it get reinstalled each time you
run make includes.

If you have installed the  codrv console driver, this file should be taken from
your installed version of the driver.

The console.h file for syscons isn't distributed with XFree86 anymore. You
should get it from the syscons distribution.

9.3  Building on other architectures

XFree86 3.3.2 also compiles on other OpenBSD architectures.

The XFree86 servers can also been built on OpenBSD/mips. The S3 server has been
tested on an Acer Mips system with a S3/928 board. Contact Per Fogelstrom
(pefo@OpenBSD.org) for details.








README for XFree86 3.3.2 on OpenBSD



The Xsun server patches from Dennis Ferguson and Matthew Green for NetBSD have
been integrated in xc/programs/Xserver/hw/sun. The Xsun server can be built on
the sparc and the sun3.

The client side of XFree86 also builds on the alpha, pmax, amiga, mac68k and
mvme68k architectures.

Problems with this port should be reported directly to the OpenBSD mailing
lists rather than to the xfree86 mailing list.


10.  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 Make-
files, check the configuration if necessary and type ``make''.	Whenever you
install additional man pages you should update whatis.db by running ``make-
whatis /usr/X11R6/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'').


11.  Thanks

Many thanks to:

   o Pace Willison for providing the initial port to 386BSD.

   o Amancio Hasty for fixing cursor restoration, mouse bugs and many others.

   o Christoph Robitschko for fixing com.c and thus select().

   o Nate Williams for the patchkit support for X.

   o Rod Grimes and Jack Velte of Walnut Creek Cdrom for use of their machines
     in preparing the FreeBSD binary release.

     Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/OpenBSD.sgml,v 1.1.2.5 1998/02/26 13:59:07 dawes Exp $





     $XConsortium$
















README for XFree86 3.3.2 on OpenBSD





































































				   CONTENTS



1.  What and Where is XFree86? .............................................. 1

2.  Bug Reports for This Document ........................................... 1

3.  New features in this release ............................................ 1

4.  Installing the Binaries ................................................. 1

5.  Configuring X for Your Hardware ......................................... 2
    5.1 About mouse configuration ........................................... 2
    5.2 Other input devices ................................................. 2
    5.3 Configuring PEX and XIE extensions .................................. 3

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

7.  Running X ............................................................... 4

8.  Kernel Support for X .................................................... 4
    8.1 Aperture Driver ..................................................... 5
    8.2 MIT-SHM ............................................................. 6

9.  Rebuilding the XFree86 Distribution ..................................... 6
    9.1 Console drivers ..................................................... 7
    9.2 console.h and ioctl_pc.h files: ..................................... 7
    9.3 Building on other architectures ..................................... 7

10. Building New X Clients .................................................. 8

11. Thanks .................................................................. 8























				       i


