old-www/LDP/Mobile-Guide/html/mobile-guide-p2c1s7-pointin...

1735 lines
31 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML
><HEAD
><TITLE
>Pointing Devices - Mice and Their Relatives</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Linux on the Road"
HREF="index.html"><LINK
REL="UP"
TITLE="Hardware in Detail: CPU, Display, Keyboard, Sound and More"
HREF="mobile-guide-p2c1-hardware-in-detail.html"><LINK
REL="PREVIOUS"
TITLE="Numeric Keypad"
HREF="mobile-guide-p2c1s8-numeric-keypad.html"><LINK
REL="NEXT"
TITLE="Advanced Power Management - APM"
HREF="mobile-guide-p2c1s8-apm.html"></HEAD
><BODY
CLASS="sect1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Linux on the Road: </TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="mobile-guide-p2c1s8-numeric-keypad.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 12. Hardware in Detail: CPU, Display, Keyboard, Sound and More</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="mobile-guide-p2c1s8-apm.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="mobile-guide-p2c1s7-pointing-devices"
></A
>12.17. Pointing Devices - Mice and Their Relatives</H1
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN2365"
></A
>12.17.1. Linux Compatibility Check</H2
><P
>&#13; You may check your mouse with the <B
CLASS="command"
>mev</B
> command from the GPM package.
</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN2369"
></A
>12.17.2. Related Documentation</H2
><P
>&#13;<P
></P
><OL
TYPE="1"
><LI
><P
>&#13; <A
HREF="http://tldp.org/HOWTO/3-Button-Mouse.html"
TARGET="_top"
>3-Button-Mouse-HOWTO</A
>
for serial mice
</P
></LI
><LI
><P
>&#13; <A
HREF="http://tldp.org/HOWTO/Kernel-HOWTO/"
TARGET="_top"
>Kernel-HOWTO</A
>
</P
></LI
></OL
>
</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN2379"
></A
>12.17.3. Mice Species</H2
><P
>&#13;
<P
></P
><OL
TYPE="1"
><LI
><P
>&#13; Trackpad, Touchpad, are used with the majority of current laptops
</P
></LI
><LI
><P
>&#13; Trackball, e.g. COMPAQ LTE
</P
></LI
><LI
><P
>&#13; Pop-up-Mouse, e.g. HP OmniBook 800
</P
></LI
><LI
><P
>&#13; Trackpoint, Mouse-Pin, e.g. <SPAN
CLASS="trademark"
>IBM</SPAN
>&#8482; ThinkPad and
Toshiba laptops
</P
></LI
><LI
><P
>&#13; 3 Button Mice, e.g. <SPAN
CLASS="trademark"
>IBM</SPAN
>&#8482;
Thinkpads at least the 600s and some COMPAQ models e.g. Armada M700. I have
heard rumor about a 3 button mouse for Texas Instruments Travelmates, but
couldn't verify this yet.
</P
></LI
><LI
><P
>&#13; Touchscreen, e.g. some Fujitsu-Siemens laptops, TabletPCs and PDAs
</P
></LI
></OL
>
</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN2397"
></A
>12.17.4. PS/2 Mice</H2
><P
>&#13;
Most of the mice used in laptops are PS/2 mice (actually I
don't know one with another mouse protocol). You may
communicate with the PS/2 mouse through
<TT
CLASS="filename"
>/dev/psaux</TT
> or
<TT
CLASS="filename"
>/dev/psmouse</TT
>. If you use X Windows
this device and the protocol has to be set in
<TT
CLASS="filename"
>/etc/X11/XF86Config</TT
>. In earlier
releases, sometimes the GPM mouse manager and X Windows had
trouble sharing a mouse when enabled at the same time. But
as far as I know this is no problem anymore for the latest
versions.
</P
><P
>&#13; Speaking of Emulate3Buttons, 100ms is usually better than
the 50ms allowed in most default setups of
<TT
CLASS="filename"
>/etc/X11/XF86Config</TT
> for XFree86 3.x:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;Section "Pointer"
...
Emulate3Buttons
Emulate3Timeout 100
...
EndSection
</PRE
></FONT
></TD
></TR
></TABLE
>
</P
><P
>&#13; Or in <TT
CLASS="filename"
>/etc/X11/XF86Config-4</TT
> for XFree86 4.x:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;Section "InputDevice"
...
Option "Emulate3Timeout" "100"
Option "Emulate3Buttons" "true"
...
EndSection
</PRE
></FONT
></TD
></TR
></TABLE
>
</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN2409"
></A
>12.17.5. Touchpad</H2
><P
>&#13; Usually a touchpad works with the PS/2 mouse device
<TT
CLASS="filename"
>/dev/psaux</TT
> and the PS/2 protocol (for GPM and X11,
for X11 it seems also worth to check the GlidePointPS/2 protocol).
</P
><P
>&#13; The
<A
HREF="http://w1.894.telia.com/~u89404340/touchpad/index.html"
TARGET="_top"
>Synaptics TouchPad driver</A
>
has the following functions
(some functions require features from the touchpad that must be
present, multifinger taps for example):
</P
><P
></P
><OL
TYPE="1"
><LI
><P
>&#13; Movement with adjustable, non-linear acceleration and speed (Options:
MinSpeed, MaxSpeed, AccelFactor)
</P
></LI
><LI
><P
>&#13; Button events through short touching of the touchpad (Options:
MaxTapTime, MaxTapMove)
</P
></LI
><LI
><P
>&#13; Double-Button events through double short touching of the touchpad
</P
></LI
><LI
><P
>&#13; Dragging through short touching and holding down the finger on the
touchpad
</P
></LI
><LI
><P
>&#13; Middle and right button events on the upper and lower corner of the
touchpad (Option: Edges)
</P
></LI
><LI
><P
>&#13; Scrolling (button four and five events) through moving the finger on the
right side of the touchpad (Options: Edges, VertScrollDelta)
</P
></LI
><LI
><P
>&#13; The up/down button sends button four/five events
</P
></LI
><LI
><P
>&#13; Adjustable finger detection (Option: Finger)
</P
></LI
><LI
><P
>&#13; Ext Mouse repeater support - Alpha! (Option: Repeater)
</P
></LI
><LI
><P
>&#13; Multifinger taps: two finger for middle button and three finger for
right button events
</P
></LI
><LI
><P
>&#13; Online configuration through shared-memory (in development)
(Option: SHMConfig)
</P
></LI
></OL
><P
>&#13; The <B
CLASS="command"
>synclient</B
> command is provived with the driver
sources (note it's not included in SuSE Linux, at least not until 9.3).
The command queries and modifies the Synaptics TouchPad driver
parameters on the fly.
</P
><DIV
CLASS="tip"
><P
></P
><TABLE
CLASS="tip"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/tip.gif"
HSPACE="5"
ALT="Tip"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>&#13; Tipping with one, two or three fingers on the touchpad
simultaneously results in pressing the left, middle and respectively the
right mouse-button.
</P
></TD
></TR
></TABLE
></DIV
><P
>&#13; There is also another touchpad driver available.
<A
HREF="http://www.compass.com/synaptics/"
TARGET="_top"
>The Synaptics Touchpad Linux Driver</A
>
- <B
CLASS="command"
>tpconfig</B
>
supports pointing devices used in notebooks by
Acer, Compaq, Dell, Gateway, Olivetti, Texas Instruments, Winbook, and others.
</P
><P
>&#13; Dell and Sony have started incorporating a touchpad, touchstick from
ALPS. They are in at least the Dell Latitude CPx and the Sony VAIO
laptop lines.
Maintainer Bruce Kall writes: "<B
CLASS="command"
>tpconfig</B
> does NOT support them at this
time, but I am in the process of getting the API from ALPS and will be
incorporating this in the next version of <B
CLASS="command"
>tpconfig</B
>.
The Dell's also incorporate the ALPS GlideStick in the middle of the
keyboard (like the stick pointer in some of the IBM Thinkpads). I also
intend to support the disabling of <SPAN
CLASS="QUOTE"
>"tapping"</SPAN
> the GlideStick
as well. Tapping of the touchpad/touchsticks drives me crazy, I'm not
sure about you (causes the <SPAN
CLASS="QUOTE"
>"selection"</SPAN
> of things on the
screen when you don't want to)!"
</P
><P
>&#13; <B
CLASS="command"
>tpconfig</B
> is a command-line utility to set options on
Synaptics Touchpad and (now) ALPS Glidepad/ Stickpointers. Most people
primarily use it to turn off the "tap mode" on laptop touchpads.
</P
><P
>&#13; How to use <B
CLASS="command"
>tpconfig</B
>: <B
CLASS="command"
>tpconfig</B
> is
currently supported as a command-line configuration tool. The PS/2 port
does not currently support sharing. Therefore the
<B
CLASS="command"
>tpconfig</B
> utility will not work while any other mouse
driver is loaded (e.g. <B
CLASS="command"
>gpm</B
>). This also means that you
cannot use <B
CLASS="command"
>tpconfig</B
> while X Windows is running. The
suggested use of <B
CLASS="command"
>tpconfig</B
> is to run it from a startup
script before gpm is started.
</P
><P
>&#13; <A
HREF="http://rsim.cs.uiuc.edu/~sachs/tp-scroll/"
TARGET="_top"
>IBM ThinkPad Scroll Daemon</A
>
</P
><P
>&#13; Not all touchpads are being from Synaptics, e.g some Gateways incorporate an
EZ-Pad (Registered TM) and there might be other brands. The
<A
HREF="http://www.synaptics.com/decaf/utilities/tprev.exe"
TARGET="_top"
>TPREV.EXE</A
>
utility will verify you have a Synaptics touchpad.
</P
><P
>&#13; The recent
<A
HREF="ftp://ftp.prosa.it/pub/gpm/"
TARGET="_top"
>gpm</A
>
package (version &#62;=1.8, maybe earlier versions contain touchpad
support, too) includes the above mentioned Synaptics touchpad device
driver. This device driver has been developed by H. Davies
&#60;hdavies_AT_ameritech.net&#62;. Instead of using the PS/2 compatibility
mode of touchpad devices, you can now use native touchpad mode with some
pretty impressive features.
</P
><P
>&#13; In addition to translating finger motion into mouse motion and
supporting the buttons, this support currently has several features
(from the README):
</P
><P
>&#13;
<P
></P
><UL
><LI
><P
>&#13; a "tap" on the TouchPad causes a left mouse click
</P
></LI
><LI
><P
>&#13; a "tap" followed quickly by a finger motion causes a left button drag type action.
</P
></LI
><LI
><P
>&#13; a "tap" in one of the corners causes an action the default configuration
is upper right causes middle mouse click and lower right causes right
mouse click
</P
></LI
><LI
><P
>&#13; more pressure on the touch pad speeds the motion of the cursor
</P
></LI
><LI
><P
>&#13; a "tap" with a motion component (default &#62; 2mm) initiates a toss and
catch sequence. This is terminated by a finger touch on the pad (the
toss also ends after 1 sec since that is the idle timeout period for the
touchpad).
</P
></LI
><LI
><P
>&#13; if the finger moves close to an edge then the mouse motion will be
continued in that direction so that you don't need to pick up your
finger and start moving again. This continued motion is pressure
sensitive (more pressure is faster motion).
</P
></LI
></UL
>
</P
><P
>&#13; These features can be enabled/disabled and many of them have time and
speed parameters which can be adjusted to the taste of the user.
</P
><P
>&#13; It seems <B
CLASS="command"
>gpm</B
> is best known as a console biased tool.
This is true, but you may use it as an X11 input device.
<B
CLASS="command"
>gpm</B
> is used as a repeater device. In this way you can
use both the built-in synaptics touchpad with all the features and at
the same time a serial mouse (with three buttons). This all works
smoothly together. X11 reads the mouse events from a named pipe
<TT
CLASS="filename"
>/dev/gpmdata</TT
> in a protocol it understands, which in
my case is <EM
>Mouse-Systems-Compatible</EM
> (5bytes). Most
3-button mice use the default protocol. So a simple reconfiguration in
XF86Config is all that is required, after starting
<B
CLASS="command"
>gpm</B
> in an appropriate way, of course.
</P
><P
>&#13; <B
CLASS="command"
>gpm</B
> could be started on your laptop with the
following arguments : <B
CLASS="command"
>/usr/bin/gpm -t synps2 -M -t ms -m
/dev/ttyS0</B
> . Both touchpad and serial mouse work in console
and X11 mode. You do have to create the named pipe
<TT
CLASS="filename"
>/dev/gpmdata</TT
> yourself.
</P
><P
>&#13; Tapping with two fingers simultaneously to simulate a middle mouse
button works on Logitech touchpads used in a few machines.
</P
><P
>&#13; Thanks to Geert Van der Plas for most of the touchpad chapter.
</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN2493"
></A
>12.17.6. Jog-Dial</H2
><P
>&#13; The <SPAN
CLASS="QUOTE"
>"Jog-Dial"</SPAN
> is an input device used in the SONY VAIO
laptop series. You may find a
<A
HREF="http://www004.upp.so-net.ne.jp/t-kinjo/vaio/index_e.html"
TARGET="_top"
>Jog-Dial driver</A
>
by Takaya Kinjo.
Probably you have to change two things in the
<TT
CLASS="filename"
>spicdriver/Makefile</TT
>:
</P
><P
>&#13; <B
CLASS="command"
>CCFLAG</B
> has to be extended with <B
CLASS="command"
>-D_LOOSE_KERNEL_NAMES</B
>
</P
><P
>&#13; <B
CLASS="command"
>CCFLAG</B
> has to be extended with <B
CLASS="command"
>-I/usr/src/linux-&#60;kernel-version&#62;/include</B
>
</P
><P
>&#13; The README seems to be in Japanese, here is an English version.
</P
><P
>&#13;<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;$ tar xvzf jogutils.tar.gz
$ cd jogutils
$ make
$ su
# mknod /dev/spic c 60 0
# modprobe spicdriver/spicdriver
# exit
$ cp jogapp/rcfile ~/.jogapprc
$ jogapp/jogapp
</PRE
></FONT
></TD
></TR
></TABLE
>
</P
><P
>&#13; ISHIKAWA Mutsumi wrote the
<A
HREF="http://perso.wanadoo.fr/pascal.brisset/vaio/"
TARGET="_top"
>jogdiald</A
>
driver, which runs entirely in user-space (no
kernel modules required).
</P
><P
>&#13; <A
HREF="http://linuxbrit.co.uk/rsjog/"
TARGET="_top"
>rsjog</A
>.
is a modification of the
<A
HREF="http://sjog.sourceforge.net/"
TARGET="_top"
>sjog</A
>
utility.
</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN2513"
></A
>12.17.7. Touchscreens</H2
><P
>&#13; The only modern laptops I know which include a touchscreen are the
Fujitsu Biblo 112/142 (aka MC 30) and the Palmax PD 1000/1100 (aka IPC
1000/1100).
</P
><P
>&#13; The latest version of the
<A
HREF="http://www.cs.nmsu.edu/~pfeiffer/#pen"
TARGET="_top"
>Linux Compaq Concerto Pen Driver</A
>
is available from Joe Pfeiffer's home page.
</P
><P
>&#13; A current survey of drivers you may find at my page
<A
HREF="http://tuxmobil.org/touch_laptops.html"
TARGET="_top"
>Touchscreen Laptops and Linux</A
>
.
</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN2520"
></A
>12.17.8. Pen Devices, Mousepoints</H2
><P
>&#13; IBM and Toshiba laptops currently come with a pen devices instead of a
mousepad or trackball.
</P
><DIV
CLASS="tip"
><P
></P
><TABLE
CLASS="tip"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/tip.gif"
HSPACE="5"
ALT="Tip"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>&#13; It needs some time to get used to this kind of pointer device. It may
help to rest your palm at the front rest. Also it's recommended to
reduce the mouse speed.
</P
></TD
></TR
></TABLE
></DIV
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN2525"
></A
>12.17.9. External Mouse</H2
><P
>&#13; For better handling, e.g. with a 3 button mouse you may use an external
mouse. This is usually a serial mouse or a PS/2 mouse, or in our days a USB
mouse, appropriate to the port your laptop offers. Usually this is no
problem. The only thing I currently don't know a solution for is the
automagic detection of a newly plugged in mouse from X11. To get it work
you have to restart your X server.
</P
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN2528"
></A
>12.17.9.1. PS/2 Mouse</H3
><P
>&#13; For PS/2 ports there are so called Y-Cable available, which make it
possible to use external mouse and external keyboard at the same time if
your laptop supports this feature.
</P
><DIV
CLASS="warning"
><P
></P
><TABLE
CLASS="warning"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/warning.gif"
HSPACE="5"
ALT="Warning"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>&#13; Don't plug in the external mouse while powered up. If you have
separate mouse and keyboard ports, make sure you plug the mouse in the
mouse port and the keyboard in the keyboard port. If you don't, you may
have to do a hard reboot of the laptop to get it to recover.
</P
></TD
></TR
></TABLE
></DIV
></DIV
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN2533"
></A
>12.17.9.2. Wheel Mouse</H3
><P
>&#13; <A
HREF="http://jonatkins.org/imwheel/"
TARGET="_top"
>Imwheel</A
>
makes the wheel of your Intellimouse (and other wheel and stick
mice) work in Linux/X11 to scroll windows up and down, or send keys to
programs. It runs in the background as a daemon and requires little
reconfiguration of the XWindows setup. 4 or more button mice and Alps
Glidepad 'Taps' may also be used. <B
CLASS="command"
>imwheel</B
>
includes a modified <B
CLASS="command"
>gpm</B
> for
an alternate method of wheel input.
</P
><P
>&#13; See also the
<A
HREF="http://www.inria.fr/koala/colas/mouse-wheel-scroll/"
TARGET="_top"
>WHEEL Mouse FAQ</A
>
which describes
how to get lots of X applications to recognise the scrolling action.
For current instructions on XFree86 4.x see
<A
HREF="http://www.xfree86.org/current/mouse.html"
TARGET="_top"
>XFree86 4.x - Mouse Docs</A
>.
</P
></DIV
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN2542"
></A
>12.17.9.3. USB Mouse</H3
><P
>&#13; This part is taken from The Linux <SPAN
CLASS="acronym"
>USB</SPAN
> Sub-System by
Brad Hards.
</P
><DIV
CLASS="sect4"
><H4
CLASS="sect4"
><A
NAME="AEN2546"
></A
>12.17.9.3.1. USB Human Interface Device (HID) Configuration</H4
><DIV
CLASS="sect5"
><H5
CLASS="sect5"
><A
NAME="AEN2548"
></A
>12.17.9.3.1.1. General HID Configuration</H5
><P
>&#13; There are two options for using a <SPAN
CLASS="acronym"
>USB</SPAN
> mouse or a
<SPAN
CLASS="acronym"
>USB</SPAN
> keyboard - the standalone Boot Protocol way and
the full featured HID driver way. The Boot Protocol way is generally
inferior, and this document describes the full featured way. The Boot
Protocol way may be appropriate for embedded systems and other systems
with resource constraints and no real need for the full keyboard and
mouse capabilities.
</P
><P
>&#13; It is important to remember that the HID driver handles those devices
(or actually those interfaces on each device) that claim to comply with
the Human Interface Device (HID) specification. However the HID
specification doesn't say anything about what the HID driver should do
with information received from a HID device, or where the information
that is sent to a device comes from, since this is obviously dependent
on what the device is supposed to be doing, and what the operating
system is. Linux (at the operating system kernel level) supports four
interfaces to a HID device - keyboard, mouse, joystick and a generic
interface, known as the event interface.
</P
></DIV
><DIV
CLASS="sect5"
><H5
CLASS="sect5"
><A
NAME="AEN2554"
></A
>12.17.9.3.1.2. HID Mouse Configuration</H5
><P
>&#13; In the kernel configuration stage, you need to turn on
<SPAN
CLASS="acronym"
>USB</SPAN
> Human Interface Device (HID) support and Mouse
Support Do not turn on <SPAN
CLASS="acronym"
>USB</SPAN
> HIDBP Mouse support.
Perform the normal kernel rebuild and installation steps. If you are
installing as modules, you need to load the
<TT
CLASS="filename"
>input.o</TT
>, <TT
CLASS="filename"
>hid.o</TT
> and
<TT
CLASS="filename"
>mousedev.o</TT
> modules.
</P
><P
>&#13; Plug in a <SPAN
CLASS="acronym"
>USB</SPAN
> mouse and check that your mouse has
been correctly sensed by the kernel. If you don't have a kernel message,
look for the changes to <TT
CLASS="filename"
>/proc/bus/usb/devices</TT
>.
</P
><P
>&#13; Since <SPAN
CLASS="acronym"
>USB</SPAN
> supports multiple identical devices, you
can have multiple mice plugged in. You can get each mouse seperately, or
you can get them all mixed together. You almost always want the mixed
version, and that is what will be used together. You need to set up a
device node entry for the mixed mice. It is customary to create the
entries for this device in the /dev/input/ directory.
</P
><P
>&#13;Use the following commands:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;mkdir /dev/input
mknod /dev/input/mice c 13 63
</PRE
></FONT
></TD
></TR
></TABLE
>
</P
><DIV
CLASS="tip"
><P
></P
><TABLE
CLASS="tip"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/tip.gif"
HSPACE="5"
ALT="Tip"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>&#13; If you are unsure whether you are configuring the right mouse device,
use <B
CLASS="command"
>cat /dev/input/mice</B
> (or other appropriate
devices names). In case you do this for the correct mouse, you should see some
bizarre looking characters as you move the mouse or click any of the
buttons.
</P
></TD
></TR
></TABLE
></DIV
><P
>&#13; If you want to use the mouse under X, you have various options. Which
one you select is dependent on what version of XFree86 you are using and
whether you are using only <SPAN
CLASS="acronym"
>USB</SPAN
> for your mouse (or
mice), or whether you want to use a <SPAN
CLASS="acronym"
>USB</SPAN
> mouse and
some other kind of pointer device.
</P
><P
>&#13; You need to edit the <TT
CLASS="filename"
>XF86Config</TT
> file (usually
<TT
CLASS="filename"
>/usr/X11R6/lib/X11/XF86Config</TT
> or
<TT
CLASS="filename"
>/etc/X11/XF86Config</TT
>).
</P
><P
>&#13; If you are using XFree86 version 4.0 or later, add an
InputDevice section that looks like the following:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;Section "InputDevice"
Identifier "USB Mice"
Driver "mouse"
Option "Protocol" "IMPS/2"
Option "Device" "/dev/input/mice"
EndSection
</PRE
></FONT
></TD
></TR
></TABLE
>
or, if you want to use a wheel mouse, something like this may be more useful:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;Section "InputDevice"
Identifier "USB Mice"
Driver "mouse"
Option "Protocol" "IMPS/2"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5"
Option "Buttons" "5"
EndSection
</PRE
></FONT
></TD
></TR
></TABLE
>
</P
><P
>&#13; Consult the
<A
HREF="http://www.xfree86.org/current/mouse.html"
TARGET="_top"
>current XFree86 documentation</A
>
for a detailed explanation and more examples.
</P
><P
>&#13; You also need to add an entry to each applicable ServerLayout Section.
These are normally at the end of the configuration file. If you only have
a <SPAN
CLASS="acronym"
>USB</SPAN
> mouse (or <SPAN
CLASS="acronym"
>USB</SPAN
> mice), then
replace the line with the "CorePointer" entry with the following line:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;InputDevice "USB Mice" "CorePointer"
</PRE
></FONT
></TD
></TR
></TABLE
>
</P
><P
>&#13; If you want to use both a <SPAN
CLASS="acronym"
>USB</SPAN
> mouse (or
<SPAN
CLASS="acronym"
>USB</SPAN
> mice) and some other kind of pointer device,
then add (do not replace) the following line to the applicable
ServerLayout sections:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;InputDevice "USB Mice" "SendCoreEvents"
</PRE
></FONT
></TD
></TR
></TABLE
>
</P
><P
>&#13; If you are using only a <SPAN
CLASS="acronym"
>USB</SPAN
> mouse (or
<SPAN
CLASS="acronym"
>USB</SPAN
> mice) with XFree86 3.3, edit the Pointer
section so that it looks like the following:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;Section "Pointer"
Protocol "IMPS/2"
Device "/dev/input/mice"
EndSection
</PRE
></FONT
></TD
></TR
></TABLE
>
</P
><P
>&#13; If you are trying to use a <SPAN
CLASS="acronym"
>USB</SPAN
> mouse (or
<SPAN
CLASS="acronym"
>USB</SPAN
> mice) in addition to another pointer type
device with XFree86 3.3, then you need to use the XInput
extensions. Keep the existing Pointer (or modify it as required for
the other device if you are doing an initial installation), and add
the following entry (anywhere sensible, ideally in the Input
devices area):
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;Section "Xinput"
SubSection "Mouse"
DeviceName "USB Mice"
Protocol "IMPS/2"
Port "/dev/input/mice"
AlwaysCore
EndSubSection
EndSection
</PRE
></FONT
></TD
></TR
></TABLE
>
</P
><P
>&#13; Restart the X server. If you don't have any mouse support at this point,
remember that Ctrl-Alt-F1 will get you a virtual terminal that you can
use to kill the X server and start debugging from the error messages.
</P
><P
>&#13; If you want to use the mouse under gpm, run (or kill and restart if it
is already running) gpm with the following options. <B
CLASS="command"
>gpm -m
/dev/input/mice -t imps2</B
> (as superuser). You can make
this the default if you edit the initialisation files. These are
typically named something like rc.d and are in
<TT
CLASS="filename"
>/etc/rc.d/</TT
> on RedHat distributions.
</P
><P
>&#13; If you have both a <SPAN
CLASS="acronym"
>USB</SPAN
> mouse (or
<SPAN
CLASS="acronym"
>USB</SPAN
> mice) and some other kind of pointer device, you
may wish to use gpm in repeater mode. If you have a PS/2 mouse on
/dev/psaux and a <SPAN
CLASS="acronym"
>USB</SPAN
> mouse (or <SPAN
CLASS="acronym"
>USB</SPAN
>
mice) on /dev/input/mice, then the following <B
CLASS="command"
>gpm</B
>
command would probably be appropriate: <B
CLASS="command"
>gpm -m /dev/input/mice
-t imps2 -M -m /dev/psaux -t ps2 -R imps2</B
>. Note that this will
make the output appear on <TT
CLASS="filename"
>/dev/gpmdata</TT
>, which is a
FIFO and does not need to be created in advance. You can use this as the
mouse "device" to non-X programs, and both mice will work together.
</P
><P
>&#13;
<DIV
CLASS="table"
><A
NAME="AEN2613"
></A
><P
><B
>Table 12-1. Arguments for the <B
CLASS="command"
>-t</B
> and <B
CLASS="command"
>-R</B
> option of <B
CLASS="command"
>gpm</B
>.</B
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><THEAD
><TR
><TH
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>option</TH
><TH
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>description</TH
></TR
></THEAD
><TBODY
><TR
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>ms</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>MicroSoft compatible serial mouse</TD
></TR
><TR
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>ps2</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>PS/2 or C&#38;T 82C710</TD
></TR
><TR
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>bm</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>Logitech bus mouse</TD
></TR
><TR
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>bm</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>ATI XL bus mouse</TD
></TR
><TR
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>mb</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>MicroSoft bus mouse</TD
></TR
><TR
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>msc</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>Mouse Systems serial mouse</TD
></TR
><TR
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>logi</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>older mouse</TD
></TR
><TR
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>mman</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>Mouse Man protocol, serial Logitech mouse</TD
></TR
><TR
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>sun</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>SUN mouse, three button</TD
></TR
><TR
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>ms3</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>Intellimouse with wheel, at serial port</TD
></TR
><TR
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>imps2</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>Intellimouse with wheel, at PS/2 port</TD
></TR
><TR
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>pnp</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>PnP mice, alternative to <B
CLASS="command"
>ms</B
></TD
></TR
><TR
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>mm</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>MM series</TD
></TR
><TR
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>bare</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="MIDDLE"
>oldest serial two button mouse</TD
></TR
></TBODY
></TABLE
></DIV
>
</P
></DIV
></DIV
></DIV
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN2669"
></A
>12.17.9.4. Wrist Input Device - Twiddler</H3
><P
>&#13; The <B
CLASS="command"
>gpm</B
> contains a driver for the Twiddler
device at the serial port. For information about the Twiddler see
<A
HREF="http://www.handykey.com/"
TARGET="_top"
>Handykey Corporation</A
>
.
</P
></DIV
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN2674"
></A
>12.17.10. Macintosh PowerBooks</H2
><P
>&#13; PowerBooks have a trackpad and only one button, although you can plug in
external multi-button <SPAN
CLASS="acronym"
>USB</SPAN
> mice. The usual thing is to
map a couple of keys on the keyboard to the middle and right mouse
buttons; your Linux distribution should come with instructions on how to
configure this (it's not specific to laptops, as all Apple mice are
single-button).
</P
><P
>&#13; If you are using the <B
CLASS="command"
>Xpmac</B
> server, the default is
option-1 and option-2, and you can change this by passing
<B
CLASS="command"
>-middlekey &#60;keycode&#62;</B
> <B
CLASS="command"
>-rightkey
&#60;keycode&#62;</B
> arguments to <B
CLASS="command"
>Xpmac</B
>, and
<B
CLASS="command"
>-nooptionmouse</B
> if you don't want the option key to be
needed.
</P
><P
>&#13; If you are using XFree86, you pass
<B
CLASS="command"
>adb_buttons=&#60;middlekey&#62;</B
>,<B
CLASS="command"
>&#60;rightkey&#62;</B
>
kernel arguments (no option is required). I use
<B
CLASS="command"
>adb_buttons=58,55</B
> to map the option and Apple/command
keys (which are little-used in Linux); use e.g. <B
CLASS="command"
>xev</B
>
to find out the keycode for a given key.
</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="mobile-guide-p2c1s8-numeric-keypad.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="mobile-guide-p2c1s8-apm.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Numeric Keypad</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="mobile-guide-p2c1-hardware-in-detail.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Advanced Power Management - APM</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>