XFree86/OS2 requires a number of settings in the CONFIG.SYS file to work correctly. Please add the following settings, and in particular take care to set forward versus backward slashes correctly:
Set the preferred terminal type for the xterm or editor to be used. Some programs need this setting. I have my type set to
SET TERM=ansi
\XFree86\lib\X11\etc\termcap.x11
contains a suitable termcap which
can be used in place of termcap files that come with EMX, EMACS, or
other ported software.
This variable must be set to the location where the termcap file
used for the above TERM variable is searched. My setting, for
instance, is:
SET TERMCAP=D:/EMX/ETC/TERMCAP.X11
Set to an ETC directory. Normally, this is already set to the ETC directory of the TCP/IP code, such as
SET ETC=C:\TCPIP\ETC
\MPTN\
directory. This is okay.
Set to an TMP directory which should reside on a HPFS drive (or other filesystem that has real long names). Often, this variable is already set to the TMP directory of the TCP/IP code, such as
SET TMP=C:\TCPIP\TMP
\ibmcpp\tmp .
Set to the internet hostname. Normally, this is already set by the TCP/IP installation program, such as
SET HOSTNAME=myhost
SET HOSTNAME=localhost
Set both to a username. Currently, they are there just to make some programs happy; in the future, this variable might be set by a login shell of a multiuser configuration. My variable, for instance, is set to
        SET USER=holger
        SET LOGNAME=holger
Set this to an existing directory that is supposed to be a home directory of a user. Some utilities place temporary and init files here. This is also future investment for a multiuser configuration, but must still be there. For instance, this variable might be set to
SET HOME=H:\user\holger
This is one of the most important settings, it determines the root of the XFree86 directory tree. Normally, you will set this to the drive letter of the partition where the \XFree86 tree resides, such as in
SET X11ROOT=Y:
K:\OS2\X11\XFree86... and would then have
to change this to
SET X11ROOT=K:/OS2/X11
This variable may be set to the display to be used for displaying
clients. Normally you will set this variable to the same value as
the HOSTNAME variable and simply add a :0.0 after it, such as
SET DISPLAY=myhost:0.0
Set this to the executable name of the X server to be used. This must be a complete path. My setting, for instance, looks as follows:
SET XSERVER=D:/XFree86/bin/XF86_Mach64.exe
Add the binary directory for the X11 utilities to your search PATH. This is normally the directory (adjust the letter)
Y:\XFree86\bin
Add the DLL directory for the X11 utilities to the LIBPATH. This is normally the directory (adjust the letter)
Y:\XFree86\lib
Y:\XFree86\lib
has several other subdirectories; these may not be moved elsewhere,
rather they must stay there, because most utilities form a path to
these directories by using %X11ROOT%\XFree86\lib
as a base.
SET MANPATH=Y:\XFree86\man;Y:\EMX\man
GROFF formatter
tool as well. See FAQ for more details.
Some scripts in XFree86 rely on a shell that is compatible to the standard CMD.EXE. CMD.EXE has some essential properties that allows it to work correctly in an xterm. Third party shells may not been developed with running in an environment that, like xterm. accept input and output from the stdin/stdout file channels, but access keyboard and video services directly. The above variables allow reconfiguration of your system in order to run any favorite shell outside XFree86 and still have XFree86 use CMD.EXE. See the FAQ for more details.
The recent version of XFree86/OS2 has a REXX script named checkinstall.cmd
which you can (and should) use to check whether you have entered most things
correctly. This is not bullet-proof, but prevents the most obvious 
setup problems. Also, the X server itself will do some checking and will
refuse to start if something is wrong.