mirror of https://github.com/tLDP/LDP
725 lines
33 KiB
Plaintext
725 lines
33 KiB
Plaintext
<!doctype linuxdoc system>
|
|
|
|
<article>
|
|
|
|
<title>The 3 Button Serial Mouse mini-HOWTO
|
|
<author>Geoff Short, <htmlurl url="mailto:geoff@kipper.york.ac.uk"
|
|
name="geoff@kipper.york.ac.uk">
|
|
<date>v1.33, 31 May 1998
|
|
<abstract>
|
|
How to get a 3 button serial mouse working properly under Linux.
|
|
</abstract>
|
|
|
|
<toc>
|
|
|
|
<sect>Disclaimer
|
|
|
|
<p>
|
|
The following document is offered in good faith as comprising only safe
|
|
programming and procedures. No responsibility is accepted by the author for
|
|
any loss or damage caused in any way to any person or equipment, as a direct
|
|
or indirect consequence of following these instructions.
|
|
|
|
<sect> Introduction
|
|
|
|
<p>
|
|
The most recent version of this document can always be found at
|
|
<htmlurl url="http://kipper.york.ac.uk/mouse.html"
|
|
name="http://kipper.york.ac.uk/mouse.html"><p>
|
|
There is a Japanese translation at
|
|
<htmlurl url="http://jf.gee.kyoto-u.ac.jp/JF/JF-ftp/euc/3-Button-Mouse.euc"
|
|
name="http://jf.gee.kyoto-u.ac.jp/JF/JF-ftp/euc/3-Button-Mouse.euc">;
|
|
and a French one at
|
|
<htmlurl url="http://www.freenix.fr/linux/HOWTO/mini/3-Button-Mouse.html"
|
|
name="http://www.freenix.fr/linux/HOWTO/mini/3-Button-Mouse.html">.
|
|
Other translations may be available - check your local LDP mirrors.<p>
|
|
|
|
Most X applications are written with the assumption that the user will
|
|
be working with a 3 button mouse. Serial mice are commonly used on
|
|
computers and are cheap to buy. Many of these mice have 3 buttons and
|
|
claim to use the Microsoft protocol, which in theory means they are
|
|
ideal for the X windows setup. (The record for the cheapest working
|
|
3 button mouse currently stands at $1.14!)<p>
|
|
|
|
Most dual-protocol mice will work in two modes:
|
|
<itemize>
|
|
<item>2-button Microsoft mode.
|
|
<item>3-button MouseSystems mode.
|
|
</itemize>
|
|
This document leads you through the different steps needed to configure your
|
|
mouse in these two different modes, especially the steps needed to use the
|
|
more useful 3-button mode.
|
|
|
|
<p>
|
|
As distributions become easier to set up, some of the problems ought to go away.
|
|
For instance, RedHat have a <tt>mouseconfig</tt> program to set things up for you.
|
|
However, some versions of RH5.0 had a bug in <tt>mouseconfig</tt>, so make
|
|
sure you check for patches.
|
|
|
|
<sect> Serial Ports
|
|
|
|
<p>
|
|
The first thing to do is to make sure the software can find the mouse.
|
|
Work out which serial port your mouse is connected to - usually this
|
|
will be <tt>/dev/ttyS0</tt> (COM1 under DOS) or <tt>/dev/ttyS1</tt>
|
|
(COM2). (<tt>ttyS0</tt> is usually the 9 pin socket, <tt>ttyS1</tt> the
|
|
25 pin socket, but of course there is no hard and fast rule about these
|
|
things.) There are also an equivalent number of <tt>/dev/cua</tt> devices,
|
|
which are almost the same as the <tt>ttyS</tt> ones, but their use is
|
|
now discouraged. For convenience make a
|
|
new link <tt>/dev/mouse</tt> pointing at this port. For instance,
|
|
for <tt>ttyS0</tt>:
|
|
|
|
<tscreen>
|
|
ln -s /dev/ttyS0 /dev/mouse
|
|
</tscreen>
|
|
|
|
<sect> Switched Mice <label id="switch">
|
|
|
|
<p>
|
|
Some mice, not usually the cheapest ones, have a switch on the bottom
|
|
marked `2/3'. Sometimes this may be `PC/MS'. In this case the `2'
|
|
setting is for 2 button Microsoft mode, and the `3' for 3 button
|
|
MouseSystems mode. The `PC/MS' switch is a bit more complicated. You
|
|
will probably find the `MS' setting is for Microsoft, and the `PC' is
|
|
for MouseSystems. You may find the `PC' setting described as ps/2
|
|
mode, but it should do MouseSystems as well. If you have such a mouse,
|
|
you can switch the switch to `3' or `PC', put the MouseSystems settings
|
|
in your XConfigs (see below) and the mouse should work perfectly in
|
|
3-button mode.<p>
|
|
|
|
<sect> Normal Mice
|
|
|
|
<p>
|
|
If you don't have any switches, and no instructions, then a little bit of
|
|
experimentation is needed.
|
|
The first thing to try is to assume the mouse maker is telling the truth,
|
|
and the mouse is full Microsoft. Set up your Xconfigs to expect a Microsoft
|
|
mouse (see the <htmlurl url="#config" name="Xconfig section">) and give it a try.<p>
|
|
|
|
If the mouse didn't work at all, then you don't have a Microsoft mouse, or
|
|
there is some other problem. Try the other protocols in the configs, the
|
|
man page for the config file is the best place to start looking. Also look
|
|
in the <htmlurl url="#misc" name="Miscellaneous Problems"> section below.
|
|
<p>
|
|
|
|
What you will probably find is that when you run X, the mouse works fine but
|
|
only the outer two buttons do anything. You can of course accept this,
|
|
and emulate the third button (press both buttons at once to click the
|
|
middle one) like you do with a two button mouse. To do this, change your
|
|
Xconfig file as shown in the <htmlurl url="#config" name="Xconfig example">
|
|
section below. This may mean you
|
|
have bought a 3 button mouse for no good reason, and you are certainly
|
|
no further forward. So, now you need to look at your hardware.<p>
|
|
|
|
<sect> Switching a Mouse to 3-Button Mode
|
|
|
|
<p>
|
|
Even cheap mice can also work under the Mouse Systems protocol, with all
|
|
three buttons working. The trick is to get the mouse to think it's a
|
|
Mouse Systems one, something you rarely see in your instructions.
|
|
|
|
<itemize>
|
|
<item>Before you power up your computer, hold down the left mouse button
|
|
(and keep it held down until it has booted to be on the safe side).
|
|
</itemize>
|
|
|
|
When the mouse first gets power, if the left button is held down it switches into
|
|
Mouse Systems mode. A simple fact, but not always publicised. Note that a soft
|
|
reboot of your computer may not cut the mouse power and therefore may not
|
|
work. There are a
|
|
number of other ways of switching the mode, which may or may not work with
|
|
your particular mouse. Some of these are less drastic than rebooting your
|
|
computer, two are more so!
|
|
|
|
<itemize>
|
|
<item>If your computer is get-at-able you can unplug the mouse
|
|
and plug it back in with the button held down (although you shouldn't
|
|
normally plug things in to a live computer, the RS232 spec says it is OK).
|
|
<item>You may be able to reset the mouse by typing
|
|
<tt>echo "*n" > /dev/mouse</tt>, which should have the same effect
|
|
as unplugging it. Hold the left button down for Mouse Systems mode, not for
|
|
Microsoft. You could put this in whatever script you use to start X up.
|
|
<item>Bob Nichols (rnichols@interaccess.com) has written a small c
|
|
program to do the same thing, which may work if <tt>echo "*n"</tt> does
|
|
not (and vice versa). You can find a copy of his source code at
|
|
<htmlurl url="http://kipper.york.ac.uk/src/fix-mouse.c"
|
|
name="http://kipper.york.ac.uk/src/fix-mouse.c">
|
|
<item>Someone has reported that the `ClearDTR' line in the Xconfig is enough
|
|
to switch their mouse into Mouse Systems mode.
|
|
<item>If you are brave enough, open the mouse up (remember that this will
|
|
invalidate your warranty) and have a look inside. In some cases, the mouse
|
|
may have a switch inside,
|
|
for some strange reason known only to the manufacturer. More likely on
|
|
the cheap mice is a jumper which you can move. The switch or jumper may have
|
|
the same effect as a `MS/PC' switch described in the <ref id="switch"
|
|
name="Switched Mice section"> above.
|
|
You may find that the circuit board is designed for a switch
|
|
between 2 & 3 buttons, but it hasn't been fitted. It will look something
|
|
like:
|
|
<tscreen><verb>
|
|
-----------
|
|
| o | o | o | SW1
|
|
-----------
|
|
1 2 3
|
|
</verb></tscreen>
|
|
Try linking pins 1-2 or 2-3, and see if it changes the behaviour of the mouse.
|
|
If it does, you can either fit a
|
|
small switch, or solder across the contacts for a quick and permanent
|
|
solution.
|
|
|
|
<item>Another soldering solution which might be a last-resort for mice which
|
|
don't understand MouseSystems at all, from Peter Benie
|
|
(<htmlurl url="mailto:pjb1008@chiark.chu.cam.ac.uk"
|
|
name="pjb1008@chiark.chu.cam.ac.uk">). If the middle button's switch is
|
|
double-pole, connect one side of the
|
|
switch to the left button's switch, and the other side to right
|
|
button's switch. If it's not a double pole switch then use diodes rather
|
|
than wire. Now, the middle
|
|
button pushes the left and right buttons down together. Select
|
|
<tt>ChordMiddle</tt> in the XF86Config and you have a working middle button.
|
|
|
|
<item>The ultimate recourse with the soldering iron was first described to me by
|
|
Brian Craft (<htmlurl
|
|
url="mailto:bcboy@pyramid.bio.brandeis.edu"
|
|
name="bcboy@pyramid.bio.brandeis.edu">). Two common
|
|
generic mouse chips are the 16 pin <bf>Z8350</bf>, and the 18
|
|
pin <bf>HM8350A</bf>. On each of these chips, one pin controls the mode of the chip,
|
|
as follows.
|
|
<tscreen><verb>
|
|
Pin 3 Mode
|
|
----- ----
|
|
Open Default Microsoft. Mouse Systems if a button is held on power-up.
|
|
GND Always Mouse Systems.
|
|
Vdd Always Microsoft.
|
|
</verb></tscreen>
|
|
(Pins are numbered as follows:)
|
|
<tscreen><verb>
|
|
____
|
|
pin1 -| \/ |-
|
|
pin2 -| |-
|
|
pin3 -| |-
|
|
-| |-
|
|
-| |-
|
|
-| |-
|
|
-| |-
|
|
pin8 -|____|-
|
|
</verb></tscreen>
|
|
(This info comes courtesy of Hans-Christoph Wirth, and Juergen Exner, who
|
|
posted it to de.comp.os.linux.hardware) You can solder a link between
|
|
pin 3 and gnd, which will fix the mouse into MouseSystems mode.<p>
|
|
|
|
<itemize>
|
|
<item>Peter Fredriksson (<htmlurl url="mailto:peterf@lysator.liu.se"
|
|
name="peterf@lysator.liu.se">)
|
|
has tried the SYSGRATION <bf>SYS2005</bf> chip, and found that linking Pin 3 to Gnd
|
|
forced Mouse System mode.
|
|
<item>Uli Drescher (<htmlurl url="mailto:ud@digi.ruhr.de"
|
|
name="ud@digi.ruhr.de">) confirms it works on an <bf>HN8348A</bf> chip;
|
|
Ben Ketcham (<htmlurl url="bketcham@anvilite.murkworks.net" name="bketcham@anvilite.murkworks.net">)
|
|
confirms the <bf>HM8348A</bf> (Pin 9 is Gnd).
|
|
<item>Urban Widmark (<htmlurl url="mailto:ubbe@ts.umu.se" name="ubbe@ts.umu.se">)
|
|
says the same applies to the <bf>EC3567A1</bf> chip, where Pin 8
|
|
is ground. I've tried it as well and it works fine.
|
|
<item>Timo T Metsala (<htmlurl url="mailto:metsala@cc.helsinki.fi" name="metsala@cc.helsinki.fi">)
|
|
has found that on the <bf>HT6510A</bf> chip pin 3 is mode select, pin 9 is Gnd. The
|
|
same works for the <bf>HT6513A</bf> chip. Holtek also make <bf>HT6513B</bf> and <bf>HT6513F</bf>
|
|
chips - on these, pin 8 is Gnd.
|
|
<item>Robert Romanowski (<htmlurl url="mailto:robin@cs.tu-berlin.de" name="robin@cs.tu-berlin.de">)
|
|
says pin 3 - pin 8 (Gnd) works on an <bf>EM83701BP</bf> chip too.
|
|
<item>Robert Kaiser (<htmlurl url="mailto:rkaiser@sysgo.de" name="rkaiser@sysgo.de">)
|
|
confirms that pin 3 - Gnd works on a <bf>EC3576A1</bf> chip too.
|
|
<item>Sean Cross (<htmlurl url="mailto:secross@whidbey.com" name="secross@whidbey.com">)
|
|
found it was pin 2 - pin 7 (Gnd) on a <bf>HM8370GP</bf> chip.
|
|
<item>Peter Fox (<htmlurl url="fox@roestock.demon.co.uk" name="fox@roestock.demon.co.uk">)
|
|
used pin 3 - pin 8 on a <bf>HM8348A</bf> chip.
|
|
<item>Jon Klein (<htmlurl url="jbklein@mindspring.com" name="jbklein@mindspring.com">)
|
|
found pin 3 - pin 9 did the trick for a <bf>UA5212S</bf> chip.
|
|
</itemize>
|
|
<item>As an alternative to the above soldering methods, you can get the mouse to
|
|
hold it's own button down when booting: this circuit from
|
|
<htmlurl url="mailto:mkatzer@TechFak.Uni-Bielefeld.DE" name="Mathias Katzer">.
|
|
<tscreen><verb>
|
|
-----
|
|
--- R ---------O------ + Supply
|
|
| ----- | | C = 100nF capacitor
|
|
| | E | R = 100kOhm
|
|
| __ / | T = BC557 transistor
|
|
| / \ O
|
|
| B | #V | T /
|
|
|-----|-# | / Left button switch of the mouse
|
|
| | #\ | O
|
|
| \__/ |
|
|
--- \ C |
|
|
--- C ------O----------> (to somewhere deep inside the mouse)
|
|
|
|
|
### Ground
|
|
</verb></tscreen>
|
|
The test mouse was a no-name model MUS2S - whether this works in other mice
|
|
depends on the circuit of the mouse; if the
|
|
switch is connected to ground and not to +Supply, an npn-transistor like the
|
|
BC547 should work; R and C have to be swapped then, too.
|
|
</itemize>
|
|
<p>
|
|
So there you have it, the choice is yours. Stick with the default
|
|
Microsoft two buttons, or work out how to switch the mode and set X
|
|
up to take advantage of this.
|
|
|
|
<sect>Wheeled mice <label id="wheel">
|
|
|
|
<p>
|
|
Mice with wheels have emerged in the last few years, starting with the
|
|
Microsoft Intellimouse and spreading to other manufacturers. The wheel can
|
|
be clicked like a button, or rolled up and down.
|
|
Far and away the best reference for information is
|
|
<htmlurl url="http://www.inria.fr/koala/colas/mouse-wheel-scroll/" name="http://www.inria.fr/koala/colas/mouse-wheel-scroll/">
|
|
which describes how to get lots of X applications to recognise the
|
|
scrolling action.
|
|
|
|
<p>
|
|
In general, you'll need a fairly new Xserver to use the scrolling action,
|
|
but some older servers will recognise the clicking actions. For instance,
|
|
the Intellimouse is supported by XFree 3.3.1 and later.
|
|
|
|
<sect>Using gpm to Switch Mouse Modes <label id="gpm">
|
|
|
|
<p>
|
|
<tt>gpm</tt> is the program that lets you use the mouse in console mode. It is
|
|
usually included in linux distributions, and can be started from the
|
|
command line or in the startup script <tt>/etc/rc.d/rc.local</tt>.
|
|
Note that distributions don't always have the most recent version
|
|
(1.13 at time of writing) which can be found on mirrors of sunsite.unc.edu.
|
|
|
|
<p>
|
|
The main modes for serial mice under gpm are:
|
|
<tscreen><verb>
|
|
gpm -t ms
|
|
gpm -t msc
|
|
gpm -t help
|
|
</verb></tscreen>
|
|
|
|
for Microsoft or MouseSystems modes, or to
|
|
probe the mouse for you and tell you what it found. To run gpm in
|
|
MouseSystems mode, you may need a <tt>-3</tt> flag, and possibly a
|
|
DTR option, using the <tt>-o dtr</tt> flag:<p>
|
|
<tscreen>
|
|
gpm -3 -o dtr -t msc
|
|
</tscreen>
|
|
|
|
<tt>gpm</tt> is often able to recognise all three buttons of the mouse
|
|
even in Microsoft mode. And newer versions (Version 1.0 and later (?))
|
|
can then make this information available to other programs. For this to
|
|
work, you need to run gpm with the -R tag, like this:
|
|
<tscreen>
|
|
gpm -R -t ms
|
|
</tscreen>
|
|
This will make gpm re-export the mouse data to a new device, called
|
|
<tt>/dev/gpmdata</tt>, which looks like a mouse to any other program.
|
|
Note that this device <bf>always</bf> uses the MouseSystems protocol.
|
|
You can then set your Xconfig to use this instead of <tt>/dev/mouse</tt>
|
|
as shown below, but of course you must ensure gpm is always running when
|
|
you use X. Some people have reported that some middle-button events
|
|
are not correctly interpreted by X using this technique, this may be
|
|
down to an individual mouse setup.<p>
|
|
|
|
|
|
<bf>Changing button mapping for gpm and X</bf>
|
|
(<htmlurl url="mailto:gustafso@math.utah.edu" name="gustafso@math.utah.edu">)<p>
|
|
|
|
<p>You may find that gpm uses different default button mappings to X, so
|
|
using both systems on the same machine can be confusing. To make X use
|
|
the same buttons for select and paste operations as gpm, use the X
|
|
command
|
|
|
|
<tscreen>
|
|
xmodmap -e "pointer = 1 3 2"
|
|
</tscreen>
|
|
which causes the left button to select and the right button to paste,
|
|
for either 2-button or 3-button mice.
|
|
To force gpm to use the X standard button mapping, start it with a
|
|
<tt>-B</tt> command, eg:
|
|
<tscreen>
|
|
gpm -t msc -B 132
|
|
</tscreen>
|
|
|
|
|
|
<sect> Using two mice
|
|
|
|
<p>
|
|
In some cases, for instance a laptop with a built-in pointing device,
|
|
you may wish to use a serial mouse as a second device. In most cases
|
|
the built-in device uses the PS/2 protocol, and can be ignored if
|
|
you don't wish to use it. Simply configure gpm or X to use <tt>/dev/ttyS0</tt>
|
|
(or whatever) as usual.<p>
|
|
|
|
To use both at once, you can use <tt>gpm -M</tt> to re-export the
|
|
devices. More details in the gpm man page. Also, XFree 3.3.1 and later
|
|
support muliple input devices, using the XInput mechanism. Auto-generated
|
|
XF86Config files should have the necessary comments in them.<p>
|
|
|
|
<sect> XF86Config and Xconfig file examples <label id="config">
|
|
|
|
<p>
|
|
The location of your configuration file for X depends on the particular
|
|
release and distribution you have. It will probably be either <tt>/etc/Xconfig,
|
|
/etc/XF86Config</tt> or <tt>/usr/X11/lib/X11/XF86Config.</tt> You should see which
|
|
one it is when you start X - it will be echoed to the screen before all
|
|
the options are displayed. The syntax is slightly different between the
|
|
XF86Config and Xconfig files, so both are given.
|
|
|
|
<p><bf>Microsoft Serial Mouse</bf></p>
|
|
<p>
|
|
<itemize>
|
|
<item>XF86config:
|
|
<tscreen><verb>
|
|
Section "Pointer"
|
|
Protocol "microsoft"
|
|
Device "/dev/mouse"
|
|
EndSection
|
|
</verb></tscreen>
|
|
<item>Xconfig:
|
|
<tscreen><verb>
|
|
#
|
|
# Mouse definition and related parameters
|
|
#
|
|
Microsoft "/dev/mouse"
|
|
</verb></tscreen>
|
|
</itemize>
|
|
|
|
<p><bf>Microsoft Serial Mouse with Three Button Emulation</bf></p>
|
|
<p>
|
|
<itemize>
|
|
<item>XF86config:
|
|
<tscreen><verb>
|
|
Section "Pointer"
|
|
Protocol "microsoft"
|
|
Device "/dev/mouse"
|
|
Emulate3Buttons
|
|
EndSection
|
|
</verb></tscreen>
|
|
<item>Xconfig:
|
|
<tscreen><verb>
|
|
#
|
|
# Mouse definition and related parameters
|
|
#
|
|
Microsoft "/dev/mouse"
|
|
Emulate3Buttons
|
|
</verb></tscreen>
|
|
</itemize>
|
|
|
|
<p><bf>MouseSystems Three Button Serial Mouse</bf></p>
|
|
<p>
|
|
<itemize>
|
|
<item>XF86config:
|
|
<tscreen><verb>
|
|
Section "Pointer"
|
|
Protocol "mousesystems"
|
|
Device "/dev/mouse"
|
|
ClearDTR # These two lines probably won't be needed,
|
|
ClearRTS # try without first and then just the DTR
|
|
EndSection
|
|
</verb></tscreen>
|
|
<item>Xconfig:
|
|
<tscreen><verb>
|
|
#
|
|
# Mouse definition and related parameters
|
|
#
|
|
MouseSystems "/dev/mouse"
|
|
ClearDTR # These two lines probably won't be needed,
|
|
ClearRTS # try without first and then just the DTR
|
|
</verb></tscreen>
|
|
</itemize>
|
|
|
|
<p><bf>Microsoft Serial Mouse with gpm -R</bf></p>
|
|
<p>
|
|
<itemize>
|
|
<item>XF86config:
|
|
<tscreen><verb>
|
|
Section "Pointer"
|
|
Protocol "MouseSystems"
|
|
Device "/dev/gpmdata"
|
|
EndSection
|
|
</verb></tscreen>
|
|
<item>Xconfig:
|
|
<tscreen><verb>
|
|
#
|
|
# Mouse definition and related parameters
|
|
#
|
|
MouseSystems "/dev/gpmdata"
|
|
</verb></tscreen>
|
|
</itemize>
|
|
|
|
<sect> Cables, extensions and adaptors
|
|
|
|
<p>
|
|
The only wires needed in a mouse cable are as follows: TxD and RxD for
|
|
data transfer, RTS and/or DTR for power sources, and ground. Translated
|
|
into pin numbers, they are:
|
|
<tscreen><verb>
|
|
9-pin port 25-pin port
|
|
TxD 3 2
|
|
RxD 2 3
|
|
RTS 7 4
|
|
DTR 4 20
|
|
Gnd 5 7
|
|
</verb></tscreen>
|
|
|
|
The above table may be of use if you wish to make adaptors between
|
|
9- and 25-pin plugs, or extension cables.<p>
|
|
|
|
<sect> Miscellaneous Problems and Setups <label id="misc">
|
|
|
|
<p>
|
|
<itemize>
|
|
<item>If you have trouble with your mouse in X or console mode, check you
|
|
are not running a getty on the serial line, or anything else such as a
|
|
modem for that matter. Also check for IRQ conflicts.
|
|
<item>It is possible that you need to hold down the left button when
|
|
booting X windows. Some systems may send some sort of signal or spike to
|
|
the mouse when X starts.
|
|
<item>Problems with serial devices may be due to the serial port not
|
|
being initialised correctly at boot. This is done by the
|
|
<tt>setserial</tt> command, run from the start-up script
|
|
<tt>/etc/rc.d/rc.serial.</tt> Check the man page for
|
|
<tt>setserial</tt> and the Serial-HOWTO for more details.
|
|
It may be worth a little experimentation with types, for instance
|
|
try <tt>setserial /dev/mouse uart 16550</tt> or <tt>16550a</tt>
|
|
regardless of what port you actually have. (For instance, mice don't
|
|
like the 16c550AF).
|
|
<item>The <tt>ClearDTR</tt> flag may not work properly on some systems,
|
|
unless you disable the RTS/CTS handshaking with the command:
|
|
<tscreen>stty -crtscts < /dev/mouse</tscreen>
|
|
(Tested on UART 16450/Pentium by Vladimir Geogjaev
|
|
<htmlurl url="mailto:geogjaev@wave.sio.rssi.ru" name="geogjaev@wave.sio.rssi.ru">)
|
|
<item>Logitech mice may require the line <tt>ChordMiddle</tt> to enable the
|
|
middle of the three buttons to work. This line replaces
|
|
<tt>Emulate3Buttons</tt> or goes after the <tt>/dev/mouse</tt> line
|
|
in the config file. You may well need the <tt>ClearDTR</tt> and
|
|
<tt>ClearRTS</tt> lines in your Xconfig. Some Logitech mice positively
|
|
do not need the <tt>ChordMiddle</tt> line - one symptom of this
|
|
problem is that menus seem to move with the mouse instead of scrolling
|
|
down. (From: <htmlurl url="mailto:chang@platform.com" name="chang@platform.com">)
|
|
<item>Swapping buttons: use the <tt>xmodmap</tt>
|
|
command to change which physical button registers as
|
|
each mouse click. eg: <tt> xmodmap -e "pointer = 3 2 1" </tt> will
|
|
turn round the buttons for use in the left hand. If you only have a
|
|
two-button mouse then it's just numbers 1 & 2.
|
|
<item>Acceleration: use the <tt>xset m</tt> command to change the mouse
|
|
settings. eg <tt>xset m 2 </tt> will set the acceleration to 2. Look
|
|
at the manpage for full details.
|
|
<item>Pointer offset: If the click action appears to be coming from
|
|
the left or right of where the cursor is, it may be that your screen
|
|
is not aligned. This is a problem with the S3 driver, which you may
|
|
be able to fix using xvidtune. Try <tt>Invert_VCLK/InvertVCLK,
|
|
or EarlySC.</tt>
|
|
This info from Bill Lavender
|
|
(<htmlurl url="mailto:lavender@MCS.COM" name="lavender@MCS.COM">) and Simon Hargrave.
|
|
In the XF86Config, it might look like this:<p>
|
|
<tscreen><verb>
|
|
Subsection "Display"
|
|
Modes "1024x768" "800x600" "640x480" "1280x1024"
|
|
Invert_VCLK "*" 1
|
|
...
|
|
</verb></tscreen>
|
|
<item>If you are getting `bouncing' of the mouse buttons, ie two clicks
|
|
when you only wanted one, there may be something wrong with the
|
|
mouse. This problem has been solved for Logitech mice by
|
|
Bob Nichols (<htmlurl url="mailto:rnichols@interaccess.com" name="rnichols@interaccess.com">) and involves soldering some
|
|
resistors and a chip in the mouse to debounce the microswitches.
|
|
|
|
<item>If some users cannot get the mouse to work but some (eg root) can,
|
|
it is possible that the users are not running exactly the same
|
|
thing - for instance a different version of X or a different Xconfig.
|
|
Check the X start-up messages carefully to make sure.
|
|
|
|
<item>If you find the mouse pointer is erasing things from your screen, you
|
|
have a server config problem. Try adding the option
|
|
<tt>linear</tt>, or maybe <tt>nolinear</tt> to the graphics card
|
|
section, or if it is a PCI board, the options
|
|
<tt>tgui_pci_write_off</tt> and <tt>tgui_pci_read_off</tt>.
|
|
(This seems to be a Trident Card problem.)
|
|
|
|
<item>If the mouse cursor doesn't show up on the screen, but otherwise seems
|
|
to be working, try the option <tt>"sw_cursor"</tt> in the Device
|
|
section of the config file.
|
|
|
|
<item>If your mouse stops working when its sunny or when you turn a light on,
|
|
it may be that the sensors are being swamped by light getting
|
|
through the case. You could
|
|
try painting the inside of the case black, or putting some card
|
|
in the top.
|
|
<item>Microsoft Brand mice are often a cause of problems. The newest ``Microsoft Serial Mouse
|
|
2.1A'' has been reported not to work on many systems, although unplugging it and plugging it
|
|
in again may help. <tt>gpm</tt> version 1.13 and higher should also
|
|
support 2.1A mice, using the <tt>pnp</tt> mouse type. (See the
|
|
<htmlurl url="#gpm" name="gpm section"> for how to re-export this.)
|
|
The ``Microsoft Intellimouse'' also
|
|
causes problems, although it should now be supported by XFree version 3.3 and later.
|
|
</itemize>
|
|
|
|
<sect> Models Tested
|
|
|
|
<p>
|
|
There are a lot of different mice out there, and I cannot honestly say that
|
|
you should go out and buy one rather than the other. What I can do is give
|
|
a list of what I think these mice do, based on experience and heresay.
|
|
Even with this information you should be a little cautious - we had two
|
|
identical mice in our office on two computers, some things worked on one and
|
|
not t'other!
|
|
Any additions to this list would be welcome.
|
|
|
|
<p>
|
|
<bf>Mouse Systems optical mouse, serial version</bf><newline>
|
|
Works well (as you might expect from the name!) without
|
|
ClearDTR or ClearRTS in the config.
|
|
<newline><bf>WiN mouse, as sold by Office World for eight quid.</bf><newline>
|
|
Standard dual-mode Microsoft/MouseSystems.
|
|
<newline><bf>Agiler Mouse 2900</bf><newline>
|
|
Standard dual-mode Microsoft/MouseSystems. SYSGRATION SYS2005
|
|
chip is solderable.
|
|
<newline><bf>Sicos mouse,</bf><newline>
|
|
Works ok, needs ClearDTR & Clear RTS in config.
|
|
<newline><bf>Index sell a mouse for 10 quid,</bf><newline>
|
|
Doesn't work in 3 button mode, but does have nice instructions :-)
|
|
<newline><bf>Artec mouse</bf><newline>
|
|
Usual dual-protocol mouse, needs `ClearDTR' set in config, NOT `ClearRTS'
|
|
<newline><bf>DynaPoint 3 button serial mouse.</bf><newline>
|
|
Usual dual-protocol mouse, needs `ClearDTR' AND `ClearRTS' in Xconfig.
|
|
<newline><bf>Genius Easymouse 3 button mouse</bf><newline>
|
|
Works fine with Mouseman protocol without the ChordMiddle parameter set.
|
|
From Roderick Johnstone (<htmlurl url="mailto:rmj@ast.cam.ac.uk" name="rmj@ast.cam.ac.uk">)
|
|
<newline><bf>Truemouse, made in Taiwan</bf><newline>
|
|
Works OK, needs `ClearDTR' in config. (From
|
|
<htmlurl url="http://ccn.cs.dal.ca/˜ae721/Profile.html" name="Tim MacEachern">)
|
|
<newline><bf>Champ brand mouse</bf><newline>
|
|
Needs to have switch in PC mode, which enables MouseSystems
|
|
protocol also. (From tnugent@gucis.cit.gu.edu.au)
|
|
<newline><bf>MicroSpeed mouse</bf><newline>
|
|
Usual dual-protocol mouse.
|
|
<newline><bf>Venus brand ($7)</bf><newline>
|
|
Has a jumper inside to switch between 2 and 3 button mode.
|
|
(From <htmlurl url="mailto:mhoward@mth.com" name="mhoward@mth.com ">)
|
|
<newline><bf>Saturn</bf><newline>
|
|
Switched mouse, works OK as MouseSystems in 3-button position.
|
|
(From <htmlurl url="mailto:grant@oj.rsmas.miami.edu" name="grant@oj.rsmas.miami.edu ">.)
|
|
<newline><bf>Manhattan mouse.</bf><newline>
|
|
Switch for `MS AM' / `PC AT' modes, MS mode works fine with
|
|
the <tt>gpm -R</tt> method. (From
|
|
<htmlurl url="mailto:komanec@umel.fee.vutbr.cz" name="komanec@umel.fee.vutbr.cz">).
|
|
<newline><bf>Inland mouse.</bf><newline>
|
|
Switch for `PC/MS' modes, works fine. (From
|
|
<htmlurl url="http://ptsg.eecs.berkeley.edu/˜venkates/" name="http://ptsg.eecs.berkeley.edu/˜venkates">).
|
|
<newline><bf>qMouse (3-button), FCC ID E6qmouse X31.</bf><newline>
|
|
Sells in the USA for about $10. Works with `gpm -t msc -r 20'.
|
|
No jumpers or
|
|
switches for MouseSystems 3-button mode. Unreliable in X.
|
|
Does not respond to <tt>echo "*n" > /dev/mouse</tt>.
|
|
<newline><bf>Mitsumi Mouse (2-button), FCC ID EW4ECM-S3101.</bf><newline>
|
|
Sells in the USA for about $12. Reliable in X and under gpm,
|
|
smooth double-button. (These two from
|
|
<htmlurl url="mailto:gustafso@math.utah.edu" name="gustafso@math.utah.edu">)
|
|
<newline><bf>PC Accessories mouse that i got from CompUSA for under $10.</bf><newline>
|
|
Has PC/MS switch on bottom. Works OK. (From
|
|
<htmlurl url="mailto:steveb@communique.net" name="steveb@communique.net">)
|
|
<newline><bf>First Mouse - seriously cheap at 7.79 pounds at Tempo.</bf><newline>
|
|
Dual Microsoft/MouseSystems, mode set by button depress at power-up.
|
|
No switches, no links. Four wire connection, echo '*n' doesn't
|
|
work. `gpm -R' works a treat. (From
|
|
<htmlurl url="mailto:peterk@henhouse.demon.co.uk" name="peterk@henhouse.demon.co.uk">)
|
|
<newline><bf>Trust 3-button mouse.</bf><newline>
|
|
Dual-mode with switch, works OK as MouseSystems in `PC'
|
|
mode. gpm doesn't like the Microsoft mode.
|
|
<newline><bf>Chic 410</bf><newline>
|
|
Works perfectly when kept in ms mode and used with the gpm -R
|
|
command. From Stephen M. Weiss
|
|
(<htmlurl url="mailto:steve@esc.ie.lehigh.edu" name="steve@esc.ie.lehigh.edu">)
|
|
<newline><bf>KeyMouse 3-button mouse.</bf><newline>
|
|
Works OK with ClearDTR and ClearRTS in Xconfig;
|
|
`-o dtr' needed with gpm. (From <htmlurl url="mailto:EZ4PHIL@aol.com" name="EZ4PHIL@aol.com">)
|
|
<newline><bf>Qtronix keyboard `Scorpio 60'</bf><newline>
|
|
All three buttons work in MouseSystems protocol. (From
|
|
<htmlurl url="mailto:hwe@uebemc.siemens.de" name="hwe@uebemc.siemens.de">)
|
|
<newline><bf>Tecra 720 laptop</bf><newline>
|
|
The glidepoint is on /dev/cua0; the stick is on /dev/psaux.
|
|
(From <htmlurl url="mailto:apollo@anl.gov" name="apollo@anl.gov">)
|
|
<newline><bf>Anubis mouse</bf><newline>
|
|
Works fine, need to hold down left button whenever switching to the X virtual console.
|
|
(From <htmlurl url="mailto:Joel.Crisp@bristol.ac.uk" name="Joel Crisp">)
|
|
<newline><bf>Yakumo No.1900 mouse</bf><newline>
|
|
Works with <tt>gpm -R -t ms</tt> exporting to X.
|
|
(From <htmlurl url="mailto:flinx.nbg.sub.org!oli@flinx.nbg.sub.org" name="Oliver Schwank">)
|
|
<newline><bf>Genius `Easy Trak' Trackball</bf><newline>
|
|
Is <bf>not</bf> Microsoft compatible, use <tt>Mouseman</tt>
|
|
in the Xconfig and it will work fine. (From
|
|
<htmlurl url="mailto:VTanger@aol.com" name="VTanger@aol.com">.)
|
|
<newline><bf>Highscreen Mouse Pro</bf><newline>
|
|
`Works fine' says <htmlurl url="mailto:alfonso@univaq.it" name="alfonso@univaq.it">.
|
|
<newline><bf>Logitech CA series</bf><newline>
|
|
Works in X using MMseries protocol, at 2400 Baud, 150 SampleRate. (Should
|
|
also apply to Logitech CC, CE, C7 & C9 mice). (From
|
|
<htmlurl url="mailto:vkochend@nyx.net" name="vkochend@nyx.net">.)
|
|
<newline><bf>A4-Tech mouse</bf><newline>
|
|
Works OK, needs <tt>DTR</tt> line under both X and gpm.
|
|
(From <htmlurl url="mailto:deane@gooroos.com" name="deane@gooroos.com">)
|
|
<newline><bf>Vertech mouse</bf><newline>
|
|
Normal Microsoft/Mousesystems behaviour, can be soldered for a permenant fix.
|
|
(From <htmlurl url="mailto:duncan@fs3.ph.man.ac.uk" name="duncan@fs3.ph.man.ac.uk">.)
|
|
<newline><bf>Boeder M-7 ``Bit Star'' (and other M series apart from M13)</bf><newline>
|
|
Switches to Mousesystems protocol by holding any button down at power-on.
|
|
(From <htmlurl url="mailto:sjt@tappin.force9.co.uk" name="mailto:sjt@tappin.force9.co.uk">.)
|
|
<newline><bf>Mouse Systems ``Scroll'' Mouse (four buttons and a roller/button)</bf><newline>
|
|
Has a 2/3 switch - in mode 3 functions as a three button MouseSystems mouse,
|
|
ignoring extra button & wheel. Doesn't need <tt>ClearRTS/DTR.</tt>
|
|
(From <htmlurl url="mailto:parker1@airmail.net" name="parker1@airmail.net">.)
|
|
<newline><bf>Radio Shack 3-button Serial Mouse</bf><newline>
|
|
Model 26-8432, available in Tandy for about 20 quid. Works as Mousesystems with
|
|
ClearDTR. (From <htmlurl url="mailto:Sherilyn@sidaway.demon.co.uk" name="Sherilyn@sidaway.demon.co.uk">.)
|
|
<newline><bf>Dexxa serial mouse</bf><newline>
|
|
Works fine using Microsoft protocol in Xconfig, no ChordMiddle or anything needed.
|
|
(From <htmlurl url="mailto:slevy@ncsa.uiuc.edu" name="mailto:slevy@ncsa.uiuc.edu">.)
|
|
<newline><bf>Belkin 3 button mouse</bf><newline>
|
|
As purchased from Sears (\$10), needs <tt>-o rts</tt> under gpm
|
|
(and probably <tt>ClearRTS</tt> under X) when in PC mode.
|
|
(From <htmlurl url="mailto:mmicek@csz.com" name="mailto:mmicek@csz.com">.)
|
|
</p>
|
|
|
|
<sect> Further Information
|
|
<p>
|
|
<itemize>
|
|
<item>Mouse Systems has a web site at <htmlurl url="http://www.mousesystems.com/" name="http://www.mousesystems.com/">. They have a Windows driver if you need one.
|
|
<item>The Linux Serial HOWTO is available from mirrors of sunsite around
|
|
the world. If you don't know where your nearest mirror is, start at
|
|
<htmlurl url="http://sunsite.unc.edu/mdw/linux.html" name="http://sunsite.unc.edu/mdw/linux.html">
|
|
<item>There is a very good explanation of how mice work at
|
|
<htmlurl url="http://www.4QD.co.uk/faq/meece.html" name="http://www.4QD.co.uk/faq/meece.html">.
|
|
<item>Fuller details of the Xconfig and XF86Config files are found on the
|
|
relevant man pages, and in the documentation about installing X windows
|
|
such as the Xfree86 HOWTO. Also, see the XFree86 FAQ at a mirror of
|
|
<htmlurl url="http://www.XFree86.org/" name="http://www.XFree86.org/">.
|
|
<item>Information about gpm can be found on the man page, also try the
|
|
web page of Darin Ernst at
|
|
<htmlurl url="http://www.castle.net/X-notebook/mouse.txt" name="http://www.castle.net/X-notebook/mouse.txt">.
|
|
<item>Lots of information on mice hardware and software can be found at
|
|
<htmlurl url="http://www.hut.fi/Misc/Electronics/pc/interface.html#mouse" name="http://www.hut.fi/Misc/Electronics/pc/interface.html#mouse">
|
|
</itemize>
|
|
|
|
<sect> Mouse Tail
|
|
|
|
<p>
|
|
Much of the information for this document has been trawled from the various
|
|
linux newsgroups. I am sorry I did not keep a record of everyone who has
|
|
indirectly contributed by this route, thank you all very much. <p>
|
|
|
|
So, to sum up:
|
|
|
|
<itemize>
|
|
<item>Even cheap 3 button Microsoft mice can be made to work.
|
|
<item>Configure your copy of X to expect a Mouse Systems mouse.
|
|
<item>Hold down the left button at power-on to switch the mouse to
|
|
MouseSystems mode.
|
|
<item>You might need to hold the left button down when starting X.
|
|
<item>Mice are more intelligent than you think.
|
|
</itemize>
|
|
|
|
</article>
|