2006-11-26 12:58:05 -07:00
|
|
|
VMMouse
|
|
|
|
-------
|
|
|
|
|
|
|
|
The VMMouse driver enables support for the special VMMouse protocol
|
|
|
|
that is provided by VMware virtual machines to give absolute pointer
|
|
|
|
positioning.
|
|
|
|
|
|
|
|
Installing the driver will improve the user experience when using the
|
|
|
|
mouse to interact with the guest operating system. In particular, use of
|
|
|
|
the driver improves mouse "lag", provides mouse speed and acceleration
|
|
|
|
consistent with the user's host operating system, and enables the
|
|
|
|
auto-grab/ungrab feature in VMware products without requiring the VMware
|
|
|
|
toolbox application.
|
|
|
|
|
|
|
|
Using the driver
|
|
|
|
----------------
|
|
|
|
|
|
|
|
Assuming you have built and installed the driver in the standard way
|
|
|
|
for autotools based packages (see INSTALL), or the driver was already
|
|
|
|
installed by your distro, using it is simply a matter of changing the
|
|
|
|
driver used for the mouse input device from "mouse" to "vmmouse".
|
|
|
|
|
|
|
|
The vmmouse driver is capable of falling back to the standard "mouse"
|
|
|
|
driver if a VMware virtual machine is not detected. This allows for
|
|
|
|
dual-booting of an operating system from a virtual machine to real hardware
|
|
|
|
without having to edit xorg.conf every time.
|
|
|
|
|
|
|
|
Implementation
|
|
|
|
--------------
|
|
|
|
|
|
|
|
The following is not necessary reading for anyone who wants to use the
|
|
|
|
driver, but should help anyone who wants to understand how it works or
|
|
|
|
who wants to write a driver for a different target, whether it's another
|
|
|
|
operating system, a linux kernel input driver or even gpm.
|
|
|
|
|
|
|
|
The driver is composed of three different layers:
|
|
|
|
|
|
|
|
1) The vmmouse protocol layer (vmmouse_proto.[c|h])
|
|
|
|
- This provides the call to read and write the port over which
|
|
|
|
the vmmouse packets are transfered.
|
|
|
|
|
|
|
|
2) The vmmouse client layer (vmmouse_client.[c|h])
|
|
|
|
- This builds on top of the protocol layer to provide higher
|
|
|
|
level calls for enabling/disabling the vmmouse mechanism
|
|
|
|
and for reading data.
|
|
|
|
- A new driver for a different target would use this interface.
|
|
|
|
|
|
|
|
3) The Xorg vmmouse driver (vmmouse.c)
|
|
|
|
- This is the actual Xorg specific part of the driver.
|
|
|
|
- Note that interrupts indicating the presence of mouse data
|
|
|
|
are still transmitted on the PS/2 port so it is necessary
|
|
|
|
to be set up to receive those interrupts like a standard
|
|
|
|
PS/2 driver, but the actual data on the PS/2 port is ignored.
|
2009-05-03 08:11:13 -06:00
|
|
|
|
|
|
|
vmmouse_detect
|
|
|
|
--------------
|
|
|
|
|
|
|
|
A simple program to detect whether the vmmouse device is present.
|
|
|
|
It is used by the HAL callout script to automatically detect a
|
|
|
|
vmmouse device.
|
|
|
|
|
|
|
|
Returns 0 if we are running in a virtual machine where the vmmouse
|
|
|
|
device is present.
|
|
|
|
|
|
|
|
Returns 1 otherwise (either we are not in a VM or the vmmouse device
|
|
|
|
was disabled).
|