Trouble Shooting Guide -
Problems installing Win4Lin

There can be several reasons why Win4Lin does not get completely installed. One way to determine the problem is to see how far the installation got. You can check the log files and/or look for things that get installed.

The directory /opt/win4lin contains the files directly installed when you install the RPM package. The directory /var/win4lin contains the files installed by the Win4Lin install script. If /opt/win4lin exists and /var/win4lin does not, then the install script failed to be run. The directory /var/win4lin/log contains the log files created by the installation process.

Verify the package installation

First you have to see if Win4Lin itself is installed and working. In order for the Win4Lin driver modules to work your kernel must be "Win4Lin ready". Make sure you are running a such a kernel by running this command:
    grep mki_install_hook /proc/ksyms 
It should print back a line something like:
    c010be50 mki_install_hook
If nothing prints back, then that is a big problem. This means that the Linux kernel that is running is not "Win4Lin ready".

Kernel not "Win4Lin ready"

For the Win4Lin driver modules to work, the Linux kernel must be "Win4Lin" ready.

Perhaps you have kernel available that is "Win4Lin" ready, but it is not the one currently running. Refer to the installation notes about how to either install or build a "Win4Lin ready" kernel. If you are having trouble building the kernel please verify that you can build an unpatched kernel as supplied by your distribution.

If the kernel seems ok, then perhaps the Win4Lin package did not install properly or all the way. The log file "/var/win4lin/log/inst.log is produced when Win4Lin installs itself. If this file is missing then the RPM package did not properly install. (The rpm command is supposed to execute the script /opt/win4lin/postinst_rpm.sh after it copies in the files.) Near the end of the log file should be the line "Installation of Win4Lin is complete". Any errors or warning in the log are abnormal.

Check driver module loading

If mki_install_hook is in /proc/ksyms then the Linux kernel is fine. Then the next step is to verify that the Win4Lin driver modules are being loaded.

The log file "/var/win4lin/log/insmod.log" contains the output of the "insmod" commands that are used to load the modules. Take a look at it. Warnings about "kernel-module version mismatch" are fine and expected in many situations, but any other warning or error message probably indicates an error.

A common problem is when the kernel was created using "versioning" and you are not using the Win4Lin drivers that were created specially with that kernel versioning. (The "versioning" scheme used by several distributions seems somewhat broken in that modules built in the standard way cannot be used on these kernels.) If this is them problem then there will be many errors in the insmod.log file about unresolved names. There are a couple of solutions. One is to rebuild your kernel with versioning off. Another is to get Win4Lin modules created for that kernel's versioning. (if available). If you have this problem, contact your Linux distributor and complain that their system does not allow standard modules to be used.

Note: Win4Lin uses the script "/opt/win4lin/drivers/tools/loadem" to load the modules. When logged in as root, you can execute this script to make sure the modules get loaded. This also recreated the "insmod.log" log file. (This log file is recreated each time loadem is run.) If the problem is that the modules are failing to load, this log file should provide all the info needed to find out why.

Note: The loadem script also runs the mknode_linux.sh script (in the same directory). This creates the special device "node" files in the directory /var/win4lin/mrgdev. In this directory should be five node files and file subdirectories, and in the subdirectories are more nodes file (lots!) and more subdirectories.

All that seemed ok, now what?

If the Win4Lin modules seem to be installed ok, then there is an easy step to verify that the very basic operation of Win4Lin is working. This requires a bootable floppy (of any sort). This step runs a command that boots the floppy up in a Win4Lin virtual PC window. If it boots up, then Win4Lin is basically working, and any problems you have with Win4Lin are probably not related to a basic failure when installing it.

Make sure that your DISPLAY environment variable is set, just as it needs to be for any X client program! Put the bootable floppy in the drive and type this command at an xterm or other X windows terminal emulator:

    /usr/bin/dosboot
A DOS window should pop up and show the bootup to an "A>" prompt. Actually, all you need is any floppy, unbootable or not and try to boot from it with the dosboot command. If a DOS windows pops up and shows that it is trying to boot from that floppy, then that is sufficient to show that Win4Lin is basically working.

To close this DOS window in this situation when you boot from a regular floppy, use the menu bar Window->Exit selection, or use the Window manager control to close the window.

(If you did not have DISPLAY set, then Win4Lin did not run in an X window and thus there is no menu bar. In this case type the escape key and then control-k. This is the magic key sequence to kill a DOS session that is not running it's own X window.)

If you do not have a floppy drive then type this command:

    /usr/bin/dosboot +aa:=/foo
This tells it to boot from the "virtual floppy" /foo, which of course does not exist, but for this particular test it does not have to.

If no problem with dosboot

If the above use of "dosboot" command works then, then Win4Lin is basically working, and any problems you have with Win4Lin are probably not related to a basic failure when installing it.

If dosboot error message about "vga.rom"

If the dosboot command did not start a DOS window, but instead produced an error message then knowing which error message it is can pinpoint the problem.

If the error message was about being unable to open a file named "vga.rom", that means when you have already tried to load Windows from the Windows CD, and that failed. In this situation, you need to look at a different trouble shooting page: Problems loading Windows CD. If the load from Windows CD proceeded as far as it did so that dosboot would complain about "vga.rom", then any problems you have with Win4Lin are probably not related to a basic failure when installing it.

(To make dosboot avoid the problem of the vga.rom file not being there you can make it use different virtual video mode, such as "mda" mode. To do this use the "+amda" option on the dosboot command line. This should make it possible to boot up from the floppy.)

Some other dosboot error

If dosboot produces some other error message or fails to start a DOS session, and you have verified that the Win4Lin driver modules are loaded, then something very unexpected has happened.

One thing to try that does not take much time at all is to try reinstalling Win4Lin.

Taking it from the top - Reinstall

If none of the preceding stuff helped to at least get "dosboot" to work, then one last thing to try is to try completely uninstalling Win4Lin and trying a "fresh" reinstall. As root, do the following: Optionally, each user can:

Now reinstall the Win4Lin RPM:
      rpm -i win4lin.rpm
(or whatever the RPM filename is)

If the "dosboot" thing still does not work, and you have verified that the Win4Lin drivers are loaded, then something unforeseen has happened. Gather the various log files mentioned along with the system info as described in Trouble Shooting Guide Table of Contents page, and email them to support@trelos.com.