Showing posts with label FreeBSD. Show all posts
Showing posts with label FreeBSD. Show all posts

Monday, February 4, 2008

The Sig11 FAQ

Signal 11 while compiling the kernel

This FAQ describes what the possible causes are for an effect that
bothers lots of people lately. Namely that a linux(*)-kernel (or any
other large package for that matter) compile crashes with a "signal
11". The cause can be software or (most likely) hardware. Read on to
find out more.
(*) Of course nothing is Linux specific. If your hardware is flaky,
Linux, Windows 3.1, FreeBSD, Windows NT and NextStep will all crash.
If you are not reading this at http://www.bitwizard.nl/sig11/, that's
where you can find the most recent version.
For those of you who prefer reading this in French, the French
translation can be found at
http://www.linux-france.com/article/sig11fr/.
Email me at R.E.Wolff@BitWizard.nl if you find any spelling errors,
worthwhile additions or with an "it also happened to me" story. (Note
that I reject some suggested additions on my belief that it is
technical nonsense).



The Sig11 FAQ

QUESTION

My kernel compile crashes with
gcc: Internal compiler error: program cc1 got fatal signal 11

What is wrong with the compiler? Which version of the compiler do I
need? Is there something wrong with the kernel?

ANSWER

Most likely there is nothing wrong with your installation, your
compiler or kernel. It very likely has something to do with your
hardware. There are a variety of subsystems that can be wrong, and
there is a variety of ways to fix it. Read on, and you'll find out
more. There is one big exception to this "rule". Red Hat 5.0. There is
more near the end.
_________________________________________________________________

QUESTION

Ok it may not be the software, How do I know for sure?

ANSWER

First lets make sure it is the hardware that is causing your trouble.
When the "make" stops, simply type "make" again. If it compiles a few
more files before stopping, it must be hardware that is causing you
troubles. If it immediately stops again (i.e. scans a few directories
with "nothing to be done for xxxx" before bombing at exactly the same
place), try
dd if=/dev/HARD_DISK of=/dev/null bs=1024k count=MEGS

Change HARD_DISK to "hda" to the name of your harddisk (e.g. hda or
sda. Or use "df ."). Change the MEGS to the number of megabytes of
main memory that you have. This will cause the first several megabytes
of your harddisk to be read from disk, forcing the C source files and
the gcc binary to be reread from disk the next time you run it. Now
type make again. If it still stops in the same place I'm starting to
wonder if you're reading the right FAQ, as it is starting to look like
a software problem after all.... Take a peek at the "what are the
other possibilities" question..... If without this "dd" command the
compiler keeps on stopping at the same place, but moves to another
place after you use the "dd" you definitely have a disk->ram transfer
problem.

QUESTION

What does it really mean?

ANSWER

Well, the compiler accessed memory outside its memory range. If this
happens on working hardware it's a programming error inside the
compiler. That's why it says "internal compiler error". However when
the hardware occasionally flips a bit, gcc uses so many pointers, that
it is likely to end up accessing something outside of its addressing
range. (random addresses are mostly outside your addressing range, as
not very many people have a significant part of 4G as main memory...
:-) It seems that nowadays, everybody with "signal 11" problems gets
directed to this page. If you're developping your own software or have
software that hasn't been debugged quite enough, "signal 11" (or
segmentation fault) is still a strong hint that there is something
wrong with the program. Only when you can cause a "known working"
program like "gcc" to crash on a dataset (e.g. the Linux-kernel) that
has also been well-tested, then it becomes a hint that there is
something wrong with your hardware.
_________________________________________________________________

QUESTION

Ok. I may have a hardware problem what is it?

ANSWER

If it happens to be the hardware it can be:
* Main memory. Your main memory might be getting an occasional bit
wrong. If this happens on the "writes", you won't see any parity
errors. There are several ways to fix it:
+ The memory speed might be too slow. Increase the number of
wait states in the BIOS.
This could be caused by the AMIBIOSs autoconfig option: it
may only know about 486s running upto 80 MHz, whereas you
currently buy 100 MHz versions. -- Pat V.
+ The memory speed might be too slow. Get faster DRAM SIMMs.
For example current ASUS motherboards require 60 ns DRAM if
you have a 100, or 133 MHz processor (Take a look in your
motherboard's manual). I've heard reports that 70 ns also
works, reliability problems like random sig11's belong to the
possibilities.... (I wouldn't take the risk) -- Andrew
Eskilsson (mpt95aes@pt.hk-r.se)
+ There is a bad chip on one of the SIMMs. If you own more than
1 bank of memory you might be able to pull SIMMs and see if
the problem goes away. Be careful for STATIC!!!
+ We handled a hard one here the last week. It turned out that
ALL 4 16Mb SIMMs were broken in that they dropped a bit
around once per hour. This was sufficient to crash the
machine in about a day, or crash a kernel compile in about an
hour. A new set of SIMMs works perfectly. It took a long
while to diagnose this one, because all 4 of the SIMMs were
affected equally, so leaving half of the memory out didn't
change things.
Mark Kettner (kettner@cat.et.tudelft.nl) reports that his
system was capable of running my memory test for 2300 times
faultlessly, but then detected around 10 errors. It then
continued detecting no faults for a few hundred runs
again..... In his case running kernel compiles was a much
more efficient way of detecting the health of the system (in
the most stable configuration the system could compile around
14 kernels before going bzurk). His solution was to "trade
in" the old memory for a so called "memory upgrade". The
shopkeeper then "tests" in their memory tester, which OKs the
memory. he then got a good discount on the new memory :-).
+ It seems that some 30-72 pin converters can cause memory
errors. (It hasn't been proven whether the 4 SIMMS in the
converter had gone bad, or if the SIMM converter was at
fault. The SIMMS had been functioning perfectly for years
before they were moved into the converter....) -- Naresh
Sharma (n.sharma@is.twi.tudelft.nl). Paul Gortmaker
(paul.gortmaker@anu.edu.au) adds that the SIMM converters
should have at least 4 bypass capacitors to keep the power
supply of the SIMMs clean.
+ If the refresh of the DRAM isn't functioning properly, the
DRAMs will slowly lose their information. Some (486)
motherboards stop refreshing correctly when you turn on
"hidden refresh". There seems to be a program called "dram"
around that can also mess up your refresh to cause sig11
problems. -- Hank Barta (hank@pswin.chi.il.us), Ron Tapia
(tapia@nmia.com)
+ The number of waitstates could be too low. Increase the
number of waiststates in the BIOS for a fix. The Intel
Endeavour board doesn't allow you to increase the memory
waitstates. This can supposedly be fixed by flashing a MR
BIOS into the motherboard. -- David Halls
(david.halls@cl.cam.ac.uk)
* Cache memory. Your cache memory might be getting an occasional bit
wrong. Caches are usually not equipped with parity. You can
diagnose that this is the case by turning off the cache in the
BIOS. If the problem goes away it is probably the cache. There are
several ways to fix it:
+ The cache memory speed might be too slow. Increase the number
of wait states in the BIOS.
+ The cache memory speed might be too slow. Get faster SRAM
chips.
+ There is a bad chip in your cache. It is unlikely that you
can swap chips as easily as with SIMMs. Be careful for
STATIC!!! -- Joseph Barone (barone@mntr02.psf.ge.com)
+ The cache might be set to "write back" while there is a bug
in the write back implementation of your chipset. The
motherboard where this happened was a "MV020 486VL3H" (with
20M RAM) -- Scott Brumbaugh (scottb@borris.beachnet.com)
(Mail address doesn't work. Scott: Get back at me with a
valid return address)
+ The motherboard may require a jumper to switch between Cache
On A Stick and the old-fashioned dip chip cache. (JP16 on Rev
2.4 ASUS P/I-P55TP4XE motherboards)
* Disk transfers. A block coming from disk might incur an occasional
bit error.
+ If you have this problem, you are most likely to have to do
the "dd" command to "move" the problem from one place to the
next....
+ Some IDE harddisks cannot handle the "irq_unmasking" option.
This may only show under load. And it could show as a sig11.
+ Do you have a kalok 31xx? Throw it in the garbage. (or sell
it to a DOS user)
+ SCSI? Termination? A short bus might still work (unreliably
that is) with bad termination. A long bus might get errors
anyway. Can you turn on parity on the host and the DISK?
* Overclocking. Some vendors (or private people) think it is
possible to overclock some CPUs. Some of them may work others
don't. You might want to try turning off turbo (note that most
pentium motherboards no longer support a non-turbo mode) and see
if the problem goes away. Check the speed of your CPU compared
(printed on it, carefully remove the fan if necessary) with what
the motherboard jumpers or BIOS settings say.... It seems that
even Intel may make mistakes in this area. I now have several
reliable reports that official pentium would sig11 at their rated
speed, but not at a lower speed. As for some speeds the
motherboard is only stressed HARDER for a slower processor speed,
(120 MHz-> motherboard runs at 60MHz, 100MHz-> motherboard runs at
66MHz), I think it is unlikely that this has anything to do with
the motherboard. Moreover a new 120MHz processor is now
functioning correctly. -- Samuel Ramac (sramac@vnet.ibm.com). This
is not unique to Intel or any of its competitors.
* CPU temperature. A high speed processor might overheat without the
correct heat sink. This can also be caused by a failing fan. (My
personal '486 has a fan that takes a few minutes to get up to
speed. It probably will never really FAIL because it's now
decommisioned :-). The CPU can become erratic if "pushed" by
compiling a kernel. This problem becomes worse if you disable
"HALT" on the LILO command line. Linux tries to power-down the CPU
by executing the "halt" instruction when the system is idle. This
preserves power, and therefore the CPU temperature drops when the
system is idle. You therefore might not notice this problem when
simply editing, and it might only surface after hours of CPU
intensive jobs when the ambient temp is high. If you have a
Pentium with Fdiv bug, it is advisable to trade it in at Intel.
They will send you a new one that preconfigured with an official
Intel-approved FAN. Also note that most normal glues are very bad
thermal conductors. There is special thermal glue available that
should be used when a fan needs to be glued to a CPU. -- Arno
Griffioen (arno@ixe.net), -- W. Paul Mills (wpmills@midusa.net) --
Alan Wind (wind@imada.ou.dk)
Intel says that the allowable temperature ranges for the outside
of your CPU is:
0 to +85 C: Intel486 SX, Intel486 DX, IntelDX2, IntelDX4 processor
0 to +95 C: IntelDX2, IntelDX4 OverDrive® processors
0 to +80 C: 60 MHz Pentium® processor
0 to +70 C: 66 to 166 MHz Pentium processor
For information on how to measure this and some confirmation of
what I say here, see:
http://pentium.intel.com/procs/support/faqs/iarcfaq.htm
(Especially questions Q5, Q6 and Q12. The document is getting
slightly outdated, but it is still very accurate. It seems the
questions move around a bit every now and then as well.)
* CPU voltage. Some motherboards allow you to select the CPU
voltage. Some motherboards badly document the jumper settings that
manage this. It seems that a 5V processor might still work most of
the time at 3.3 volts..... -- Karl Heyes (krheyes@comp.brad.ac.uk)
* RAM voltage. It seems that vendors are preparing for 3.3V RAM now.
Most memory is still 5V. (but be careful.... 3.3v RAM will break
at 5V.....)
* Local bus overloading. At 25 MHz you're allowed to have 3
VesaLocalBus (VLB) cards, At 33MHz only two, at 40MHz only one and
guess what at 50MHz NONE! (i.e. you are allowed to run your system
with a 50MHz local bus, but then you're not allowed to use any VLB
cards). Some systems start acting flaky when you overload the VLB.
Even when your VLB isn't overloaded (over the limits stated
above), the system may lose a few nanoseconds of margin by adding
an extra VLB card, so you might need to add a cache wait state or
something after you've added a new VLB card.... -- Richard
Postgate (postgate@cafe.net)
* Power management. Some laptops (and nowadays also "green" pc's)
have power management features. These might interfere with Linux.
One feature might save a memory image to HD and restore the RAM
when you press a key. This sounds like fun, but Linux device
drivers don't expect that the hardware has been turned off between
two acesses. Some may recover, but others not. Try turning it off,
or enabeling "APM support" in your kernel. -- Elizabeth Ayer
(eca23@cam.ac.uk)
* The CPU itself. Several people are reporting that they have found
nothing to blame except the CPU. This could also have been an
incompatibility between the CPU and the motherboard. A wave of
reports concerning Intel CPUs has passed (Feb '97). A new wave of
reports is coming in that are blaming Cyrix/IBM 6x86 CPUs.
Although it could indeed be the CPU, it could also be that your
motherboard is incompatible with your CPU. At least I've seen a
motherboard manual mention that it isn't compatible with older
6x86's. My own experience is that these devices aren't bad at all,
and on a kernel compile I benchmarked a P166+ to be equivalent
with a P155 (1.3 times faster than a P120).

The Memory hole. Many modern motherboards allow you to use old ISA
video cards with one or two megabytes of linear frame buffer. To
achieve this, they have to map out the memory just below 16Mb. Nobody
actually ever used this feature, but if you turn the memory hole (or
LFB support in some BIOSes) on, your machine will certainly be
flaky..... -- Paul Connolly (pconnolly@macdux.com.au)
_________________________________________________________________

QUESTION

RAM timing problems? I fiddled with the bios settings more than a
month ago. I've compiled numerous kernels in the mean time and nothing
went wrong. It can't be the RAM timing. Right?

ANSWER

Wrong. Do you think that the RAM manufacturers have a machine that
makes 60ns RAMs and another one that makes 70ns RAMs? Off course not!
They make a bunch, and then test them. Some meet the specs for 60 ns,
others don't. Those might be 61 ns if the manufacturer would have to
put a number to it. In that case it is quite likely that it works in
your computer when for example the temperature is below 40 degrees
centigrade (chips become slower when the temp rises. That's why some
supercomputers need so much cooling).

However "the coming of summer" or a long compile job may push the
temperature inside your computer over the "limit". -- Philippe Troin
(ptroin@compass-da.com)
_________________________________________________________________

QUESTION

I got suckered into not buying ECC memory because it was slightly
cheaper. I feel like a fool. I should have bought the more expensive
ECC memory. Right?

ANSWER

Buying the more expensive ECC memory and motherboards protects you
against a certain type of errors: Those that occur randomly by passing
alpha particles.
Because most people can reproduce "signal 11" problems within half an
hour using "gcc" but cannot reproduce them by memory testing for hours
in a row, that proves to me that it is not simply a random alpha
particle flipping a bit. That would get noticed by the memory test
too. This means that something else is going on. I have the impression
that most sig11 problems are caused by timing errors on the CPU <->
cache <-> memory path. ECC on your main memory doesn't help you in
that case. When should you buy ECC? a) When you feel you need it. b)
When you have LOTS of RAM. (Why not a cut-off number? Because the
cut-off changes with time, just like "LOTS".) Some people feel very
strong about everybody using ECC memory. I refer them to reason "a)".
_________________________________________________________________

QUESTION

Memory problems? My BIOS tests my memory and tells me its ok. I have
this fancy DOS program that tells me my memory is OK. Can't be memory
right?

ANSWER

Wrong. The memory test in the BIOS is utterly useless. It may even
occasionally OK more memory than really is available, let alone test
whether it is good or not.
A friend of mine used to have a 640k PC (yeah, this was a long time
ago) which had a single 64kbit chip instead of a 256kbit chip in the
second 256k bank. This means that he effectively had 320k working
memory. Sometimes the BIOS would test 384k as "OK". Anyway, only
certain applications would fail. It was very hard to diagnose the
actual problem....
Most memory problems only occur under special circumstances. Those
circumstances are hardly ever known. gcc Seems to exercise them. Some
memory tests, especially BIOS memory tests, don't. I'm no longer
working on creating a floppy with a linux kernel and a good memory
tester on it. Forget about bugging me about it......
The reason is that a memory test causes the CPU to execute just a few
instructions, and the memory access patterns tend to be very regular.
Under these circumstances only a very small subset of the memories
breaks down. If you're studying Electrical Engineering and are
interested in memory testing, a masters thesis could be to figure out
what's going on. There are computer manufacturers that would want to
sponsor such a project with some hardware that clients claim to be
unreliable, but doesn't fail the production tests......
_________________________________________________________________

QUESTION

Does it only happen when I compile a kernel?

ANSWER

Nope. There is no way your hardware can know that you are compiling a
kernel. It just so happens that a kernel compile is very tough on your
hardware, so it just happens a lot when you are compiling a kernel.
* People have seen "random" crashes for example while installing
using the slackware installation script.... -- dhn@pluto.njcc.com
* Others get "general protection errors" from the kernel (with the
crashdump). These are usually in /var/adm/messages. --
fox@graphics.cs.nyu.edu
_________________________________________________________________

QUESTION

Nothing crashes on NT, Windows 95, OS/2 or DOS. It must be something
Linux specific.

ANSWER

First of all, Linux stresses your hardware more than all of the above.
Some OSes like the Microsoft ones named above crash in unpredictable
ways anyway. Nobody is going to call Microsoft and say "hey, my
windows box crashed today". If you do anyway, they will tell you that
you, the user, made an error (see the interview with Bill Gates in a
German magazine....) and that since it works now, you should shut up.
Those OSes are also somewhat more "predictable" than Linux. This means
that Excel might always be loaded in the exact same memory area.
Therefore when the bit-error occurs, it is always excel that gets it.
Excel will crash. Or excel will crash another application. Anyway, it
will seem to be a single application that fails, and not related to
memory.
What I am sure of is that a cleanly installed Linux system should be
able to compile the kernel without any errors. Certainly no sig-11
ones. (** Exception: Red Hat 5.0 with a Cyrix processor. See
elsewhere. **)
Really Linux and gcc stress your hardware more than other OSes. If you
need a non-linux thingy that stresses your hardware to the point of
crashing, you can try winstone. -- Jonathan Bright
(bright@informix.com)
_________________________________________________________________

QUESTION

Is it always signal 11?

ANSWER

Nope. Other signals like four, six and seven also occur occasionally.
Signal 11 is most common though.

As long as memory is getting corrupted, anything can happen. I'd
expect bad binaries to occur much more often than they really do.
Anyway, it seems that the odds are heavily biased towards gcc getting
a signal 11. Also seen:
* free_one_pmd: bad directory entry 00000008
* EXT2-fs warning (device 08:14): ext_2_free_blocks bit already
cleared for block 127916
* Internal error: bad swap device
* Trying to free nonexistent swap-page
* kfree of non-kmalloced memory ...
* scsi0: REQ before WAIT DISCONNECT IID
* Unable to handle kernel NULL pointer dereference at virtual
address c0000004
* put_page: page already exists 00000046
invalid operand: 0000
* Whee.. inode changed from under us. Tell Linus
* crc error -- System halted (During the uncompress of the Linux
kernel)
* Segmentation fault
* "unable to resolve symbol"
* make [1]: *** [sub_dirs] Error 139
make: *** [linuxsubdirs] Error 1
* The X Window system can terminate with a "caught signal xx"

The first few ones are cases where the kernel "suspects" a
kernel-programming-error that is actually caused by the bad memory.
The last few point to application programs that end up with the
trouble.

-- S.G.de Marinis (trance@interseg.it)
-- Dirk Nachtmann (nachtman@kogs.informatik.uni-hamburg.de)
_________________________________________________________________

QUESTION

What do I do?

ANSWER

Here are some things to try when you want to find out what is wrong...
note: Some of these will significantly slow your computer down. These
things are intended to get your computer to function properly and
allow you to narrow down what's wrong with it. With this information
you can for example try to get the faulty component replaced by your
vendor.
* Jumper the motherboard for lower CPU and bus speed.
* Go into the BIOS and tell it "Load BIOS defaults". Make sure you
write the disk drive settings down beforehand.
* Disable the cache (BIOS) (or pull it out if it's on a "stick").
* boot kernel with "linux mem=4M" (disables memory above 4Mb).
* Try taking out half the memory. Try both halves in turn.
* Fiddle with settings of the refresh (BIOS)
* Try borrowing memory from someone else. Preferably this should be
memory that runs Linux flawlessly in the other machine...
(Sillicon graphics Indy machines are also nice targets to borrow
memory from)
* If you want to verify if a solution really works try the
following:
tcsh
cd /usr/src/linux
make zImage
foreach i (0 1 2 3 4 5 6 7 8 9)
foreach j (0 1 2 3 4 5 6 7 8 9)
make clean;make zImage > log."$i"$j
end
end
All the resulting logfiles should be the same. (The first "make
zImage" makes sure that the dependencies are already
generated.....) This takes around 24 hours on a 100MHz pentium
with 16Mb of memory. (and about 3 months on a 386 with 4Mb :-).

The hardest part is that most people will be able to do all of the
above except borrowing memory from someone else, and it doesn't make a
difference. This makes it likely that it really is the RAM. Currently
RAM is the most pricy part of a PC, so you rather not have this
conclusion, but I'm sorry, I get lots of reactions that in the end
turn out to be the RAM. However don't despair just yet: your RAM may
not be completely wasted: you can always try to trade it in for
different or more RAM.
_________________________________________________________________

QUESTION

I had my RAMs tested in a RAM-tester device, and they are OK. Can't be
the RAM right?

ANSWER

Wrong. It seems that the errors that are currently occuring in RAMS
are not detectable by RAM-testers. It might be that your motherboard
is accessing the RAMs in dubious ways or otherwise messing up the RAM
while it is in YOUR computer. The advantage is that you can sell your
RAM to someone who still has confidence in his RAM-tester......
_________________________________________________________________

QUESTION

What are other possibilities?

ANSWER

Others have noted the following possibilities:
* Red Hat 5.0 crashes for some people while installing. Others are
only running into problems when compiling the kernel. It seems
that the gcc that comes with Red Hat 5.0 is odd in the respect
that it crashes on Cyrix processors when compiling the kernel.
This is VERY odd. I would think that the only way that this can be
the case is whent he Cyrix has a bug that has gone undetected all
this time, and reliably gets triggered when THAT gcc compiles the
Linux kernel. Anyway, if you just want compile a kernel, you
should get
ftp://ftp.redhat.com/home/wanger/gcc/gcc-2.7.2.3-9.i386.rpm . (I
had to change the URL twice in a week. If it changes again, you'll
just have to click your way to the errata at starting at
http://www.redhat.com/) I don't know of a workaround if your
system crashes while installing, except for installing a minimal
base and then adding packages using 'glint' or 'rpm'.
* Compiling a 2.0.x kernel with a 2.8.x gcc or any egcs doesn't
work. There are a few bugs in the kernel that don't show up
because gcc 2.7.x does a lowsy job optimizing it. gcc 2.8.x and
egcs just dump some of the code because we didn't tell it not to.
Anyway, you usually get a kernel that seems to work but has funny
bugs. For example X may crash with a signal 11. Oh, and before you
ask, no it's not going to be fixed. Don't bother Alan or Linus
about this OK? -- Hans Peter Verne (h.p.verne@kjemi.uio.no)
* The pentium-optimizing-gcc (the one with the version number ending
in "p") fails with the default options on certain source files
like floppy.c in the kernel. The "triggers" are in the kernel,
libc and in gcc itself. This is easily diagnosed as "not a
hardware problem" because it always happens in the same place. You
can either disable some optimizations (try -fno-unroll-loops
first) or use another gcc. -- Evan Cheng (evan@top.cis.syr.edu)
(In other words: gcc 2.7.2p crashes with sig11 on floppy.c .
Workaround-1: Use plain gcc. Workaround-2: Manually compile
floppy.c with "-O" instead of "-O2". )
* A badly misconfigured gcc -- some parts from one version, some
from another. After a few weeks I ended up re-installing from
scratch to get everything right. -- Richard H. Derr III
(rhd@Mars.mcs.com).
* Gcc or the resulting application may terminate with sig11 when a
program is linked against the SCO libraries (which come with
iBCS). This occurs on some applications that have -L/lib in their
LDFLAGS....
* When compiling a kernel with an ELF compiler, but configured for
a.out (or the other way around, I forgot) you will get a signal 11
on the first call to "ld". This is easily identified as a software
problem, as it always occurs on the FIRST call to "ld" during the
build. -- REW
* An Ethernet card together with a badly configured PCI BIOS. If
your (ISA) Ethernet card has an aperture on the ISA bus, you might
need to configure it somewhere in the BIOS setup screens.
Otherwise the hardware would look on the PCI bus for the shared
memory area. As the ISA card can't react to the requests on the
PCI bus, you are reading empty "air". This can result in
segmentation faults and kernel crashes. -- REW
* Corrupted swap partition. Tony Nugent (T.Nugent@sct.gu.edu.au)
reports he used to have this problem and solved it by an mkswap on
his swap partition. (Don't forget to type "sync" before doing
anything else after an mkswap. -- Louis J. LaBash Jr.
(lou@minuet.siue.edu))
* NE2000 card. Some cheap Ne2000 cards might mess up the system. --
Danny ter Haar (dth@cistron.nl) I personally might have had
similar problems, as my mail server crashed hard every now and
then (once a day). It now seems that 1.2.13 and lots of the 1.3.x
kernels have this bug. I haven't seen it in 1.3.48. Probably got
fixed somewhere in the meantime.... -- REW
* Power supply? No I don't think so. A modern heavy system with two
or three harddisk, both SCSI and IDE will not exceed 120 Watts or
so. If you have loads of old harddisks and old expansion cards the
power requirements will be higher, but still it is very hard to
reach the limits of the power supply. Of course some people manage
to find loads of old full-size harddisks and install them into
their big-tower. You can indeed overload a powersupply that way.
-- Greg Nicholson (greg@job.cba.ua.edu) A faulty power supply CAN
of course deliver marginal power, which causes all of the
malfunctioning that you read about in this file.... -- Thorsten
Kuehnemann (thorsten@actis.de)
* An inconsistent ext2fs. Some circumstances can cause the kernel
code of the ext2 file system to result in Signal 11 for Gcc. --
Morten Welinder (terra@diku.dk)
* CMOS battery. Even if you set the BIOS as you want it, it could be
changing back to "bad" settings under your nose if the CMOS
battery is bad. -- Heonmin Lim (coco@me.umn.edu)
* No or too little swap space. Gcc doesn't gracefully handle the
"out of memory" condition. -- Paul Brannan (brannanp@musc.edu)
* Incompatible libraries. When you have a symlink from "libc.so.5"
pointing to "libc.so.6", some applications will bomb with sig11.
-- Piete Brooks (piete.brooks@cl.cam.ac.uk).
_________________________________________________________________

QUESTION

I don't believe this. To whom has this happened?

ANSWER

Well for one it happened to me personally. But you don't have to
believe me. It also happened to:
* Johnny Stephens (icjps@asuvm.inre.asu.edu)
* Dejan Ilic (d92dejil@und.ida.liu.se)
* Rick Tessner (rick@myra.com)
* David Fox (fox@graphics.cs.nyu.edu)
* Darren White (dwhite@baker.cnw.com) (L2 cache)
* Patrick J. Volkerding (volkerdi@mhd1.moorhead.msus.edu)
* Jeff Coy Jr. (jcoy@gray.cscwc.pima.edu) (Temp problems)
* Michael Blandford (mikey@azalea.lanl.gov) (Temp problems: CPU fan
failed)
* Alex Butcher (Alex.Butcher@bristol.ac.uk) (Memory waitstates)
* Richard Postgate (postgate@cafe.net) (VLB loading)
* Bert Meijs (L.Meijs@et.tudelft.nl) (bad SIMMs)
* J. Van Stonecypher (scypher@cs.fsu.edu)
* Mark Kettner (kettner@cat.et.tudelft.nl) (bad SIMMs)
* Naresh Sharma (n.sharma@is.twi.tudelft.nl) (30->72 converter)
* Rick Lim (ricklim@freenet.vancouver.bc.ca) (Bad cache)
* Scott Brumbaugh (scottb@borris.beachnet.com)
* Paul Gortmaker (paul.gortmaker@anu.edu.au)
* Mike Tayter (tayter@ncats.newaygo.mi.us) (Something with the
cache)
* Benni ??? (benni@informatik.uni-frankfurt.de) (VLB Overloading)
* Oliver Schoett (os@sdm.de) (Cache jumper)
* Morten Welinder (terra@diku.dk)
* Warwick Harvey (warwick@cs.mu.oz.au) (bit error in cache)
* Hank Barta (hank@pswin.chi.il.us)
* Jeffrey J. Radice (jjr@zilker.net) (Ram voltage)
* Samuel Ramac (sramac@vnet.ibm.com) (CPU tops out)
* Andrew Eskilsson (mpt95aes@pt.hk-r.se) (DRAM speed)
* W. Paul Mills (wpmills@midusa.net) (CPU fan disconnected from CPU)
* Joseph Barone (barone@mntr02.psf.ge.com) (Bad cache)
* Philippe Troin (ptroin@compass-da.com) (delayed RAM timing
trouble)
* Koen D'Hondt (koen@dutlhs1.lr.tudelft.nl) (more kernel error
messages)
* Bill Faust (faust@pobox.com) (cache problem)
* Tim Middlekoop (mtim@lab.housing.fsu.edu) (CPU temp: fan
installed)
* Andrew R. Cook (andy@anchtk.chm.anl.gov) (bad cache)
* Allan Wind (wind@imada.ou.dk) (P66 overheating)
* Michael Tuschik (mt2@irz.inf.tu-dresden.de) (gcc2.7.2p victim)
* R.C.H. Li (chli@en.polyu.edu.hk) (Overclocking: ok for months...)
* Florin (florin@monet.telebyte.nl) (Overclocked CPU by vendor)
* Dale J March (dmarch@pcocd2.intel.com) (CPU overheating on laptop)
* Markus Schulte (markus@dom.de) (Bad RAM)
* Mark Davis (mark_d_davis@usa.pipeline.com) (Bad P120?)
* Josep Lladonosa i Capell (jllado@arrakis.es) (PCI options
overoptimization)
* Emilio Federici (mc9995@mclink.it) (P120 overheating)
* Conor McCarthy (conormc@cclana.ucd.ie) (Bad SIMM)
* Matthias Petofalvi (mpetofal@ulb.ac.be) ("Simmverter" problem)
* Jonathan Christopher Mckinney (jono@tamu.edu) (gcc2.7.2p victim)
* Greg Nicholson (greg@job.cba.ua.edu) (many old disks)
* Ismo Peltonen (iap@bigbang.hut.fi) (irq_unmasking)
* Daniel Pancamo (pancamo@infocom.net) (70ns instead of 60 ns RAM)
* David Halls (david.halls@cl.cam.ac.uk)
* Mark Zusman (marklz@pointer.israel.net) (Bad motherboard)
* Elizabeth Ayer (eca23@cam.ac.uk) (Power management features)
* Thorsten Kuehnemann (thorsten@actis.de)
*
* (Email me with your story, you might get to be mentioned here...
:-) ---- Update: I like to hear what happened to you. This will
allow me to guess what happens most, and keep this file as
accurate as possible. However I now have around 500 different
Email addresses of people who've had sig-11 problems. I don't
think that it is useful to keep on adding "random" people's names
on this list. What do YOU think?
_________________________________________________________________

I'm interested in new stories. If you have a problem and are unsure
about what it is, it may help to Email me at R.E.Wolff@BitWizard.nl .
My curiosity will usually drive me to answering your questions until
you find what the problem is..... (on the other hand, I do get pissed
when your problem is clearly described above :-)

Read more ...

The Wine FAQ

Frequently asked questions about Wine.

Questions

Click on the question to see its answer.

About Wine

1. What is Wine?
2. What's UNIX? What's Linux? What's FreeBSD? What's GNU?
3. Is Wine an emulator?
4. What's the history of Wine?
5. Why would anyone want Wine? Doesn't Windows suck?
6. What is Wine, and what is it supposed to do?
7. What is the current version of Wine?
8. When will Wine be finished?
9. What undocumented APIs / interfaces are not understood? Would seeing
Microsoft source help?

Getting Wine

10. Do I need Unix first? Where can I get Linux?
11. Can I get Wine on CD?

Common troubles with configuring Wine

12. This RPM requires libncurses.so.5, but the latest ncurses I can find is
libncurses.so.4?
13. Why does it keep saying that Xpm is not installed?
14. What is this kernel/kernel32 mismatch warning?
15. I'm getting a X_OpenFont crash when starting Wine!
16. All my Wine windows stick on top and/or on all my desktops!
17. Wine looks like Windows 3.1, but I run Windows 95 applications?
18. I compiled Wine from source, but it can't find the .so files, like
libavifil32.so!
19. Wine won't start on my new glibc2.1.3-based distribution (RedHat 6.2,
Mandrake 7.0, etc)!

Common troubles with running programs with Wine

20. I'm getting a relocation records stripped message, what's this?
21. I can't start programs in paths with spaces in them!
22. I tried to run a setup application, but it complains that it can't
create start menu entries, what can I do?
23. My application wants me to change disks/CD-ROMs, but I can't unmount it
while it is running, what can I do?

Getting Help

24. Is there any documentation for Wine?
25. I couldn't find the answer to my question in the documentation, but
I've written a document explaining how to solve it. What should I do?

Developing programs using Wine

26. Can I use Wine to port my Win32 sources to Unix?
27. Will MFC work with Wine? What do I need to do?
28. Are there any commercial applications which have been ported using
Wine?
29. How can I detect Wine?

Becoming a Wine developer

30. How do I become a Wine developer? What do I need to know?

About this FAQ

31. How recent is this FAQ? Where can I get the latest version?
32. Who maintains this FAQ? What's its history? How do I submit additions?
33. What's the copyright on this FAQ? How may I use it?

Capabilities

34. Which programs does Wine currently run?
35. Are there programs which Wine will never be able to run?
36. Can I use Wine to access my Winmodem?
37. Will MS Windows programs typically run faster or slower under UNIX and
Wine than they do under DOS and MS Windows? Will certain kinds of
programs run slower or faster?
38. Are there any advantages or disadvantages to running MS Windows
applications under Wine that I should be aware of?
39. Will Wine support MS Windows networked applications that use
winsock.dll?
40. I'm a software developer who wants to use UNIX to develop programs
rather than DOS, but I need to write DOS and MS Windows programs as
well. Will I be able to run my favorite DOS and/or MS Windows compilers
under Wine?

What You Need to Run Wine

41. Under what hardware platform(s) and operating system(s) will Wine run?
42. What minimum CPU must I have in my computer to be able to run Wine and
MS Windows applications smoothly?
43. How much disk space will the Wine source code and binaries take on my
hard drive? What other software do I need to have installed to compile
and run Wine?
44. How much RAM do I need to have on my UNIX system to be able to run Wine
and MS Windows applications smoothly?
45. I have a Drivespaced, Doublespaced or Stackered DOS partition. Can Wine
run MS Windows binaries located in such a partition?
46. Do I need to have a DOS partition on my system to use Wine? Does MS
Windows need to be loaded into that partition in order to run MS
Windows programs under Wine?
47. If Wine completely replaces MS Windows, will it duplicate all of the
functions of MS Windows?
48. Will I be able to install MS Windows applications in any flavor of a
UNIX filesystem?
49. Will Wine run only under X, or can it run in character mode?
50. Will Wine run under any X window manager? Does it require a window
manager at all?
51. Will 32-bit Windows 95/98 applications run under Wine?
52. What about NT specific programs, which use NT-only features?

How to Find, Install, Configure and Run Wine

53. Where can I get Wine?
54. If I do not have an Internet account, how can I get Wine?
55. How do I install Wine on my hard drive?
56. How do I compile the Wine distribution source code?
57. How do I configure Wine to run on my system?
58. How do I run an MS Windows program under Wine?
59. I have installed and configured Wine, but Wine cannot find MS Windows
on my drive. Where did I go wrong?
60. I'm running a DirectX game, but the graphics is slow, how can I speed
it up?
61. I think I've found a bug. How do I report this bug to the Wine
programming team?
62. I was able to get various MS Windows programs to run, but parts of them
do not work. What is wrong?
63. I have run various MS Windows programs, but since the program menus do
not work, how can I exit these programs?
64. How do I remove Wine from my computer?

How to Get Help with Wine

65. Is there a Usenet newsgroup for Wine?
66. Is there a World Wide Web site for Wine?

How You Can Help with the Wine Project

67. How can I help contribute to the Wine project, and in what way(s)?
68. I want to help beta test Wine. How can I do this?
69. I have written some code that I would like to submit to the Wine
project. How do I go about doing this?

Who's Responsible for Wine?

70. Who is responsible for writing and maintaining the Wine source code?
71. Who are the folks and organizations who have contributed money or
equipment to the Wine project?


Questions and Answers

About Wine

1. What is Wine?

Wine is Windows on UNIX.

2. What's UNIX? What's Linux? What's FreeBSD? What's GNU?

UNIX refers to a number of OSes based on the OS started at Bell Labs in
the 70's. GNU is a longstanding project to create a free Unix. Linux
and FreeBSD are free Unixes, building on the GNU project. Some
distributors, such as Debian, refer to the result as GNU/Linux in
recognition of the GNU heritage.

3. Is Wine an emulator?

Unfortunately, no. Wine provides low-level binary compatibility, but
currently only for OSes running on Intel-compatible chips.

4. What's the history of Wine?

As far as I remember it was a discussion in comp.os.linux about Windows
emulation. The first real code came from Eric Youngdale (at this point
he was toying around with object formats, i.e. he was writing the ELF
infrastructure for Linux and applied this knowledge to write a simple
loader for Windows binaries). Then Bob Amstadt got the actual project
running (with TK widgets). -- Joerg

Also see http://www.winehq.com/about.html.

5. Why would anyone want Wine? Doesn't Windows suck?

Not everyone thinks so. And for those that don't, Windows programs
would suck less when run on a more stable and flexible UNIX platform.

6. What is Wine, and what is it supposed to do?

Wine is a program which allows the operation of DOS and MS Windows
programs (Windows 3.x and Win32 executables) on UNIX. It consists of a
program loader, which loads and executes a Windows binary, and a
library that implements Windows API calls using their UNIX or X11
equivalents. The library may also be used for porting Win32 code into
native UNIX executables.

Wine is free software, and its license (contained in the file LICENSE
in each distribution) is BSD style. Basically, this means that you can
do anything with Wine except claim that you wrote it.

7. What is the current version of Wine?

A new version of Wine is distributed about every three weeks. You will
be able to keep up on all the latest releases by reading the newsgroup

comp.emulators.ms-windows.wine

where new release announcements are made. You can also subscribe to the
wine-announce mailing list to be notified of new releases via email.

When downloading Wine from your FTP site of choice (see
http://www.winehq.com/download.html for some of these choices), you can
make sure that you are getting the latest version by watching the
version numbers in the distribution filename.

For instance, the distribution released on June 20, 1994 was called
Wine-940620.tar.gz.

Patch files are also available. If you are current to the previous
version, you can download and apply just the current patch file rather
than the entire new distribution. The patch filenames follow the same
conventions as the monthly distribution.

Read-only CVS access is also available. See
http://www.winehq.com/dev.html

8. When will Wine be finished?

Large software projects are never finished, only released.

Because Wine is being developed by volunteers, it is difficult to
predict when it will be ready for general release. Between 90-98% of
the functions used by MS Windows applets, and 80-90% of the functions
used by major programs, have been at least partially implemented at
this time. However, the remaining 10% will likely take another 90% of
the time, not including debugging.

9. What undocumented APIs / interfaces are not understood? Would seeing
Microsoft source help?

The best would be if the Windows API would be fully documented, so Wine
could be a perfect "clean-room" implementation. Seeing the source code
might make it harder to prove that no copyright violations have taken
place. That said, the documentation is often bad, nonexistent, and even
misleading where it exists, so a fair amount of reverse engineering
have been necessary, particularly in the shell (Explorer) interface.

Getting Wine

10. Do I need Unix first? Where can I get Linux?

The short answer is yes: Wine is not an OS, it runs on top of your OS.
A project named Generic Windows, a prepacked setup of
FreeBSD+XFree86+Wine, has been proposed, but its domain name,
genericwindows.com, seems to have disappeared from the Web.

11. Can I get Wine on CD?

You can get the source on any CD which mirrors a Wine site, such as the
Metalab CD's marketed by Walnut Creek CDROM. Be warned that these might
be slightly out of date by the time you get them.

Common troubles with configuring Wine

12. This RPM requires libncurses.so.5, but the latest ncurses I can find is
libncurses.so.4?

RedHat has pulled a bad versioning trick; ncurses 5 is still installed
as libncurses.so.4 in order to avoid having to recompile the rest of
the distribution. If you must use a RPM rather than compile from
source, make a symlink, like

cd /usr/lib
ln -s libncurses.so.4 libncurses.so.5

13. Why does it keep saying that Xpm is not installed?

You need the Xpm development headers. On RedHat and SuSE, this is the
xpm-devel package. On Debian, this is the xpm4g-dev package. Remember
to rm config.cache (or make distclean) before trying again.

14. What is this kernel/kernel32 mismatch warning?

An error in the configuration file, which unfortunately many RPM
creators have overlooked. If you run win32 applications and have
win95/winNT installed with this error, Wine will crash on startup. The
wine.conf should contain something like this (but you may ignore the
DllPairs section if it doesn't exist, as it was obsoleted a while ago):

[DllPairs]
krnl386 = kernel32

[DllOverrides]
kernel32, gdi32, user32 = builtin
krnl386, gdi, user = builtin

15. I'm getting a X_OpenFont crash when starting Wine!

Make sure you have run mkfontdir in all your X font directories to make
sure X has a current list of available fonts. Also, some Windows fonts
do not work properly in X. When Wine starts, it queries the X server
for the metrics of every font on the system, and for some fonts this
may fail. Run wine -debugmsg +font -sync to see what fonts it was
querying the X server about, then remove the offending font.

16. All my Wine windows stick on top and/or on all my desktops!

Have you tried the -managed or -desktop command line options? See the
man page for details.

17. Wine looks like Windows 3.1, but I run Windows 95 applications?

The visual look and the API are completely different and independent
things, think of the look as a theme, it does not change what the
applications think they are running on. That said, to change the look,
set the WineLook option under [Tweak.Layout] in your wine.conf.

18. I compiled Wine from source, but it can't find the .so files, like
libavifil32.so!

When compiling from source, the libraries go into /usr/local/lib by
default. Most Linux distributions aren't set up to look there by
default, you have to add /usr/local/lib to /etc/ld.so.conf (and then
rerun ldconfig) yourself (or let tools/wineinstall do it for you).

19. Wine won't start on my new glibc2.1.3-based distribution (RedHat 6.2,
Mandrake 7.0, etc)!

There are severe bugs in stock glibc2.1.3. For towupper crashes, or
errors about MENU_CopySysPopup and USER, you can work around the
problem by defining the environment variable LC_ALL, i.e. export
LC_ALL=en (in bash) or setenv LC_ALL en (in tcsh).

Common troubles with running programs with Wine

20. I'm getting a relocation records stripped message, what's this?

It means that a Win32 application tried to start another executable,
but this new executable wanted itself loaded at an address typically
already occupied by the old executable, and did not have the relocation
records necessary for it to be loaded anywhere else (recent versions of
MSVC++ removes (strips) this information by default). Sometimes you can
get the application up anyway by just manually starting the other
executable it was trying to run (this applies to Lotus Notes, for
example).

The root of this problem is that Win32 keeps separate address spaces
for each Win32 process, so that two executables will never clash under
Windows. However, there is a lot of work left before Wine can do the
same, mostly having to do with how these applications are going to
communicate with each other once they are separated.

21. I can't start programs in paths with spaces in them!

Did you do something like wine /c/Program Files/foo/bar.exe? The shell
sees unescaped spaces as argument separators, for obvious reasons. To
tell it that it's all one argument, you must quote it. Examples:

wine /c/Program\ Files/foo/bar.exe
wine "/c/Program Files/foo/bar.exe"

But the best and simplest idea is always to cd into the program's
directory first and then just run wine bar.exe. Many applications
depend on the current directory being the program directory, and they
might not work otherwise.

22. I tried to run a setup application, but it complains that it can't
create start menu entries, what can I do?

If you're running without a real Windows installation, first you need
to install the necessary registry entries, if you haven't already done
so. See documentation/no-windows for more information. Next, you need
to create directories for the paths in the registry. If your Drive C
path is /c, you would type something like

mkdir "/c/windows/Start Menu"
mkdir "/c/windows/Start Menu/Programs"

to prepare the start menus, and after this the install should succeed.
(The newest version of tools/wineinstall should do all this for you.)

23. My application wants me to change disks/CD-ROMs, but I can't unmount it
while it is running, what can I do?

Use the Supermount kernel patch, and mount your removable media using
the Supermount filesystem (read its README file). Supermount implements
DOS/Windows-like behaviour (it allows you to change media (as long as
no files are open) without unmounting).

(Mandrake kernels are known to include this patch by default.)

Getting Help

24. Is there any documentation for Wine?

Yes, a bit. Look in the documentation/ directory of the source
distribution. Also see the WineHQ website and the draft version of the
Wine-HOWTO.

25. I couldn't find the answer to my question in the documentation, but
I've written a document explaining how to solve it. What should I do?

Updates and additions to the Wine documentation directory should be
sent to the wine-patches mailing list. Website and FAQ additions should
be sent to webmaster@winehq.com.

Developing programs using Wine

26. Can I use Wine to port my Win32 sources to Unix?

That is the idea of Winelib. Right now you may have some difficulties,
but this should change soon.

27. Will MFC work with Wine? What do I need to do?

Work is underway to support this.

28. Are there any commercial applications which have been ported using
Wine?

At this time, Corel's WordPerfect Office Suite and Deneba's Canvas 7
are known to use Winelib.

29. How can I detect Wine?

You shouldn't need to. If there's a quirk in Wine you need to work
around, it's better to fix it in Wine.

Becoming a Wine developer

30. How do I become a Wine developer? What do I need to know?

If you can program C, that's a good start. Download the sources via
CVS, subscribe to the mailing lists, look around the source, and pay
attention to the comp.emulators.ms-windows.wine newsgroup and the
mailing lists. See if there's anything that you think you can fix or
work on. You won't have much trouble finding areas that need work in
Wine (grep for FIXMEs in the source).

About this FAQ

31. How recent is this FAQ? Where can I get the latest version?

This document was last edited Fri Jul 21 11:43:09 EDT 2000. It is
available from http://www.winehq.com/faq.html.

32. Who maintains this FAQ? What's its history? How do I submit additions?

Dave Gardner maintained it from 1995-1998. Douglas Ridgway
, the current maintainer, took it over in 1999.
Proposed new questions should be sent to him.

33. What's the copyright on this FAQ? How may I use it?

The original Wine FAQ, which this FAQ was based on, was copyright ©
1995-1998 David Gardner. It may be reproduced and modified under the
same terms as Wine itself.

Capabilities

34. Which programs does Wine currently run?

Please see the Apps database.

35. Are there programs which Wine will never be able to run?

Wine is designed to allow applications to run, and implements an
application programming interface. It is not designed to interface
directly with hardware, which is the responsibility of the underlying
operating system. Wine does not in general allow using Windows drivers
under Unix. That said, Wine has been used to support parallel devices,
such as parallel port scanners for which no Unix driver is available.

36. Can I use Wine to access my Winmodem?

No. These are usually cheap DAC/ADC boards that comes with software
that consumes some of the processing power of your main CPU instead of
letting the hardware do its own job of decoding/encoding the acoustic
signals that carries data over the phone line. The software drivers use
VxDs to access the hardware, which brings us to the previous question,
above.

See http://www.linmodems.org/ instead.

37. Will MS Windows programs typically run faster or slower under UNIX and
Wine than they do under DOS and MS Windows? Will certain kinds of
programs run slower or faster?

When work on Wine is completed, programs should typically run at about
the same speed under Wine as they do under DOS and MS Windows.
Currently, there are debugging features built into each release, and
this slows down the execution of programs. However, these debugging
features will be removed for any post-development releases.

38. Are there any advantages or disadvantages to running MS Windows
applications under Wine that I should be aware of?

As with OS/2, you will be running MS Windows programs under a protected
mode operating system, which brings certain advantages (and some
disadvantages).

For instance, there will be crash protection. That is, each MS Windows
application running under Wine will be running in its own X window and
its own portion of reserved memory. If one MS Windows application
crashes, it will not crash the other MS Windows or UNIX applications
that you may have running at the same time.

However, be aware that some applications are broken and they access
memory that they haven't properly (or at all) allocated. Under OS/2 or
Wine, they will crash. Under MS Windows, they may work for a period of
time, but then eventually you will have to reboot the machine.

Also, MS Windows programs should run at about the same speed under Wine
as they do under MS Windows.

When Wine is finished, you will be able to run your favorite MS Windows
applications in a UNIX environment. However, be aware that any
application written for MS Windows will run much less efficiently than
its native UNIX cousin. For Linux, there is a database of such
applications at the Linux Apps Page.

39. Will Wine support MS Windows networked applications that use
winsock.dll?

Yes, Wine does support such applications, more so the 16-bit than the
32-bit version of winsock. Working applications include Agent (a Usenet
newsreader), mIRC, ws-FTP and Internet Explorer.

40. I'm a software developer who wants to use UNIX to develop programs
rather than DOS, but I need to write DOS and MS Windows programs as
well. Will I be able to run my favorite DOS and/or MS Windows compilers
under Wine?

Wine now supports DOS applications natively, which means that you might
be able to run command-line utilities. Some have reported success in
running (to varying degrees of success) various C++ compilers, and the
Borland Dephi and Turbo Pascal for Windows compilers. Others have
reported success in running the Borland C++ 5.0 command line compiler
(bcc) as well as some of the debugging tools in the MS SDK, but these
compilers' IDEs generally do not run yet.

What You Need to Run Wine

41. Under what hardware platform(s) and operating system(s) will Wine run?

Wine is being developed specifically to run on the Intel x86 class of
CPUs under certain UNIXes that run on the x86 platform. UNIXes
currently being tested for Wine compatibility include Linux, FreeBSD,
and Solaris x86. NetBSD, OpenBSD, Unixware, and SCO OpenServer 5 worked
at one time, but Wine now requires kernel-level threads which are not
currently available (or understood by the Wine team) in those
platforms. The Wine development team hopes to attract the interest of
other commercial UNIX and UNIX clone vendors as well.

There are side efforts underway to port Wine to the Alpha, OS/2, and
BeOS platforms. You can find out more information about the OS/2 port
at http://www.winehq.com/wine/documentation/wine_os2

42. What minimum CPU must I have in my computer to be able to run Wine and
MS Windows applications smoothly?

Wine won't run on any x86 CPU less than an 80386. It is known to also
work in the 80486 and Pentium CPUs. Beyond that, the basic test is, if
you can run X11 now, you should be able to run Wine and MS Windows
applications under it. As always, the faster your CPU, the better.
Having a math coprocessor is unimportant. However, having a graphics
accelerated video card supported by X will help greatly.

43. How much disk space will the Wine source code and binaries take on my
hard drive? What other software do I need to have installed to compile
and run Wine?

You need approximately 220 megabytes of free hard drive space to store
and compile the source code. Wine also needs about 18 megs in your /tmp
directory.

Many development tools need to be installed in order to compile Wine. A
list of required packages for several distributions is included in the
README.

To run Wine, you will need the following:
o The compiled Wine binary
o A properly configured wine.conf file (or ~/.winerc file)
o An installed and working X Window system
o Some MS Windows programs to test

44. How much RAM do I need to have on my UNIX system to be able to run Wine
and MS Windows applications smoothly?

If you can run X smoothly on your UNIX system now, you should be able
to run Wine and MS Windows applications just fine too. A typical Wine
workstation should realistically have at least 16 megabytes of RAM and
a 16 megabyte swap partition. More is better, of course. You can run
Wine with 8/8, but it is not recommended. If you wish to be part of the
development team and program Wine itself, be aware that the new
debugger is rather memory intensive. Some have suggested that 64
megabytes is the minimum RAM needed for Wine development, although some
are able to work (albeit slowly) with 24 megabytes of physical RAM and
lots of swap space.

45. I have a Drivespaced, Doublespaced or Stackered DOS partition. Can Wine
run MS Windows binaries located in such a partition?

Yes, but only if the operating system supports mounting those types of
drives.

There is a Linux filesystem driver called dmsdos that will allow
read/write access through Doublespaced and Drivespace 1.0 drives. More
specifically, it supports mounting DOS 6.0 and 6.2 Doublespaced, DOS
6.22 Drivespaced, and Windows 95 Doublespaced compressed partitions
(read and write access works fine, but write access is slow). It can be
found at ftp://metalab.unc.edu/pub/Linux/system/filesystems/dosfs/.

46. Do I need to have a DOS partition on my system to use Wine? Does MS
Windows need to be loaded into that partition in order to run MS
Windows programs under Wine?

Unlike Wabi, you do not need a licensed and installed copy of DOS or MS
Windows to install, configure and run Wine. However, Wine has to be
able to 'see' an MS Windows binary if it is to run it.

Some folks have successfully installed and run some small programs in
their UNIX filesystem without having a DOS partition or MS Windows.
However, not all programs will work this way yet. Some applications'
installation programs want to distribute some of the package's files
into the /windows and /windows/system directories in order to run, and
unless these exist on your UNIX filesystem, those programs will not
install correctly and probably will not run well, if at all.

If you have a DOS partition with MS Windows installed in it, make sure
that your UNIX system can 'see' this partition (check your /etc/fstab
file or mount the partition manually) so that Wine can run the MS
Windows binaries located in the DOS partition.

When it is finished, Wine will not require that you have a DOS
partition on your system at all, meaning that you will not need to have
MS Windows installed either. Wine programmers will provide an
application setup program to allow you to install your MS Windows
programs straight from your distribution diskettes or CDs onto your
UNIX filesystem, or from within your UNIX filesystem if you ftp an MS
Windows program over the Internet.

To run without a DOS partition, you need to set a UNIX path to be your
drive C, and make sure that the /windows and /windows/system
directories point to some place that actually exist. Here's an example,
copied from a machine which has no DOS partition but successfully runs
Wine

[Drive C]
Path=/var/lib/wine
Type=hd
Label=MS-DOS
Filesystem=win95

[wine]
Windows=c:\windows
System=c:\windows\system
Temp=e:\
Path=c:\windows;c:\windows\system;c:

In /var/lib/wine/windows, you will need to install a win.ini config
file that you might find on a typical MS Windows 3.1 machine. The
directory /var/lib/wine/windows/system should exist, but doesn't need
to contain anything. However, to use MS DLLs, you can copy them into
that directory.

If you have DOS/MS Windows installed on your system, you can mount that
partition at bootup by modifying the file /etc/fstab in your UNIX
partition. If you edit this file by hand, it should contain something
similar to the following

/dev/hda1 /dosc msdos uid=0,gid=100,umask=007 0 0

This will allow you to read and write to the DOS partition without
being root.

47. If Wine completely replaces MS Windows, will it duplicate all of the
functions of MS Windows?

Most of them, yes. However, some applications and applets that come
with MS Windows, such as File Manager and Calculator, can be considered
by some to be redundant, since 32-bit UNIX programs that duplicate
these applets' functions already exist.

48. Will I be able to install MS Windows applications in any flavor of a
UNIX filesystem?

Wine is written to be filesystem independent, so MS Windows
applications will install and run under any filesystem supported by
your brand of UNIX.

49. Will Wine run only under X, or can it run in character mode?

Most of Wine's development effort is geared against MS Windows' GUI,
but some limited support for character mode has appeared, by setting
GraphicsDriver=ttydrv in wine.conf's [wine] section.

50. Will Wine run under any X window manager? Does it require a window
manager at all?

Wine is window manager independent, so the X window manager you choose
to run has no bearing on your ability to run MS Windows programs under
Wine. Wine uses standard X libraries, so no additional ones are needed.
Wine has its own window management, which acts like MS Windows. It can
be turned off to use the native window manager with the -managed
command-line switch.

51. Will 32-bit Windows 95/98 applications run under Wine?

Yes, 32-bit programs are now about as well supported as 16-bit
programs.

52. What about NT specific programs, which use NT-only features?

These are only poorly supported.

How to Find, Install, Configure and Run Wine

53. Where can I get Wine?

Because of lags created by using mirror, word of this newest release
may reach you before the release is actually available at the ftp sites
listed here. The sources are available from the following locations:
o ftp://metalab.unc.edu/pub/Linux/ALPHA/wine/development/
o ftp://tsx-11.mit.edu/pub/linux/ALPHA/Wine/development/
o ftp://ftp.infomagic.com/pub/mirrors/linux/sunsite/ALPHA/wine/development/
o ftp://ftp.progsoc.uts.edu.au/pub/Wine/development/

It should also be available from any site that mirrors tsx-11 or
metalab (formerly sunsite).

Some of these ftp sites may archive previous versions of Wine as well
as the current one. To determine which is the latest one, look at the
distribution filename, which will take the form Wine-YYMMDD.tar.gz.
Simply replace YYMMDD in the distribution filename with the numbers for
year, month and date, respectively. The latest one is the one to get.

Wine binary packages are available for several OS'es and distributions.
See http://www.winehq.com/download.html for the most recent list.

Current Wine sources are also available via anonymous client/server
CVS. You will need CVS 1.9 or above. If you are coming from behind a
firewall, you will either need a hole in the firewall for the CVS port
(2401) or use SOCKS. To login to the CVS tree, do

export CVSROOT=:pserver:cvs@cvs.winehq.com/home/wine
cvs login

Use "cvs" as the password (without the quotes). Note that /home/wine is
a path on the server, not on your machine.

To check out the entire Wine source tree (which may be slow), use

cvs -z 3 checkout wine

or if you just want a subtree, or individual file, you can do that too
with

cvs -z 3 checkout wine/ANNOUNCE

Be aware, though, that getting the entire Wine source tree via CVS is
pretty slow, especially compared to getting Wine from an FTP mirror
near you.

Patch files are also available, so that you don't have to download,
install and configure the entire distribution each week if you are
current to the previous release. Patch file release names follow the
same numbering convention as do the general releases, and take the form

Wine-YYMMDD.diff.gz

Patch files are available from the same sites that distribute the full
release. To upgrade to a new release by using a patch file, first cd to
the top-level directory of the release (the one containing the README
file), then do a "make clean", and patch the release with

gunzip -c patch-file | patch -p1

where patch-file is the name of the patch file something like
Wine-YYMMDD.diff.gz. You can then re-run ./configure, and then run make
depend && make.

If you are mirroring the Wine distribution from the tsx-11 site and
wish to be listed here in this FAQ, please send email to the FAQ
author/maintainer at webmaster@winehq.com

54. If I do not have an Internet account, how can I get Wine?

Some CD-ROM archives of Internet sites, notably those from Walnut Creek
that archive ftp.cdrom.com and metalab.unc.edu, may include some
versions of Wine on their CD releases. However, the age of these
distributions should always be questioned, as the 'snapshot' of the ftp
site may have been taken anywhere from 1-4 months (or more) prior to
the CD's pressing date.

Your best bet to get the very latest distribution of Wine, if you do
not have your own Internet account, is to find a friend who does have
an Internet account, and have him/her ftp the necessary file(s) for
you. Unfortunately, since the Wine source no longer fits on a 1.44 MB
floppy, you'll have to figure out some way to transfer the file to your
computer.

If you have an email account on a BBS that can reach the Internet
through a gateway, you may be able to use 'email ftp' to get the Wine
release sent to you; check with your BBS system operator for details.

55. How do I install Wine on my hard drive?

Just un-gzip and un-tar the file, and follow the instructions contained
in the README file that will be located in the base Wine directory.

56. How do I compile the Wine distribution source code?

See the README for instructions. Additionally, you may want to set the
TMPDIR environment variable TMPDIR=~/tmp or TMPDIR=/tmp (if you are
root)

57. How do I configure Wine to run on my system?

Wine requires that you have a file called usr/local/etc/wine.conf (you
can supply a different filename when configuring wine) or a file called
.winerc in your home directory. The format of this file is explained in
the wine.conf man page . The file wine.ini contains a config file
example. More explicit directions can be found in the README file that
will be located in the base Wine directory after you ungzip and untar
the distribution file.

58. How do I run an MS Windows program under Wine?

When invoking Wine, you must specify the entire path to the executable,
or by filename only.

For example to run Windows' solitaire, type any of the following:
o wine sol or wine sol.exe (using the search path to locate the
file)
o wine c:\\windows\\sol.exe (using a DOS filename)
o wine /usr/windows/sol.exe (using a UNIX filename)

The path of the file will also be added to the path when a full name is
supplied on the command line.

59. I have installed and configured Wine, but Wine cannot find MS Windows
on my drive. Where did I go wrong?

If you have a DOS partition, first make sure that you have mounted it,
either by putting the entry into [tt /etc/fstab], or by manually
mounting it. Remember too that unless your version of UNIX can see
through it, or you are running a utility that can see through it, your
DOS partition must not be located on a Drivespaced, Doublespaced or
Stackered partition, as neither Linux, FreeBSD, NetBSD or Wine can
natively 'see' files located in these compressed DOS partitions.

Check your path statements in the wine.conf file. No capital letters
may be used in paths, as they are automatically converted to lowercase.

60. I'm running a DirectX game, but the graphics is slow, how can I speed
it up?

If you're using XFree86, you can take advantage of DGA. You must have
rw access to /dev/mem to do this. On many distributions, you can add
yourself to the kmem group. Otherwise, you have to change /dev/mem
permissions, or even play as root.

61. I think I've found a bug. How do I report this bug to the Wine
programming team?

Bug reports should be posted to the newsgroup
comp.emulators.ms-windows.wine. See documentation/bugreports for a list
of what to include. This means at least the following:
o The Wine version tested
o The MS Windows program name and, if possible, the version number
of the software tested
o A brief description of the bug
o The relevant part(s) of the output of the Wine debugger

62. I was able to get various MS Windows programs to run, but parts of them
do not work. What is wrong?

Wine is not complete at this time, so some of each programs' features
may not work. They will in time as more of the MS Windows API calls are
included in Wine.

63. I have run various MS Windows programs, but since the program menus do
not work, how can I exit these programs?

Kill the xterm shell window that you called up to run your MS Windows
program, and the X window that appeared with the program will be killed
too.

64. How do I remove Wine from my computer?

All you have to do is to type

rm -fR \[/path/\]Wine*

Make sure that you specify the exact path when using the powerful 'rm
-fR' command. If you are afraid that you might delete something
important, or might otherwise delete other files within your
filesystem, cd into each Wine subdirectory singly and delete the files
found there manually, one file or directory at a time. Neither the Wine
developers and programmers, nor the Wine FAQ author/maintainer, can be
held responsible for your deleting any files in your own filesystem.

How to Get Help with Wine

65. Is there a Usenet newsgroup for Wine?

Yes, and it's called comp.emulators.ms-windows.wine. The newsgroup
serves as a place for developers to discuss Wine, and for minor
announcements for the general public. Major announcements will be
crossposted to other appropriate newsgroups, such as the following
comp.os.linux.announce comp.windows.x.announce comp.emulators.announce
If your Usenet site does not carry these newsgroups, please urge your
ISP's sysadmin and/or uplink to add them.

66. Is there a World Wide Web site for Wine?

Here are a few
o WineHQ The official site.
o http://www.qbc.clic.net/~krynos/wine_en.html

If you are installing or maintain a WWW page pertaining to Wine that
you feel would be useful for others to read, please inform the FAQ
author/maintainer at webmaster@winehq.com.

How You Can Help with the Wine Project

67. How can I help contribute to the Wine project, and in what way(s)?

You can contribute programming skills, or monetary or equipment
donations, to aid the Wine developers in reaching their goals. To find
out who, what, where, when and why, please post your desire to
contribute to the newsgroup comp.emulators.ms-windows.wine

68. I want to help beta test Wine. How can I do this?

Beta testers are currently not needed, as Wine is still Alpha code at
this time. However, anyone is welcome to download the latest version
and try it out at any time.

69. I have written some code that I would like to submit to the Wine
project. How do I go about doing this?

Patches are greatly appreciated and should be submitted to the
wine-patches mailing list. Also see this page for a description of what
happens to submitted patches.

Who's Responsible for Wine?

70. Who is responsible for writing and maintaining the Wine source code?

Wine is available thanks to the work of many people. Please see the
file AUTHORS in the distribution for the complete list.

71. Who are the folks and organizations who have contributed money or
equipment to the Wine project?

People and organizations who have given generous contributions of
money, equipment, or licenses, include
o David L. Harper
o Bob Hepple
o Mark A. Horton
o Kevin P. Lawton
o the Syntropy Institute
o James Woulfe
o vmWare Inc.
o Corel

------------------------------------------------------------------------

Home | News | About | Download | Documentation | Tools | References
Others | Links | Development | Bugs | Applications | Projects | Contributing
------------------------------------------------------------------------

info@winehq.com

Read more ...