LDP/LDP/howto/linuxdoc/3-Button-Mouse.sgml

725 lines
33 KiB
Plaintext

<!doctype linuxdoc system>
<article>
<title>The 3 Button Serial Mouse mini-HOWTO
<author>Geoff Short, <htmlurl url="mailto:geoff&commat;kipper.york.ac.uk"
name="geoff&commat;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 &dollar;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&commat;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 &amp; 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&commat;chiark.chu.cam.ac.uk"
name="pjb1008&commat;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&commat;pyramid.bio.brandeis.edu"
name="bcboy&commat;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&commat;lysator.liu.se"
name="peterf&commat;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&commat;digi.ruhr.de"
name="ud&commat;digi.ruhr.de">) confirms it works on an <bf>HN8348A</bf> chip;
Ben Ketcham (<htmlurl url="bketcham&commat;anvilite.murkworks.net" name="bketcham&commat;anvilite.murkworks.net">)
confirms the <bf>HM8348A</bf> (Pin 9 is Gnd).
<item>Urban Widmark (<htmlurl url="mailto:ubbe&commat;ts.umu.se" name="ubbe&commat;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&commat;cc.helsinki.fi" name="metsala&commat;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&commat;cs.tu-berlin.de" name="robin&commat;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&commat;sysgo.de" name="rkaiser&commat;sysgo.de">)
confirms that pin 3 - Gnd works on a <bf>EC3576A1</bf> chip too.
<item>Sean Cross (<htmlurl url="mailto:secross&commat;whidbey.com" name="secross&commat;whidbey.com">)
found it was pin 2 - pin 7 (Gnd) on a <bf>HM8370GP</bf> chip.
<item>Peter Fox (<htmlurl url="fox&commat;roestock.demon.co.uk" name="fox&commat;roestock.demon.co.uk">)
used pin 3 - pin 8 on a <bf>HM8348A</bf> chip.
<item>Jon Klein (<htmlurl url="jbklein&commat;mindspring.com" name="jbklein&commat;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&commat;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&commat;math.utah.edu" name="gustafso&commat;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 &lt; /dev/mouse</tscreen>
(Tested on UART 16450/Pentium by Vladimir Geogjaev
<htmlurl url="mailto:geogjaev&commat;wave.sio.rssi.ru" name="geogjaev&commat;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&commat;platform.com" name="chang&commat;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 &amp; 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&lowbar;VCLK/InvertVCLK,
or EarlySC.</tt>
This info from Bill Lavender
(<htmlurl url="mailto:lavender&commat;MCS.COM" name="lavender&commat;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&commat;interaccess.com" name="rnichols&commat;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&lowbar;pci&lowbar;write&lowbar;off</tt> and <tt>tgui&lowbar;pci&lowbar;read&lowbar;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 &amp; 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&commat;ast.cam.ac.uk" name="rmj&commat;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/&tilde;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&commat;gucis.cit.gu.edu.au)
<newline><bf>MicroSpeed mouse</bf><newline>
Usual dual-protocol mouse.
<newline><bf>Venus brand (&dollar;7)</bf><newline>
Has a jumper inside to switch between 2 and 3 button mode.
(From <htmlurl url="mailto:mhoward&commat;mth.com" name="mhoward&commat;mth.com ">)
<newline><bf>Saturn</bf><newline>
Switched mouse, works OK as MouseSystems in 3-button position.
(From <htmlurl url="mailto:grant&commat;oj.rsmas.miami.edu" name="grant&commat;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&commat;umel.fee.vutbr.cz" name="komanec&commat;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/&tilde;venkates/" name="http://ptsg.eecs.berkeley.edu/&tilde;venkates">).
<newline><bf>qMouse (3-button), FCC ID E6qmouse X31.</bf><newline>
Sells in the USA for about &dollar;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 &dollar;12. Reliable in X and under gpm,
smooth double-button. (These two from
<htmlurl url="mailto:gustafso&commat;math.utah.edu" name="gustafso&commat;math.utah.edu">)
<newline><bf>PC Accessories mouse that i got from CompUSA for under &dollar;10.</bf><newline>
Has PC/MS switch on bottom. Works OK. (From
<htmlurl url="mailto:steveb&commat;communique.net" name="steveb&commat;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&commat;henhouse.demon.co.uk" name="peterk&commat;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&commat;esc.ie.lehigh.edu" name="steve&commat;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&commat;aol.com" name="EZ4PHIL&commat;aol.com">)
<newline><bf>Qtronix keyboard `Scorpio 60'</bf><newline>
All three buttons work in MouseSystems protocol. (From
<htmlurl url="mailto:hwe&commat;uebemc.siemens.de" name="hwe&commat;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&commat;anl.gov" name="apollo&commat;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&commat;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&commat;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&commat;aol.com" name="VTanger&commat;aol.com">.)
<newline><bf>Highscreen Mouse Pro</bf><newline>
`Works fine' says <htmlurl url="mailto:alfonso&commat;univaq.it" name="alfonso&commat;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 &amp; C9 mice). (From
<htmlurl url="mailto:vkochend&commat;nyx.net" name="vkochend&commat;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&commat;gooroos.com" name="deane&commat;gooroos.com">)
<newline><bf>Vertech mouse</bf><newline>
Normal Microsoft/Mousesystems behaviour, can be soldered for a permenant fix.
(From <htmlurl url="mailto:duncan&commat;fs3.ph.man.ac.uk" name="duncan&commat;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&commat;tappin.force9.co.uk" name="mailto:sjt&commat;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 &amp; wheel. Doesn't need <tt>ClearRTS/DTR.</tt>
(From <htmlurl url="mailto:parker1&commat;airmail.net" name="parker1&commat;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&commat;sidaway.demon.co.uk" name="Sherilyn&commat;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&commat;ncsa.uiuc.edu" name="mailto:slevy&commat;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&commat;csz.com" name="mailto:mmicek&commat;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&num;mouse" name="http://www.hut.fi/Misc/Electronics/pc/interface.html&num;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>