- NetBSD Manual Pages
PMS(4) NetBSD Kernel Interfaces Manual PMS(4)
Powered by man-cgi (2021-06-01).
Maintained for NetBSD
by Kimmo Suominen.
Based on man-cgi by Panagiotis Christias.
pms -- PS/2 auxiliary port mouse driver
pckbc* at isa?
pms* at pckbc?
wsmouse* at pms?
The pms driver provides an interface to PS/2 auxiliary port mice within
the wscons(4) framework. Parent device in terms of the autoconfiguration
framework is pckbc(4), the PC keyboard controller. ``pms'' is a generic
driver which supports mice using common variants of the PS/2 protocol,
including wheel mice of the ``IntelliMouse'' breed. Wheel movements are
mapped to a third (z-) axis. The driver is believed to work with both
3-button and 5-button mice with scroll wheels. Mice which use other pro-
tocol extensions are not currently supported, but might be if protocol
documentation could be found. Mouse related data are accessed by
The pms driver has been updated to attempt to renegotiate mouse protocol
after seeing suspicious or defective mouse protocol packets, or unusual
delays in the middle of a packet; this should improve the chances that a
mouse will recover after being switched away or reset (for instance, by a
The PMS_DISABLE_POWERHOOK kernel option disables PS/2 reset on resume.
In addition, the pms driver supports the ``Synaptics'' touchpad in native
mode, enabled with the PMS_SYNAPTICS_TOUCHPAD kernel option. This allows
the driver to take advantage of extra features available on Synaptics
Touchpads. The following sysctl(8) variables control the touchpad's
If the touchpad reports the existence of Up/Down buttons,
this value determines if they should be reported as button
4 and 5 events or if they should be used to emulate some
other event. When set to 0, report Up/Down events as but-
tons 4 and 5. When set to 1, the Up and Down buttons are
both mapped to the middle button. When set to 2 (default),
the Up and Down buttons are used for Z-axis emulation,
which more closely resembles how mouse wheels operate.
When the Up/Down buttons are used for Z-axis emulation,
this value specifies the emulated delta-Z value per click.
Gestures will not be recognised if the finger moves by more
than this amount between taps.
Gestures will not be recognised if the number of packets
(at 80 packets per second) between taps exceeds this value.
These values define a border around the touchpad which will
be used for edge motion emulation during a drag gesture.
If a drag gesture is in progress and the finger moves into
this border, the driver will behave as if the finger con-
tinues to move in the same direction beyond the edge of the
This specifies the pointer speed when edge motion is in
The driver will ignore new finger events until the reported
pressure exceeds this value.
The driver will assume a finger remains on the touchpad
until the reported pressure drops below this value.
More recent touchpads can report the presence of more than
one finger on the pad. This value determines how such
events are used. If set to 0 (default), two-finger events
are ignored. If set to 1, two-finger events generate a
right button click. If set to 2, two-finger events gener-
ate a middle button click.
Scale factor used to divide movement deltas derived from
Synaptics coordinates (0-6143) to yield more reasonable
values (default 16).
Limits pointer rate of change (after scaling) per reported
movement event (default 32).
Movements of less than this value (in Synaptics coordi-
nates) are ignored (default 4).
pckbc(4), ums(4), wsmouse(4)
The pms driver was originally written by Christopher G. Demetriou. The
changes to merge the ``IntelliMouse'' protocol in, and reset the mouse in
the event of protocol problems, were contributed by Peter Seebach. Spe-
cial thanks to Ray Trent, at Synaptics, who contributed valuable insight
into how to identify bogus mouse data. The changes to add ``Synaptics''
pad support were by Ales Krenek, Kentaro A. Kurahone, and Steve C. Wood-
It is possible for the driver to mistakenly negotiate the non-scroll-
wheel protocol, after which it is unlikely to recover until the device is
closed and reopened.
NetBSD 4.0 January 18, 2005 NetBSD 4.0