
This file tries to summarize the questions that I've been responding over
and over. It is meant to save some time to both you and me :)

If your problem with gpm isn't described here, feel free to ask me by
Email.

--
    __ o La forza dei forti sta nel traversare le traversie con occhio sereno
   _`\<,                                                        (Paperino)
__( )/( )__     rubini@prosa.it  +39-382-529554


===========================================================================
Q: Compilation fails with

	yacc  gpm-root.y
	make: /usr/bin/make: cannot execute binary file
	make: *** [gpm-root.c] Error 126

---------------------------------------------------------------------------
A: This is a typical error (I've got several of them reported), though
   not related to gpm.

   It looks like you have an old slackware installation, like mine, or
   another faulty setup. I've been reported that slackware-3 is wrong
   as well.

   The 'yacc' executable is a shell script that calls bison, and it
   lacks the '#!/bin/sh' line (or has it incorrect, missing the
   '!'). I don't remember the details, but while it runs under your
   shell, it can't be executed under make. I looked in the binfmt
   sources in the kernel, and /bin/sh doesn't appear explicitly, so
   you must fix the first line in the 'yacc' script, and everything
   should go fine.

   Note however that the server has already been compiles. Only the
   gpm-root client, written with yacc, is affected by this problem.

===========================================================================
Q: My serial mouse works in X with ms protocol, but behaves erratically
   with gpm on the text console, and I get involuntary pastes.

---------------------------------------------------------------------------
A: Many ms protocol mice equipped with three buttons use an extension
   to the protocol, which consists in repeating events (thus with no
   effect under the normal protocol) to signal a change in the middle
   button.  Unfortunately, some old true-ms protocol mice do repeat
   events, thus triggering the middle-button in gpm.

   If you're running your mouse with ``-t ms'', you'd better try ``-t
   bare'', which is the unadorned ms protocol of the old days. My
   choice to use the third-button extension as the default, was taken
   because a true ms protocol doesn't repeat event notification, and
   because many three button mice feature the extension.

===========================================================================
Q: I have a serial mouse. It works fine except that when I try to drag
   the mouse with the middle button pressed, gpm assumes that the middle
   button has been released. Dragging with the other buttons works just
   fine.

---------------------------------------------------------------------------
A: You are probably running your mouse with ``-t ms''. In this mode
   dragging with the middle button has been deliberately disabled in
   order to prevent problems with faulty mice that fail to report
   middle-button events during mouse motion.

   Try using ``-t ms+'' or ``-t ms+lr'' instead.

===========================================================================
Q: My mouse gets into a state where it thinks the middle button is up
   when it's down and vice versa.

---------------------------------------------------------------------------
A: Your mouse uses an extension to the m$ protocol in order to report
   the middle button. It sends empty events (i.e., no-motion &
   no-button-change) in order to report a change in the status of the
   middle button.

   Unfortunately many devices that report middle-button events in this
   way often fail miserably to report them correctly during mouse
   motion. Since the protocol does not distinguish between the button
   going up and the button going down it can easily get out of step
   with reality.

   There are two solutions: either use ``-t ms'', which disallows
   dragging with the middle button, so you can get back to normal
   simply by moving the mouse without any buttons pressed; or (probably
   better) use ``-t ms+lr'', which allows you to reset the state of
   the middle button by pressing the other two buttons together. (If
   you want you can also deliberately get gpm out of step with reality
   by pressing the left and right buttons while holding the middle
   button!)

   Note that there are many more faulty mice in the world than
   non-faulty ones so you will probably will have to use ``-t ms+lr''
   rather than ``-t ms+''.

   Note also that most 3-button mice that use the microsoft protocol can
   be made to use the MouseSystems protocol instead. You might want to
   read about this in the ``3 Button Serial Mouse mini-HOWTO''.

===========================================================================
Q: My mouse doesn't sense the middle button in X, while it works with
   gpm.

---------------------------------------------------------------------------
A: Gpm uses a different decoder (see the previous two answers). You
   can use the ``-R'' option to repeat mouse data to X (look at the man
   page).

===========================================================================
Q: I have a busmouse, and I have the single-open problem. Is there any
   way around it?

---------------------------------------------------------------------------
A: Try the -R option of gpm (look at the man page)

===========================================================================
Q: I run "-t ms", and I get double-paste when I press the middle button.
   Is there any workaround?

---------------------------------------------------------------------------
A: Try "-t mman" instead.

===========================================================================
Q: I have one of the new devices of old dear Bill, and gpm doesn't work any
   more. What can I do?

---------------------------------------------------------------------------
A: Bill chose to use its own Plug-and-Pray specification, which finally
   managed to break what worked painlessly for ages.  The decoder for
   any gpm up to 1.12 (and also any X version being used at the time)
   is unable to deal with the new devices, which claim to be designed
   to work with older drivers. Try to use "-t pnp" instead of "-t ms"
   and see if it works with this gpm version. Actually, this version
   might even work with "-t ms" or "-t bare", but I'm not sure about
   it. If the version of X you run has problems, while gpm now works,
   try passing the "-R" option to gpm (see the man page).  Note that
   "-t pnp" is strongly discouraged, as any time the serial port is
   opened (for example when switching from X to text mode if "-R" is
   not active) it will take several seconds to be initialized -- a
   design misfeature of pnp. If either "-t ms" or "-t bare" work use
   them instead.
   
   If you are in the software field, you can enjoy the inaccuracies of
   the specs and design bugs directly from the originators:
   http://www.microsoft.com/hwdev/download/pnpcom.exe. You'll find the
   following, and more:
     - no support for real multitasking (the mouse driver must be able
           to keep hold of processor time for at least 1 second).
     - no pnp vendor will be able to support three buttons any more (no
           more mouse protocols, all mice must behave the same).
     - similary, only 1200 baud devices (any serial device) are supported,
           because the initialization string of pnp devices only tells
           the vendor and release, with no information about required
           port configuration.
     - people with UPS will have great troubles with ms software
           because the pnp probing sequence plays with DTR, and w95
           probes all serial ports.  This funny idea might turn off
           the UPS connected with your computer just after booting w95.

   Don't despair. They will manage to make worse designs later on.




