Bugs found so far in XFree86/OS2 3.1.2D

Last updated 12 May 96 09:58 CET (DST)

These HTML pages can be downloaded from SET.GMD.DE (/pub/misc/XFree86OS2/html) by FTP. Bug fixes below are collected in /pub/misc/XFree86OS2/fixes at the same site.

If you came here by a notice of this URL in some newsgroup article: Here is the toplevel of the XFree86/OS2 pages.

There is also a mailing list available.


Note: If possible, I will provide fixes as fast as possible on this page. The main archive for the distribution is ftp.xfree86.org. If appropriate, I'll also update the distribution files at this site. Maintainers are urged to mirror ftp.xfree86.org for this software.

Generally, please ensure, that you have NO HARDWARE CONFLICTS, and that your system runs stable in general. Flaky hardware and improper OS/2 configuration may hide various effects or cause problems that wouldn't be there otherwise. Don't expect that XFree86/OS2 can turn an instable OS/2 into a stable one.

List of recent files

The following is the list of recent file dates and sizes from the main archive at ftp.xfree86.org/pub/XFree86/beta/OS2. If your archives or files differ from that, you have old versions (likely from some other archive). Obtain the recent files!
total 68244
-rw-r--r--  2 veit      xf86-alp     3547 Mar 10 03:07 00README.1ST
-rw-r--r--  2 veit      xf86-alp   971287 Mar 10 03:07 312D8514.zip
-rw-r--r--  2 veit      xf86-alp  1045977 Mar 10 03:08 312DAGX.zip
-rw-r--r--  2 veit      xf86-alp  1027486 Mar 10 03:09 312DI128.zip
-rw-r--r--  2 veit      xf86-alp  1033589 Mar 10 03:09 312DMa32.zip
-rw-r--r--  2 veit      xf86-alp  1070741 Mar 10 03:10 312DMa64.zip
-rw-r--r--  2 veit      xf86-alp   976130 Mar 10 03:11 312DMa8.zip
-rw-r--r--  2 veit      xf86-alp   658612 Mar 10 03:11 312DMono.zip
-rw-r--r--  2 veit      xf86-alp  1051723 Mar 10 03:12 312DP9K.zip
-rw-r--r--  2 veit      xf86-alp   103311 Mar 10 03:12 312DPEX.zip
-rw-r--r--  2 veit      xf86-alp  1138048 Mar 10 03:13 312DS3.zip
-rw-r--r--  2 veit      xf86-alp  1199978 Mar 10 03:14 312DSVGA.zip
-rw-r--r--  2 veit      xf86-alp   669683 Mar 10 03:15 312DVG16.zip
-rw-r--r--  2 veit      xf86-alp   980855 Mar 10 03:15 312DW32.zip
-rw-r--r--  2 veit      xf86-alp   109868 Mar 10 14:48 312Dbase.zip
-rw-r--r--  2 veit      xf86-alp  2224341 Mar 11 12:23 312Dbin.zip
-rw-r--r--  2 veit      xf86-alp   113692 Mar 10 03:17 312Ddoc.zip
-rw-r--r--  2 veit      xf86-alp  1709238 Mar 10 03:19 312Df100.zip
-rw-r--r--  2 veit      xf86-alp   531339 Mar 10 03:19 312Dfcyr.zip
-rw-r--r--  2 veit      xf86-alp  3077649 Mar 10 03:22 312Dfnon.zip
-rw-r--r--  2 veit      xf86-alp  1755559 Mar 11 12:20 312Dfnts.zip
-rw-r--r--  2 veit      xf86-alp  1130890 Mar 10 03:24 312Dfscl.zip
-rw-r--r--  2 veit      xf86-alp  2136356 Mar 10 03:25 312Dman.zip
-rw-r--r--  2 veit      xf86-alp  1067602 Mar 15 07:25 312Dprog.zip
-rw-r--r--  2 veit      xf86-alp   986245 Mar 10 03:26 312Dvfb.zip
-rw-r--r--  2 veit      xf86-alp     5999 Mar 15 09:04 LATEST.OS2
-rw-r--r--  2 veit      xf86-alp    23853 Mar 10 17:44 README.OS2
-rw-r--r--  1 marineau  xf86-alp   540522 Mar 11 12:34 S3128514.zip
-rw-r--r--  1 marineau  xf86-alp   610354 Mar 11 12:34 S312AGX.zip
-rw-r--r--  1 marineau  xf86-alp   594262 Mar 11 12:34 S312I128.zip
-rw-r--r--  1 marineau  xf86-alp   599245 Mar 11 12:34 S312Ma32.zip
-rw-r--r--  1 marineau  xf86-alp   633370 Mar 11 12:34 S312Ma64.zip
-rw-r--r--  1 marineau  xf86-alp   544382 Mar 11 12:34 S312Ma8.zip
-rw-r--r--  1 marineau  xf86-alp   572472 Mar 11 12:34 S312Mono.zip
-rw-r--r--  1 marineau  xf86-alp   616498 Mar 11 12:34 S312P9K.zip
-rw-r--r--  1 marineau  xf86-alp   698507 Mar 11 12:34 S312S3.zip
-rw-r--r--  1 marineau  xf86-alp   746698 Mar 11 12:34 S312SVGA.zip
-rw-r--r--  1 marineau  xf86-alp   583422 Mar 11 12:34 S312VG16.zip
-rw-r--r--  1 marineau  xf86-alp   546396 Mar 11 12:34 S312W32.zip
-rw-r--r--  2 veit      xf86-alp    35568 Mar 10 03:27 X11OS2.FAQ
-rw-r--r--  2 veit      xf86-alp     2580 Mar 10 03:27 announce.txt
-rw-r--r--  2 veit      xf86-alp   359399 Mar 10 03:27 emxrt.zip

BTW: the S312* files are small versions of the X servers, which do not contain the rarely used PEX, XI and XIE extension, but are otherwise functionally equivalent. These files are mentioned incorrectly in the docs as S12D*.

Severe bugs

You must apply these fixes or obtain a new distribution file. Archives with a date of 11 March or newer should no longer have these problems.

Superprobe crashes with a SIGILL, gdb displays routine outp().
Obtain the following fixed SuperProbe.exe.
The recent 312Dbase.zip file is fixed.
"A non-recoverable error occurred. The process ended."
X clients crash with SYS2070 when started from the command line.
Xmu.dll is broken in early distributions of 312Dbin.zip. Obtain the following, now official replacement for /XFree86/lib/Xmu.dll. The recent 312Dbin.zip is fixed.

Minor bugs

Annoying, but harmless, likely to be fixed in the next version, use workaround for now, if available.

"Couldn't open default PEX font file Roman_M"
Should no longer occur with the recent 312Dbin.zip file.
SET TMP=F:\ won't let the server start up.
It seems to be a problem if the TMP path ends with a backslash. Omit a trailing backslash, or adjust startx.cmd accordingly. This will be analyzed.
Popuplog files appear under C:\popuplog.os2, even if the boot drive is not C:.
Fixed in the next version.
"Xlib: Maximum number of clients reached"
A maximum of 10 or 11 concurrent socket connections are accepted. Fixed in the next version.
xterm: no app-defaults e.g. in the CTRL-Right-Mouse menu.
Obtain the new Xmu.dll. Should no longer happen with recent distribution.
Password visible with OS/2 FTP in xterm.
Appears to be a problem of FTP which does not understand that it does not have KBD/VIO available there. A real Unix ftp which reads and writes to stdio only should work. Note: might also require fixes to EMX getpass().
Black screen when CTRL-ESC during server shutdown.
Will be analyzed, could be a race condition. Don't be so impatient for now, but wait until the server goes down. This may need up to 10-15 sec on a slow system (well, what is a slow system...?)
Error message "Couldn't open compiled keymap file /XF"
It was already mentioned in the docs that XKB does not work yet. Set a XkbDisable in your XConfig file and/or reply with NO to the question of xf86config whether you want to use XKB. Use a Xmodmap file if you need one.
xmkmf -a does not work.
Obtain the following fixed xmkmf.cmd.
Include header files missing in 312Dprog.zip.
Obtain the following plug-in fix for include files to be installed after an old 312Dprog.zip file. 312Dprog.zip has been updated at ftp.xfree86.org.
CTRL-C in an xterm that was started with detach has obscure side effects, including shutting down the server inadvertently.
This is a complex effect, resulting from difficulties with and implementation of signals in OS/2. We are investigating how to fix this. Maybe in the next version.
startx passes command line arguments incorrectly to xinit
Obtain the following fix for startx.cmd. This will also correct the problem with the shell, mentioned below.
xvidtune does not work.
Fixed in the next version. You might try to start the server as follows:
XF86_servername -allowNonLocalXvidtune
or
startx -- -allowNonLocalXvidtune (needs the fixed startx.cmd). Passing the same option in the XConfig file does not work.
REXX0041 error when running xinitrc.cmd
The following fix for xinitrc.cmd should correct this problem.
HSWITCH causes server to hang.
Don't use the HSWITCH utility program for switching between sessions in XFree86, it is an incompatible application which makes use of direct KBD calls (see also FAQ).
X11 incompatible with SIO?
I have a single report that starting XFree86 while a PPP connection built over Ray Gwinn's SIO drivers could break the connection. I haven't been able to reproduce this with sio153.zip on my system; it works fine IMHO. I have contacted Ray Gwinn on this problem. He also has no good idea. If someone has a problem with SIO when starting or running XFree86, please send me a detailed report (including config.sys, hardware config, error.log, etc.).
X0.hosts is ignored.
It is not ignored, but parsed incorrectly. Fixed in the next version. For now, edit the file as recommended, then run the fixcrlf utility on it. Editors that can manage the file afterwards are emacs, uemacs, and cedit, for instance.
Makefile generated by imake only works from X11ROOT drive.
Include files not found during compile when porting software.
Fixed in the next version. So far, port your software on the same drive you also have the /XFree86 code tree on.
The xauth authentification mechanism does not seem to work.
Will be analyzed.
In some cases, Xserver does not display gray background after some seconds.
Normally it is started, but goes to background for some yet unknown reason. Get the window list with CTRL-ESC, and select the server process to go to foreground.
4OS/2 switches back to the PM session, when started.
Yes, this is what it makes 4OS/2 not so nice. Other than that, it appears to work in most cases (32 bit version 2.51). You may also try out the X11SHELL environment variable mentioned below, but be sure to get the fix there as well.
xmkmf -a fails with \INDIR not found.
Copy the program \XFree86\bin\indir.cmd into the root directory of the drive where you build apps for now. Fixed in the next version.
-probeonly in xf86config does not work.
We attempt to fix this. For now, add "Clocks" lines manually. This should affect some VLB S3 cards only.
xf86MapVidMem FAILED! in xf86log.os2 when starting the server.
Will be analyzed in more detail, but the real reason appears to be that OS/2 runs out of DevHlpVMAlloc pages. This happens when the server attempts to find out the location of the video memory on some VLB cards. Try to find out the real physical address of the memory; Some video setup program coming with your card may allow you to specify the base address manually. Add the following option to the Device section of your XConfig file:
	Membase 0x12345678
where 0x12345678 must be of course replaced by the real physical address.
SYS0447 when starting a program in an xterm.
This is what you usually get with unsupported 16 bit apps that use Kbd* and Vio* functions (see also FAQ). Unfortunately, some of the more popular apps are written this way by IBM :-(, including telnet and ftp.
Even with X11SHELL set, sometimes the shell from OS2_SHELL is used.
No fix yet, but likely corrected in the next version. If you have a Unix shell as OS2_SHELL, and now have problems to run REXX commands, try to add ADDRESS CMD to your REXX script.
makedepend problems
Makedepend implicitly checks for a directory d:/emx/include, it does not accept C_INCLUDE_PATH settings that contain two or more directories separated by semicolons, furthermore rare problems exist with #ifdefs continued in the next line with a backslash. Get the following fixed makedepend.exe.
xf86config scrolls more than 25 lines.
This causes some text and some selections (e.g. on the RAMDAC page) become invisible in command windows setup to 25 lines. Obtain the following fix for xf86config.exe. This is BETA code: please report any bugs you find with this version.
bitmap and other Xt clients don't work correctly.
There are two problems: Resources are not found, unless you run the client from the X11ROOT drive, and some buttons and menus do not work. This will be fixed in the next version. As a temporary workaround, convert the resource files corresponding to the client with the fixcrlf.exe utility, found in the /XFree86/lib/X11/etc directory.
X -probeonly does not work
This is a Unixism left in the code. Under Unix, there is usually a file link (some kind of an alias name) for the Xserver, so that it is reachable under the name "X". This does not exist here. If you really need this probeonly function, copy the XF86_*.exe file to X.exe in the \XFree86\bin directory. After that operation, you may delete it again to save disk space.

General problems

May appear with XFree86 on other platforms as well, no idea when this will be fixed.

There exists a general hardware conflict between certain S3-based cards and COM4.
This is a deficiency of S3 cards, unfortunately. If this happens, the only workaround known is to disable the COM4 port.
Superprobe misdetects the videocard.
Double check that you really have the hardware which was sold to you We have found one case where Superprobe was right, and the dealer was lying. If you are right, this turned out to be almost always a problem with Superprobe, not with OS/2 or XFree86/OS2. Please send the output of Superprobe from now on directly to xfree86@xfree86.org with a detailed description of what this card really is.
After exit, Superprobe or the X server switch to a 40-char font or otherwise corrupt the screen (colored blocks).
I have seen this besides the reported ET4000/W32p rev.A for various other cards as well when starting a or returning to a full-screen session, unrelated to Superprobe or XFree86. I suspect a bug in the OS/2 video drivers or a non-standard use of font maps or text screens. Usually, a "mode co80" and/or a "clear" will make the problem go away. OS/2 2.11 does not have this problem either.
SYS0008 error when running XFree86
This error is so unspecific that no good explanation exists. There has been a report that using detach program rather than the recommended start/n/min program would help, but this might have other side effects. If you get this error, send me the complete output of pstat of the currently running system, so that I can attempt to track this down.
XFree86 writes on the PM screen or writes on WinOS/2, or vice versa.
Diamond cards are notorious for that. This is very often a bug in OS/2 and/or WinOS/2 video drivers. Check if newer drivers help.
Crash when clicking on gray background
You likely have a Cirrus card. Enable the following option in your XConfig file:
	Option "no_bitblt"
WD90C24, WD90C31 video corruption after switching from WPS
This was reported to happen on IBM Thinkpad 755CD systems, but may also occur on other systems with the above boards. Add the following to the Device section of your XConfig file:
	Option "noaccel"
XFree86/OS2 hangs Japanese OS/2 version
According to a report from Japan, you have to set the US code page 437 for the session in which you want to start XFree86/OS2. The reason is unclear, because XFree86 does not use code pages at all, but it is possible that this operation will disable certain language extensions of the keyboard.

Things that are not a bug

(but candidates for the FAQ...)

Some fonts look ugly.
This is not really a bug, but a problem with 75 DPI fonts. Try 100 DPI fonts with higher resolutions.
Cannot connect to localhost with IAK.
Be sure that your \tcpip\etc\hosts file has a newline at the end.
AUDIT: ... client rejected from IP 123.45.67.89.."
This can have multiple reasons, mostly an incorrect IAK or TCP/IP setup or outdated TCP/IP DLLs (make sure you have the recent fixes or CSDs installed). It is not a problem with XFree86. Get assistance in the newsgroups to get your setup okay.
Other problems with connecting from and to other hosts.
There are unlimited ways how you can set up your network wrong. I have meanwhile so many success reports that a problem with XFree86 concerning networking is highly unlikely. Seek assistance in the newsgroups concerning your network setup.
"Unable to load font `fixed'" and after that "TRANS(...)... 61".
This is not a bug with networking. Exclude the FontPath lines for the fonts you don't have installed from the XConfig file, by placing a # symbol at the beginning of the lines. If you have installed the minimal configuration only, you only have the following font paths:
    FontPath    "/XFree86/lib/X11/fonts/misc/"
    FontPath    "/XFree86/lib/X11/fonts/75dpi/:unscaled"
#    FontPath   "/XFree86/lib/X11/fonts/100dpi/:unscaled"
#    FontPath   "/XFree86/lib/X11/fonts/Type1/"
#    FontPath   "/XFree86/lib/X11/fonts/Speedo/"
    FontPath    "/XFree86/lib/X11/fonts/75dpi/"
#    FontPath   "/XFree86/lib/X11/fonts/100dpi/"
You may also try out the fix for xf86config.exe which should fix the font paths automatically. This is BETA code: please report any other problems that you encounter with this fix.
ALT-GR (right ALT on some European keyboards) does not work.
Add the following lines to your /XFree86/lib/X11/xinit/.Xmodmap file:
clear Mod1
clear Mod2
add Mod1 = Alt_L
add Mod2 = Mode_switch
SYS2070 when having PMX installed and /tcpip/dll before /XFree86/lib in the LIBPATH
This is a name clash between PMX and XFree86 libraries. I think adding SET BEGINLIBPATH=drive:\XFree86\lib to STARTX.CMD should make PMX and XFree86 live happily together. Anyone to confirm this?
Multiple beeps when running a client you compiled yourself.
You must compile and link with multi-threaded libraries. Or use the Imakefile which is typically available which serious X11 code. A simple Imakefile for compiling a single source file foo.c consists of the following line only:
SimpleProgramTarget(foo)
Man pages are unreadable
This is because they were formatted for a line printer which does bold printing by overwriting. Fixed in the next version. You can use an emacs macro to reformat the text, or apply the program col -b (available from 4.4BSD, for instance) on the man pages for now. In near future, xman from the contrib kit will be available.
PTYP0 device is not ready message on startup.
You have an old version of EMX.DLL floating around in your system. Ensure your version is at least emx09b fix1 or later. If the EMXREV utility names any component with a revision less than 40, it is outdated.
Font path component expected in error log, but directory exists.
You must put double quotes around the path string specified in the FontPath lines. Same holds for various other strings in the XConfig file as well.
Shutdown from twm does not work.
The last client in xinitrc.cmd is not started with start/min/n. If this client is terminated, the whole X system normally shuts down. In the default xinitrc.cmd file, this last client is the login xterm, not twm, so exit from its menu will terminate twm itself, but not the system.
TMP dir must be on HPFS.
Some programs write temporary files into a directory specified by the TMP environment variable and, as usual with Unix, do not obey FAT 8.3 filename rules. Therefore the TMP directory must reside on a HPFS, LINUX, or NFS directory.

Mistakes in the documentation

312Dlib.zip seems to be missing.
This is a bug in the documentation. Such a file does not exist for XFree86/OS2. Documentation corrected in the next version.
The file tcpstart.cmd is normally not existing in the IAK.
Create one and put it in your startup folder or run it with RUN= from CONFIG.SYS. Or manage otherwise that the loopback configuration is running before X11 is started.
inetd seems to be missing in IAK.
Ignore that, you don't need it for XFree86.
Where is a termcap.x11, as mentioned in the docs?
This was actually an example. EMX or emacs should come with a termcap file which is sufficient. But if you don't have one, you can use this termcap file.

Inaccuracies or omissions from the XFree86 beta docs

ET4000W32 server says "hibit: initial state high".
Add the following line to the Section Device for your accelerated card (there is more than one of these sections in the file):
	Option "hibit_low"
xf86MapVidMem FAILED with SPEA/V7 Mirage P64 VLB, Trio64 chip
Add the following line to the Section Device for your accelerated card (there is more than one of these sections in the file):
	Option "nolinear"
Cirrus CL-GD5428 may crash system
Try out the following line in the Section Device in Xconfig:
	Option "nobit_blt"
Obviously there is no documentation for the Number 9 Imagine-128 video card.
There is general documentation for the I128 card in the man pages; this man page applies to all accelerated video cards obviously. It looks as if there are no specific options for the card for now the user should know.

Useful hints and tricks

The following are not bugs, but comments and hints, partly from other people. Added here without warranty.
How to set the shell correctly
(Holger Veit) Currently, only CMD.EXE is a supported shell for xterm. You can force CMD.EXE to be used, even if you have SHELL or OS2_SHELL set to other shells, if you specify the X11SHELL variable, and get the following fix for startx.cmd:
SET X11SHELL=drive:\OS2\CMD.EXE
The search order for a suitable shell is the following:
  1. X11SHELL
  2. SHELL
  3. OS2_SHELL

Compressing executables and DLLs
According to john.shakespeare@valmet.com, you can use LXlite 1.01, available from hobbes.nmsu.edu, to compress the executables and DLLs of XFree86/OS2 to save disk space. This should give a reduction of 30-70% in file size. This is supported for Warp and derived systems (Connect, Server) only, not with OS/2 2.11; therefore, this and the use of /EXEPACK:2 won't become default in the distribution files.
Send reports to: Holger.Veit@gmd.de