diff options
-rw-r--r-- | README.sgml | 656 |
1 files changed, 656 insertions, 0 deletions
diff --git a/README.sgml b/README.sgml new file mode 100644 index 0000000..56e2f7a --- /dev/null +++ b/README.sgml @@ -0,0 +1,656 @@ +<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN"> + +<article> +<title>Mouse Support in XFree86 +<author>Kazutaka Yokota +<date>28 February 1998 +<toc> + +<sect>Introduction <p> + +This document describes mouse support in XFree86 3.3.2, whose +X servers have the revised mouse driver. + +Mouse configuration has often been mysterious task for +novice users. +However, once you learn several basics, it is straightforward +to choose options in <tt>XF86Setup</tt> or write the <tt>"Pointer"</tt> +section in the <tt>XF86Config</tt> file by hand. + +<sect>Supported Hardware <p> + +XFree86 X servers support three classes of mice: +serial, bus and PS/2 mice. + +<descrip> +<tag>Serial mouse</tag> +The serial mouse has been the most popular pointing device for +PCs. +There have been numerous serial mouse models from a number of +manufactures. +Despite the wide range of variations, there have been relatively +few protocols (data format) with which the serial mouse talks +to the host computer. + +The modern serial mouse conforms to the PnP COM device specification +so that the host computer can automatically detect the mouse +and load an appropriate driver. +The XFree86 3.3.2 X servers support this specification and can detect +popular PnP serial mouse models. + +<tag>Bus mouse</tag> +The bus mouse connects to a dedicated interface card in an expansion +slot. +Some video cards, notably those from ATI, and integrated I/O +cards may also have a bus mouse connector. +Some bus mice are known as `InPort mouse'. + +Note that some mouse manufactures have sold a package including a serial mouse +and a serial interface card. +Don't confuse this type of products with the genuine bus mouse. + +<tag>PS/2 mouse</tag> +They are sometimes called `Mouse-port mouse'. +The PS/2 mouse is becoming increasingly common and popular. + +The PS/2 mouse is an intelligent device and may have more than +three buttons and a wheel or a roller. +The PS/2 mouse is usually compatible with the original PS/2 mouse from IBM +immediately after power up. +The PS/2 mouse with additional features requires a specialized +initialization procedure to enable these features. +Without proper initialization, it behaves as though it were an ordinary +two or three button mouse. +</descrip> + +Many mice nowadays can be used both as a serial mouse and as a PS/2 mouse. +They has a logic to distinguish which interface it is connected to. +However, the mouse which is not marketed as compatible with both +serial and PS/2 mouse interface lacks this logic and cannot be +used in such a way, even if you can find an appropriate +adapter with which you can connect the PS/2 mouse to a serial port +or visa versa. + +XFree86 now supports the mouse with a wheel, a roller or a knob. +Its action is detected as the Z (third) axis motion of the mouse. +As the X server or clients normally do not use the Z axis movement of the +pointing device, a new configuration option, <tt>ZAxisMapping</tt>, +is provided to assign the Z axis movement to another axis or a pair +of buttons (see below). + +<sect>OS Support for Mice <p> + +<sect1>Summary of Supported Mouse Protocol Types <p> +<verb> + Protocol Types + serial PnP BusMouse PS/2 Extended PS/2 +OS platforms protocols serial protocol protocol protocols + "Auto" "BusMouse" "PS/2" "xxxPS/2" +-------------------------------------------------------------------- +BSD/OS Ok ? ? ? ? +FreeBSD Ok Ok Ok Ok SP*1 +FreeBSD(98) Ok ? Ok NA NA +Interactive Unix Ok NA ?*1 ?*1 NA +Linux Ok Ok Ok Ok Ok +Linux/98 Ok ? Ok NA NA +LynxOS Ok NA Ok Ok NA +NetBSD Ok Ok Ok SP*1 NA +NetBSD/pc98 Ok ? Ok NA NA +OpenBSD Ok Ok Ok Ok*1 NA +OS/2 SP*2 SP*2 SP*2 SP*2 SP*2 +SCO Ok ? SP*1 SP*1 NA +Solaris 2.x Ok NA*1 ?*1 Ok NA +SVR4 Ok NA*1 SP*1 SP*1 NA +PANIX Ok ? SP*1 SP*1 NA + +Ok: support is available, NA: not available, ?: untested or unknown. +SP: support is available in a different form + +*1 Refer to the following sections for details. +*2 XFree86/OS2 will support any type of mouse that the OS supports, + whether it is serial, bus mouse, or PnP type. + +</verb> + +<sect1>BSD/OS <p> +No testing has been done with BSD/OS. + +<sect1>FreeBSD <p> +FreeBSD supports the <tt>"SysMouse"</tt> protocol which must be +specified when the <tt>moused</tt> daemon is running in versions 2.2.1 +or later. + +FreeBSD versions 2.2.5 or earlier do not support extended PS/2 +mouse protocols (<tt>"xxxPS/2"</tt>). +Always specify the <tt>"PS/2"</tt> protocol for any PS/2 mouse +in these versions regardless of the brand of the mouse. + +FreeBSD versions 2.2.6 or later include the kernel-level +support for these mice. +Specify the <tt>"PS/2"</tt> or <tt>"Auto"</tt> protocol and +the X server will automatically make use of the kernel-level support. +In fact, you may always specify <tt>"Auto"</tt> to any mouse in these +versions unless the mouse is an old serial model which doesn't support PnP. + +<sect1>FreeBSD(98) <p> +The PS/2 mouse is not supported. + +<sect1>Interactive Unix <p> +The PnP serial mouse support (the <tt>"Auto"</tt> protocol) is not +supported for the moment. + +The bus mouse and PS/2 mouse should be supported by using the +appropriate device drivers. +Use <tt>/dev/mouse</tt> for the <tt>"BusMouse"</tt> protocol +and <tt>/dev/kdmouse</tt> for the <tt>"PS/2"</tt> protocol. +These protocols are untested but may work. +Please send success/failure reports to +<it/<michael.rohleder@stadt-frankfurt.de>/. + +<sect1>Linux <p> +All protocol types should work. + +<sect1>Linux/98 <p> +The PS/2 mouse is not supported. + +<sect1>LynxOS <p> +The PnP serial mouse support (the <tt>"Auto"</tt> protocol) is disabled in +LynxOS, because of limited TTY device driver functionality. + +<sect1>NetBSD <p> +NetBSD does not support extended PS/2 mouse protocols (<tt>"xxxPS/2"</tt>). +The PS/2 mouse device driver <tt>/dev/pms</tt> emulates the bus mouse. +Therefore, you should always specify the <tt>"BusMouse"</tt> protocol for +any PS/2 mouse regardless of the brand of the mouse. + +<sect1>NetBSD/pc98 <p> +The PS/2 mouse is not supported. + +<sect1>OpenBSD <p> +OpenBSD does not support extended PS/2 mouse protocols (<tt>"xxxPS/2"</tt>). + +The PS/2 mouse device driver <tt>/dev/pms</tt> emulates the bus mouse. +Specify the <tt>"BusMouse"</tt> protocol for +any PS/2 mouse regardless of the brand of the mouse when using this device. + +The raw PS/2 mouse device driver <tt>/dev/psm</tt> uses the standard PS/2 +mouse protocol. +Therefore, you should specify the <tt>"PS/2"</tt> protocol for +any PS/2 mouse regardless of the brand of the mouse when using this device. + +<sect1>OS/2 <p> +XFree86/OS2 always uses the native mouse driver of the operating system +and will support any type of pointer that the OS supports, whether it is +serial, bus mouse, or PnP type. +If the mouse works under Presentation Manager, +it will also work under XFree86/OS2. + +Always specify <tt>"OSMouse"</tt> as the protocol type. + +<sect1>SCO <p> +The bus and PS/2 mouse are supported with the <tt>"OSMouse"</tt> +protocol type. + +The <tt>"OSMouse"</tt> may also be used with the serial mouse. + +<sect1>Solaris <p> +Testing has been done with Solaris 2.5.1 and 2.6. Logitech and +Microsoft bus mice +have not been tested, but might work with the <tt>/dev/logi</tt> and +<tt>/dev/msm</tt> devices. +Standard 2 and 3 button PS/2 mice work with the <tt>"PS/2"</tt> protocol +type and the <tt>/dev/kdmouse</tt> device. +The PnP serial mouse support (the <tt>"Auto"</tt> protocol) has been tested +and does not work. + +<sect1>SVR4 <p> +The bus and PS/2 mouse may be supported with the <tt>"Xqueue"</tt> +protocol type. + +The <tt>"Xqueue"</tt> may also be used with the serial mouse. + +The PnP serial mouse support (the <tt>"Auto"</tt> protocol) is not +tested. + +<sect1>PANIX <p> +The PC/AT version of PANIX supports the bus and PS/2 mouse with the +<tt>"Xqueue"</tt> protocol type. +The PC-98 version of PANIX supports the bus mouse with the +<tt>"Xqueue"</tt> protocol type. + +<sect>Configuring Your Mouse <p> + +Before using the <tt>XF86Setup</tt> or <tt>xf86config</tt> programs +to set up mouse configuration, you must identify the interface type, +the device name and the protocol type of your mouse. +Blindly trying every possible combination of mouse settings +will lead you nowhere. + +The first thing you need to know is the interface type +of the mouse you are going to use. +It can be determined by looking at the connector of the mouse. +The serial mouse has a D-Sub female 9- or 25-pin connector. +The bus mice have either a D-Sub male 9-pin connector +or a round DIN 9-pin connector. +The PS/2 mouse is equipped with a small, round DIN 6-pin connector. +Some mice come with adapters with which the connector can +be converted to another. If you are to use such an adapter, +remember that the connector at the very end of the mouse/adapter pair is +what matters. + +The next thing to decide is a device node to use for the given interface. +For the bus and PS/2 mice, there is little choice; +your OS most possibly offers just one device node each +for the bus mouse and PS/2 mouse. +There may be more than one serial port to which the serial +mouse can be attached. + +The next step is to guess the appropriate protocol type for the mouse. +The X server may be able to select a protocol type for the given mouse +automatically in some cases. +Otherwise, the user has to choose one manually. +Follow the guidelines below. + +<descrip> +<tag>Bus mouse</tag> +The bus and InPort mice always use <tt>"BusMouse"</tt> +protocol regardless of the brand of the mouse. + +Some OSs may allow you to specify <tt>"Auto"</tt> as the +protocol type for the bus mouse. + +<tag>PS/2 mouse</tag> +The <tt>"PS/2"</tt> protocol should always be tried first for the PS/2 mouse +regardless of the brand of the mouse. +Any PS/2 mouse should work with this protocol type, although +wheels and other additional features are unavailable in the +X server. + +After verifying the mouse works with this protocol, +you may choose to specify one of <tt>"xxxPS/2"</tt> protocols so that +extra features are made available in the X server. +However, support for these PS/2 mice assumes certain behavior of +the underlying OS and may not always work as expected. +Support for some PS/2 mouse models may be disabled all together +for some OS platforms for this reason. + +Some OSs may allow you to specify <tt>"Auto"</tt> as the +protocol type for the PS/2 mouse and the X server will automatically +adjust itself. + +<tag>Serial mouse</tag> +The XFree86 server supports a wide range of mice, both old and new. +If your mouse is of a relatively new model, it may conform to the +PnP COM device specification and the X server may be able to +detect an appropriate protocol type for the mouse automatically. + +Specify <tt>"Auto"</tt> as the protocol type and start the X server. +If the mouse is not a PnP mouse, or the X server cannot determine +a suitable protocol type, the server will print the following +error message and abort. + +<verb> +xf86SetupMouse: Cannot determine the mouse protocol +</verb> + +If the X server generates the above error message, you need to +manually specify a protocol type for your mouse. +Choose one from the following list: + +<itemize> + <item><tt>GlidePoint</tt> + <item><tt>IntelliMouse</tt> + <item><tt>Logictech</tt> + <item><tt>Microsoft</tt> + <item><tt>MMHittab</tt> + <item><tt>MMSeries</tt> + <item><tt>MouseMan</tt> + <item><tt>MouseSystems</tt> + <item><tt>ThinkingMouse</tt> +</itemize> + +When you choose, keep in mind the following rule of thumb: + +<enum> +<item><tt>"Logitech"</tt> protocol is for old serial mouse models +from Logitech. +Modern Logitech mice use either <tt>"MouseMan"</tt> or <tt>"Microsoft"</tt> +protocol. +<item>Most 2-button serial mice support the <tt>"Microsoft"</tt> protocol. +<item>3-button serial mice may work with the <tt>"Mousesystems"</tt> +protocol. If it doesn't, it may work instead with the +<tt>"Microsoft"</tt> protocol although the third (middle) button won't +function. +3-button serial mice may also work with the <tt>"Mouseman"</tt> +protocol under which the third button may function as expected. +<item>3-button serial mice may have a small switch at the bottom +of the mouse to choose between ``MS'' and ``PC'', or ``2'' and ``3''. +``MS'' or ``2'' usually mean the <tt>"Microsoft"</tt> protocol. +``PC'' or ``3'' will choose the <tt>"MouseSystems"</tt> protocol. +<item>If the serial mouse has a roller or a wheel, it may be compatible +with the <tt>"IntelliMouse"</tt> protocol. +<item>If the serial mouse has a roller or a wheel and it doesn't work +with the <tt>"IntelliMouse"</tt> protocol, you have to use it +as a regular 2- or 3-button serial mouse. +</enum> + +If the <tt>"Auto"</tt> protocol is specified and the mouse seems working, +but you find that not all features of the mouse is available, that is +because the X server does not have native support for that model of mouse +and is using a ``compatible'' protocol according to PnP information. + +If you suspect this is the case with your mouse, please send report to +<it/<XFree86@XFree86.Org>/. + +<tag>Standardized protocols</tag> +Mouse device drivers in your OS may use the standardized protocol +regardless of the model or the class of the mouse. +For example, SVR4 systems may support <tt>"Xqueue"</tt> protocol. +In FreeBSD the system mouse device <tt>/dev/sysmouse</tt> +uses the <tt>"SysMouse"</tt> protocol. +Please refer to the OS support section of this file for more information. + +</descrip> + +<sect>XF86Config Options <p> + +The following new options are available for the <tt>Pointer</tt> section +of the <tt>XF86Config</tt> file. + +<sect1>Buttons <p> +This option tells the X server the number of buttons on the mouse. +Currently there is no reliable way to automatically detect the correct +number. +This option is the only means for the X server to obtain it. +The default value is three. + +Note that if you intend to assign Z axis movement to button events +using the <tt>ZAxisMapping</tt> option below, you need to take account +of those buttons into <tt>N</tt> too. + +<verb> + Buttons N +</verb> + +<sect1>ZAxisMappping <p> +This option maps the Z axis (wheel) motion to a pair of buttons or to +another axis. + +<verb> + ZAxisMapping X + ZAxisMapping Y + ZAxisMapping N M +</verb> + +The first example will map the Z axis motion to the X axis motion. +Whenever the user moves the wheel/roller, its movement is reported as +the X axis motion. When the wheel/roller stays still, the real X axis +motion is reported as is. The last example will map negative Z axis +motion to the button <tt>N</tt> and positive Z axis motion to +the button <tt>M</tt>. If this option is used and the buttons <tt>N</tt> +or <tt>M</tt> actually exists in the mouse, +their actions won't be detected by the X server. + +Currently this option can not be set in the <tt>XF86Setup</tt> program. +You need to edit the <tt>XF86Config</tt> file by hand to add this option. + +<sect1>Resolution <p> +The following option will set the mouse device resolution to <tt>N</tt> +counts per inch, if possible: + +<verb> + Resolution N +</verb> + +Not all mice and OSs can support this option. +This option can be set in the <tt>XF86Setup</tt> program. + +<sect>Mouse Gallery <p> + +<sect1>MS IntelliMouse (serial, PS/2) <p> +This mouse has been supported since XFree86 3.3. +However, support in 3.3.2 is slightly different; +the wheel movement is recognized as the Z axis motion. +This behavior is not compatible with XFree86 +3.3, but is more consistent with the support for other mice with +wheels or rollers. +If you want to make the wheel behave like before, +you can use the new option <tt>"ZAxisMapping"</tt> as described above. +<p> +IntelliMouse supports the PnP COM device specification. +<p> +To use this mouse as a serial device: +<verb> + Protocol "Auto" or "IntelliMouse" + Device "/dev/xxxx" (where xxxx is a serial port) +</verb> + +To use this mouse as the PS/2 device and the OS supports PS/2 mouse +initialization: +<verb> + Protocol "IMPS/2" + Device "/dev/xxxx" (where xxxx is the PS/2 mouse device) +</verb> + +To use this mouse as the PS/2 device but the OS does not support PS/2 mouse +initialization (the wheel won't work in this case): +<verb> + Protocol "PS/2" + Device "/dev/xxxx" (where xxxx is the PS/2 mouse device) +</verb> + +To use this mouse as the PS/2 device and the OS supports automatic +PS/2 mouse detection: +<verb> + Protocol "Auto" + Device "/dev/xxxx" (where xxxx is the PS/2 mouse device) +</verb> + +<sect1>Kensington Thinking Mouse (serial, PS/2) <p> +This mouse has four buttons. +Thinking Mouse supports the PnP COM device specification. +<p> +To use this mouse as a serial device: +<verb> + Protocol "Auto" or "ThinkingMouse" + Device "/dev/xxxx" (where xxxx is a serial port) +</verb> + +To use this mouse as the PS/2 device and the OS supports PS/2 mouse +initialization: +<verb> + Protocol "ThinkingMousePS/2" + Device "/dev/xxxx" (where xxxx is the PS/2 mouse device) +</verb> + +To use this mouse as the PS/2 device but the OS does not support PS/2 mouse +initialization (the third and the fourth buttons act as though they +were the first and the second buttons): +<verb> + Protocol "PS/2" + Device "/dev/xxxx" (where xxxx is the PS/2 mouse device) +</verb> + +To use this mouse as the PS/2 device and the OS supports automatic +PS/2 mouse detection: +<verb> + Protocol "Auto" + Device "/dev/xxxx" (where xxxx is the PS/2 mouse device) +</verb> + +<sect1>Genius NetScroll (PS/2) <p> +This mouse has four buttons and a roller. The roller movement is +recognized as the Z axis motion. +<p> +To use this mouse as the PS/2 device and the OS supports PS/2 mouse +initialization: +<verb> + Protocol "NetScrollPS/2" + Device "/dev/xxxx" (where xxxx is the PS/2 mouse device) +</verb> + +To use this mouse as the PS/2 device but the OS does not support PS/2 mouse +initialization (the roller and the fourth button won't work): +<verb> + Protocol "PS/2" + Device "/dev/xxxx" (where xxxx is the PS/2 mouse device) +</verb> + +To use this mouse as the PS/2 device and the OS supports automatic +PS/2 mouse detection: +<verb> + Protocol "Auto" + Device "/dev/xxxx" (where xxxx is the PS/2 mouse device) +</verb> + +<sect1>Genius NetMouse and NetMouse Pro (serial, PS/2) <p> +These mice have a "magic button" which is used like a wheel or a +roller. The "magic button" action is recognized as the Z axis motion. +NetMouse Pro is identical to NetMouse except that it has the third +button on the left hand side. +<p> +NetMouse and NetMouse Pro support the PnP COM device specification. +When used as a serial mouse, they are compatible with MS IntelliMouse. +<p> +To use these mice as a serial device: +<verb> + Protocol "Auto" or "IntelliMouse" + Device "/dev/xxxx" (where xxxx is a serial port) +</verb> + +To use this mouse as the PS/2 device and the OS supports PS/2 mouse +initialization: +<verb> + Protocol "NetMousePS/2" + Device "/dev/xxxx" (where xxxx is the PS/2 mouse device) +</verb> + +To use this mouse as the PS/2 device but the OS does not support PS/2 mouse +initialization (the "magic button" and the third button won't work): +<verb> + Protocol "PS/2" + Device "/dev/xxxx" (where xxxx is the PS/2 mouse device) +</verb> + +To use this mouse as the PS/2 device and the OS supports automatic +PS/2 mouse detection: +<verb> + Protocol "Auto" + Device "/dev/xxxx" (where xxxx is the PS/2 mouse device) +</verb> + +<sect1>ALPS GlidePoint (serial, PS/2) <p> +The serial version of this pad device has been supported since XFree86 +3.2. `Tapping' action is interpreted as the fourth button press. +(IMHO, the fourth button of GlidePoint should always be mapped to the first +button in order to make this pad behave like the other pad products.) +<p> +To use this pad as a serial device: +<verb> + Protocol "GlidePoint" + Device "/dev/xxxx" (where xxxx is a serial port) +</verb> + +To use this mouse as the PS/2 device and the OS supports PS/2 mouse +initialization: +<verb> + Protocol "GlidePointPS/2" + Device "/dev/xxxx" (where xxxx is the PS/2 mouse device) +</verb> + +To use this mouse as the PS/2 device but the OS does not support PS/2 mouse +initialization: +<verb> + Protocol "PS/2" + Device "/dev/xxxx" (where xxxx is the PS/2 mouse device) +</verb> + +To use this mouse as the PS/2 device and the OS supports automatic +PS/2 mouse detection: +<verb> + Protocol "Auto" + Device "/dev/xxxx" (where xxxx is the PS/2 mouse device) +</verb> + +<sect1>ASCII MieMouse (serial, PS/2) <p> +This mouse appears to be OEM from Genius. Although its shape is +quite different, it works like Genius NetMouse Pro. This mouse has a +"knob" which is used like a wheel or a roller. The "knob" action is +recognized as the Z axis motion. +<p> +MieMouse supports the PnP COM device specification. When used as a +serial mouse, it is compatible with MS IntelliMouse. +<p> +To use this mouse as a serial device: +<verb> + Protocol "Auto" or "IntelliMouse" + Device "/dev/xxxx" (where xxxx is a serial port) +</verb> + +To use this mouse as the PS/2 device and the OS supports PS/2 mouse +initialization: +<verb> + Protocol "NetMousePS/2" + Device "/dev/xxxx" (where xxxx is the PS/2 mouse device) +</verb> + +To use this mouse as the PS/2 device but the OS does not support PS/2 mouse +initialization (the knob and the third button won't work): +<verb> + Protocol "PS/2" + Device "/dev/xxxx" (where xxxx is the PS/2 mouse device) +</verb> + +To use this mouse as the PS/2 device and the OS supports automatic +PS/2 mouse detection: +<verb> + Protocol "Auto" + Device "/dev/xxxx" (where xxxx is the PS/2 mouse device) +</verb> + +<sect1>Logitech MouseMan+ and FirstMouse+ (serial, PS/2) <p> +MouseMan+ has two buttons on top, one side button and a roller. +FirstMouse+ has two buttons and a roller. The roller movement is +recognized as the Z axis motion. The roller also acts as the third +button. The side button is recognized as the fourth button. +<p> +MouseMan+ and FirstMouse+ support the PnP COM device specification. +They have MS IntelliMouse compatible mode when used as a serial mouse. +<p> +To use these mice as a serial device: +<verb> + Protocol "Auto" or "IntelliMouse" + Device "/dev/xxxx" (where xxxx is a serial port) +</verb> + +To use this mouse as the PS/2 device and the OS supports PS/2 mouse +initialization: +<verb> + Protocol "MouseManPlusPS/2" + Device "/dev/xxxx" (where xxxx is the PS/2 mouse device) +</verb> + +To use this mouse as the PS/2 device but the OS does not support PS/2 mouse +initialization (the wheel and the fourth button won't work): +<verb> + Protocol "PS/2" + Device "/dev/xxxx" (where xxxx is the PS/2 mouse device) +</verb> + +To use this mouse as the PS/2 device and the OS supports automatic +PS/2 mouse detection: +<verb> + Protocol "Auto" + Device "/dev/xxxx" (where xxxx is the PS/2 mouse device) +</verb> + + + +<verb> +$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/mouse.sgml,v 1.1.2.8 1998/03/02 09:58:25 dawes Exp $ + + + +$Xorg: mouse.sgml,v 1.3 2000/08/17 19:51:07 cpqbld Exp $ +</verb> +</article> |