home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BURKS 2
/
BURKS_AUG97.ISO
/
BURKS
/
LINUX
/
HOWTO
/
mini
/
3bmouse.txt
next >
Wrap
Text File
|
1997-07-07
|
23KB
|
518 lines
THE 3 BUTTON SERIAL MOUSE MINI-HOWTO
Geoff Short (geoff@kipper.york.ac.uk)
v1.19 25th October 1996
_________________________________________________________________
0. Disclaimer
1. Introduction
2. Serial ports
3. Switched Mice
4. Normal Mice
5. Switching a Mouse to 3-Button Mode
6. Using gpm to Change Mouse Modes
7. Using two mice
8. XF86Config and Xconfig file examples
9. Cables, extensions and adaptors
10. Miscellaneous Problems and Setup
11. Models Tested
12. Further Information
13. Mouse Tail
_________________________________________________________________
0. Disclaimer
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.
1. Introduction
The most recent version of this document can always be found at
http://kipper.york.ac.uk/mouse.html
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.89!)
Most dual-protocol mice will work in two modes:
* 2-button Microsoft mode.
* 3-button MouseSystems mode.
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.
2. Serial Ports
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 /dev/ttyS0 (COM1 under DOS) or /dev/ttyS1 (COM2). (ttyS0 is
usually the 9 pin socket, ttyS1 the 25 pin socket, but of course there
is no hard and fast rule about these things.) In most cases you can
also use the cua devices instead of ttyS, but this can cause problems
with a few setups. For convenience make a new link /dev/mouse pointing
at this port. For instance, for ttyS0:
* ln -s /dev/ttyS0 /dev/mouse
3. Switched Mice
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.
4. Normal Mice
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 Xconfig section)
and give it try.
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 Miscellaneous Problems section below.
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 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.
5. Switching a Mouse to 3-Button Mode
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.
* 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).
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!
* 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).
* You may be able to reset the mouse by typing echo "*n" >
/dev/mouse, 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.
* Bob Nichols (rnichols@interaccess.com) has written a small c
program to do the same thing, which may work if echo "*n" does not
(and vice versa). You can find a copy of his source code at
http://kipper.york.ac.uk/src/fix-mouse.c
* Someone has reported that the `ClearDTR' line in the Xconfig is
enough to switch their mouse into Mouse Systems mode.
* 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 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:
-----------
| o | o | o | SW1
-----------
1 2 3
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.
* Another soldering solution which might be a last-resort for mice
which don't understand MouseSystems at all, from Peter Benie (
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 "chordmiddle" in the XF86Config and you have a working
middle button.
* The ultimate recourse with the soldering iron was described to me
by Brian Craft (bcboy@pyramid.bio.brandeis.edu). Two common
generic mouse chips are the 16 pin Z8350, and the 18 pin HM8350A.
On each of these chips, one pin controls the mode of the chip, as
follows.
Pin 3 Mode
----- ----
Open Default Microsoft. Mouse Systems if button held on power-up.
GND Always Mouse Systems.
Vdd Always Microsoft.
(This info comes courtesy