Updated: 2025/Nov/16

Please read Privacy Policy. It's for your privacy.


VMT(4)                    Device Drivers Manual (x86)                   VMT(4)

NAME
     vmt - VMware Tools driver

SYNOPSIS
     vmt0 at cpu0

DESCRIPTION
     The vmt driver is a kernel level implementation of VMware Tools.  VMware
     Tools are intended to provide better support for operating systems
     running inside virtual machines.

     vmt handles shutdown, reboot, resume requests from the host by sending
     events using sysmon_pswitch(9) of type PSWITCH_TYPE_POWER,
     PSWITCH_TYPE_RESET, and PSWITCH_TYPE_SLEEP that can be handled by
     powerd(8).  vmt will log notifications that the guest has been suspended
     or resumed by the host.

     vmt reports the guest's hostname and first non-loopback IP address to the
     host.

   Clock synchronization
     The vmt driver synchronizes the virtual machine's clock with the host
     clock in the following situations:

        When the virtual machine resumes after having been suspended.

        Periodically with the interval indicated by the
         machdep.vmt0.clock_sync.period sysctl(8) variable.  This is done so
         that the virtual machine can keep its clock synchronized when the
         host is suspended, because in this case the vmt driver receives no
         notification of such an event.  Setting this tunable to zero disables
         clock synchronization.

SEE ALSO
     powerd(8)

HISTORY
     The vmt driver first appeared in OpenBSD 4.4 and was then ported to
     NetBSD 6.0.

AUTHORS
     The vmt driver was written by David Gwynne <dlg@openbsd.org>.

BUGS
     vmt is known to cause a conflict with vmtoolsd(8) from open-vm-tools.
     vmt works by establishing an RPC channel called TCLO between VMware guest
     and host to receive controlling messages from the host. The problem is
     that vmt is essentially a subset of vmtoolsd(8), and they both use the
     same RPC channel, but TCLO is never meant to be simultaneously used by
     two distinct services in the same VM guest. So when vmtoolsd(8) is
     running while also vmt is active, they continually fight for the channel,
     both get rejected by the confused VM host, and neither one can establish
     a stable communication line.

     So before launching vmtoolsd(8) the vmt driver should be detached by
     running:

           # drvctl -d vmt0

     And after terminating vmtoolsd(8) the vmt driver should be re-attached by
     running:

           # drvctl -r -a cpufeaturebus cpu0

NetBSD 11.99                    October 6, 2013                   NetBSD 11.99