README for XFree86 on OS/2 : Remarks on the Network Configuration
Previous: Adding Variables to CONFIG.SYS
Next: README for XFree86 on OS/2

10. Remarks on the Network Configuration

It is beyond the scope of this document to even give an introduction about the correct installation of the TCP/IP networking system. You must do this yourself or seek assistance elsewhere. It is only possible to say here that a PC working well in a TCP/IP based LAN network will also work with XFree86/OS2 (when all other prerequisites are matched as well).

With IAK, there is a special configuration necessary, unless you want to use XFree86/OS2 only during a hot link to your Internet provider, the so called ``localhost'' or ``loopback'' configuration. This is a local network interface which ``loops'' back to the same host. The following settings are necessary for this:

  1. Create a file \tcpip\etc\hosts with the following content:  localhost
  2. Add the following line to your \tcpip\bin\tcpstart.cmd:
    ifconfig lo up
    If you don't have such a tcpstart.cmd file (Warp 4 calls this file \MPTN\BIN\MPTSTART.CMD), create one, and add a line like the following to your config.sys file: CALL=C:\OS2\CMD.EXE /Q /C C:\tcpip\bin\tcpstart.cmd >NUL: (implying that your bootdrive is C:).
  3. Set the HOSTNAME environment variable to localhost as described in the last section.
  4. Add the following line to CONFIG.SYS:
  5. After rebooting, verify that the following command works:
    [C:\] ping localhost

You don't need this ``loopback'' interface if your PC is connected to a LAN (either directly or through SLIP/PPP).

In case of a SLIP/PPP line, you have to establish this connection BEFORE you start XFree86. See the next section for more details.

Note that the ability to use host names, for instance in the DISPLAY variable, correlates with the existance of a name resolver. If you don't have a LAN-based DNS server available, you have to add the relevant hostnames to your HOSTS/ file. The TCP/IP configuration dialogue in your system configuration folder allows you to edit this file. The checkinstall.cmd script coming with XFree86/OS2 gives some advice on the configuration as well. If you have problems to get this or other basic networking things running, seek assistance in the FAQ, the xf86os2 mailing list or the mailing list archive.

10.1. Dynamic IP ConsiderationsGenerally, the whole stuff works best, if your machine has a fixed IP address. The localhost address, and also fixed (non-routable) local addresses (10.x.x.x, 192.168.x.x, 172.16.x.x-172.31.x.x) work fine. A problem occurs on both sides of such an X connection if there are dynamic IP addresses involved, for instance in case of a PPP line to an ISP. Unfortunately, the XFree86/OS2 net community hasn't come up with a set of helpful scripts yet (which I would integrate), so there are here only some hints what the problem really is: The X server listens for X protocol packets on some defined host/port socket. It gets the information about the socket from either the command line or the resolved hostname (which it gets from the HOSTS file or the DNS server). Here the HOSTNAME variable comes into play. Once the server is running, a change in the IP/HOSTNAME configuration won't be recognized any more. Thus, the general approach for X over a dynamic IP line is: build the connection to the ISP first, then start the server. The relevant script that is responsible for starting the server is the startx.cmd script which executes (indirectly) the \XFree86\lib\X11\xinit\xinitrc.cmd script. You have to modify these scripts in order to set the HOSTNAME and DISPLAY variables correctly and start the server with the right IP address. The X server log shows, right to the beginning, at which IP address it is listening, for debug purposes.

10.1.1. Configuring X for Your Hardware

After you have added the required settings and setup a working network, run the xf86config program to create a standard configuration file in Y:\XFree86\lib\X11\XF86Config from a windowed or full screen OS/2 text session:

[C:\] xf86config

The xf86config program will ask a number of questions. You will need the information obtained from the SuperProbe program here. The program should be self explanatory; if you have problems to understand something though, seek assistance in the newsgroups.

It is possible, but strongly discouraged for the non-expert, to edit the XF86Config file with a text editor. In a few situations as described in the FAQ, however, this might even be mandatory. This file is not a hacker's area, such as the Win95 registry, but it has in common with it that you can easily cause damage.

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

If you know the configuration process from Linux or other XFree86 platform, you will encounter a few differences:

In most cases, an existing XF86Config file for the same XFree86 version from Linux or another platform may be used without changes. There are two prominent exceptions: some S3 805 based VLB cards put their video memory in odd locations, and there seems to be an unresolvable PM driver inconsistency with Matrox cards.

For S3 VLB cards, the X server can search for this memory by experimentally mapping and unmapping possible memory regions. However, in XFree86/OS2, the OS may run out of memory tiles during this process. If this happens, you must find out the location of the memory yourself and add it as an option

	MemBase 0x12345678
to the section "Device" of your XF86Config file.

For Matrox cards, the X server may fail to detect the PCI ID of the card correctly, as the PM driver and Matrox BIOS may have reprogrammed the card's PCI configuration in a non-standard way. The server will then fall into a VGA compatible mode at 320x200 resolution. To prevent this, add a

to the section "ServerFlags" of your XF86Config file.

Once you've set up a XF86Config file, you can fine tune the video modes with the xvidtune utility. Note this is an X11 program which has to be executed in a local xterm window of a running X server, not in a PM window. Running X

16mb of memory is a recommended minimum for running the network software, X and the presentation manager in parallel. The server, window manager and an xterm take about 4-6 Mb of memory themselves. X will start up on a system with 8MB or less, but the performance will severely suffer from heavy disk swapping. Your mileage may vary, though, so some people might consider this still tolerable.

Some more on resource requirements: With the arrival of complex desktops like WindowMaker, KDE, Gnome, Enlightment, etc. which add a lot of graphical features, resource requirements grow. The X server will cache used fonts and resource settings internally, and depending on the number of windows (backing- store) it may require much more memory and swapspace than the mentioned few MBs. Also take into consideration that X runs in parallel to PM which also takes its share. My own system, albeit meanwhile rather outdated, is a PII-233 with 128MB, however, it is a development system. 64 MB are meanwhile standard, and okay for the purpose, and my laptop runs Aurora with XFree86 in 32MB, as well.

The easiest way for new users to start X windows is to type:

in a PM CMD window. People have reported problems when starting this in a fullscreen session or through a remote telnet session, so don't try it.

To get out of X windows, type: ``exit'' in the console xterm. You can customize your X by creating .xinitrc, .xserverrc, and .twmrc files in the directory that the HOME environment variable points to. These files are described in the xinit and startx man pages.

By default, the systemwide xinitrc file (in Y:/XFree86/lib/X11/xinit/xinitrc.cmd) installs the rather simplistic twm window manager. You can find better window managers on the ported software page at .

Rebuilding the XFree86 Distribution

Do you really want to rebuild XFree86/OS2 from source? Read the file OS2.Notes on details to recompile XFree86/OS2 from scratch.

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 ``xmake''. ``xmake'' is a wrapper for the GNU make program which defeats the improper SHELL setting typically found in a Makefile generated from an Imakefile. Also see the XFree86/OS2 FAQ for more hints about porting X clients.


Many thanks to:

$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/OS2.sgml,v 1999/12/20 12:55:51 hohndel Exp $

$XConsortium: OS2.sgml /main/4 1996/03/11 10:46:06 kaleb $

README for XFree86 on OS/2 : Remarks on the Network Configuration
Previous: Adding Variables to CONFIG.SYS
Next: README for XFree86 on OS/2