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 1. Installation / Compiling 2. Running problems 3. other questions =========================================================================== 1. Installation / Compiling =========================================================================== 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. =========================================================================== 2. Running problems =========================================================================== 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. --------------------------------------------------------------------------- Q: I have an old 386 computer around here and gpm is _really_ slow. Is there any way I can make it faster ? A: Go into src/headers/gpmCfg.h and look for DEF_CLUSTER. Change its values from 0 to 10. --------------------------------------------------------------------------- Q: gpm.conf is not accepted / does not work, but gpm works from command line. A: gpm.conf is not from gpm itself. Please contact your distrubtion support to clearify whats wrong. =========================================================================== 3. other questions =========================================================================== Q: I am gonna buy computer X, do I have any chance getting gpm running on it? A: a) If it does not work, you could at least try to port it ;) b) As report by a friend, gpm currently runs on Linux on - i386 - Alpha - ARM - PA-RISC - ia64 (Itanium) - PPC - m68k - MIPS - SPARC It's possible that you need some patches for some architecture.